我用MFC APPWIZARD做了一个基于对话框的应用程序,想在CMyDialog(继承CDialog)类中捕获按键消息,用Wizard写了一个消息映射函数
void CElsDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
但是奇怪的是为什么为什么根本就不执行啊,消息映射不到,其他的都是默认设置,那位高手请指点一下怎样才能在这捕获到按键消息呢,多谢了。
void CElsDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
但是奇怪的是为什么为什么根本就不执行啊,消息映射不到,其他的都是默认设置,那位高手请指点一下怎样才能在这捕获到按键消息呢,多谢了。
解决方案 »
- TreeItem 如何在指定位置添加节点?
- BCG和MFC的CDialog不同
- 串口编程中,如何将接收到的十六进制数据转化为浮点数显示
- 谁有“禁止用户通过任务管理器终止进程”的vc程序源码?急~百分求~,在线等~
- 点击X(关闭)的时候,最后的处理程序应该添加在什么地方?
- 菜鸟请教主函数!!!
- 帮小弟看一下这段代码哪里错了,谢谢。
- 关于不同类型字符串转换的初级菜鸟问题!!!!
- 如何把数据内容显示到文本框中?(关于dbgrid和remotedata的)
- 为什么用CSocket接连两次发送大量数据会产生错误,高手指教,一定给分!!!!!!!!!!!!
- 关于CListBox 的小问题,在线等待,
- 向远程进程插如DLL时候的问题
{
if(pMsg->message == WM_KEYDOWN)
{
...
}
return CDialog::PreTranslateMessage(pMsg);
}
hehe,打个岔
PreTranslateMessage可以处理.
2.按键消息由::IsDialogMessage处理,该函数从每个对话框的消息循环中调用,但如果::IsDialogMessage在::TranslateMessage之前发现键盘消息,则该处理程序根本没有机会被调用.
这大概就涉及到消息循环、涉及到键盘消息了。事实上,键盘消息(WM_KEYDOWN,WM_KEYUP)是通过PostMessage发送到窗口所在线成的消息队列的,因此...
你发现的很多消息在你的窗口函数中获得不到,多半是因为在这里被拦截了。够明白了吧?