直奔主题->Come IN--------------------->>
1。WM_KEYDOWN消息什么情况下窗口接收不到?
2。特别地,ESC键有没有什么特殊的地方?
现在我用对话框DialogBox(...)接受不到WM_KEYDOWN消息。
问题点数:50、回复次数:7Top
1 楼alphagx(alpha)回复于 2001-11-22 19:35:02 得分 10
你在PreTranslateMessage中接收不到吗??Top
2 楼jason802(小糊涂仙)回复于 2001-11-22 19:36:29 得分 10
有了编辑框,窗口就接受不到了。
重载 CDialog::PreTranslateMessage(MSG * pMsg)
判断 pMsg == WM_KEYDOWN
Top
3 楼jason802(小糊涂仙)回复于 2001-11-22 19:41:47 得分 10
Esc键没什么特别的地方,这样捕获
BOOL CMyDialog::PreTranslateMessage(MSG * pMsg)
{
if(pMsg->message == WM_KEYDOWN) //刚才的回答写错了,一不小心,呵呵
{
if(pMsg->wParam == VK_ESC)
{
//todo
return 1;
}
}
}
Top
4 楼jason802(小糊涂仙)回复于 2001-11-22 19:42:47 得分 10
不是pMsg == WM_KEYDOWN,
是pMsg->message == WM_KEYDOWN
Top
5 楼a_kun(狂人日记)回复于 2001-11-22 19:52:54 得分 0
要是用MFC也许好些,不过我用的是WIN32 API……
在Dialog的DlgProc里面case WM_KEYDOWN……没反应!Top
6 楼alphagx(alpha)回复于 2001-11-22 19:54:05 得分 10
那你处理WM_GETDLGCODE
然后在其中写
return DLGC_WANTALLKEYS; Top
7 楼a_kun(狂人日记)回复于 2001-12-28 21:08:25 得分 0
快元旦了,把以前没结帐的帖子结了,不管有没有得到正确的答案。谢谢大家的支持。Top




