用VC新建一个MFC的基于Dialog的应用程序,想监听键盘事件,在classwizard中
添加了WM_KEYDOWN的事件处理函数OnKeyDown,代码如下:void CTestonkeydownDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
::AfxMessageBox("监听成功");
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);}为什么运行时候按了键盘上的键这个函数并没有被调用???
添加了WM_KEYDOWN的事件处理函数OnKeyDown,代码如下:void CTestonkeydownDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
::AfxMessageBox("监听成功");
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);}为什么运行时候按了键盘上的键这个函数并没有被调用???
解决方案 »
- VC工程的字符集选择ASCII或者MBCS,中文都显示乱码,为什么?
- MFC如何添加右键菜单
- 发送的Http请求,服务器返回URL错误是怎么回事?
- network programing for windows author A and J
- 我的显示控件的工具栏没了 哪位大哥能告诉小弟如何重新填加上阿?????
- 关于字符串截断的问题
- 怎樣改變單文檔結構中view的大小?
- 一个在书里找不到的问题~~~~~关于动态连接库
- 请教学习如何安防音视频图像方面的开发
- 好象在vc 中不能在控件里面写文本,不知道是不是真的,有办法解决吗?
- 请介绍在win98下隐藏exe(win32 console application)文件进程的方法?多谢!
- 超级简单问题:如何把整型转化为字符串?
BOOL CMainQueryDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN: //回车键
return TRUE;
case VK_ESCAPE: //ESC键
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
...
CWnd* pWnd = CWnd::FromHandle(pMsg->hwnd);
if(pMsg->hwnd==m_hWnd||(pWnd && pWnd->GetParent()==this) && pMsg->message==WM_KEYDOWN)
{
AfxMessageBox("监听成功");
}
...