MFC怎样将按键的虚拟码消息传到自定义的函数中?

我创建的是一个基于对话框的MFC应用程序,怎样在CTextDlg中的到用户所按键的虚拟码?急求啊!!!代码啊!只有这么点分哪!... 我创建的是一个基于对话框的MFC应用程序,怎样在CTextDlg中的到用户所按键的虚拟码?急求啊!!!代码啊!只有这么点分哪! 展开
 我来答
百度网友5b8b690
2012-06-25 · 超过25用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:66.1万
展开全部
在你的这个类里添加以个WM_KEYDOWN或者WM_KEYUP
void CListenTestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default

CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
UINT nRepCnt这个参数就是你要的虚拟码.

Winuser.h在这个头文件里有所有的虚拟码的宏
/*
* Virtual Keys, Standard Set
*/
#define VK_LBUTTON 0x01
#define VK_RBUTTON 0x02
#define VK_CANCEL 0x03
#define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */

#define VK_BACK 0x08
#define VK_TAB 0x09

#define VK_CLEAR 0x0C
#define VK_RETURN 0x0D

#define VK_SHIFT 0x10
#define VK_CONTROL 0x11
#define VK_MENU 0x12
#define VK_PAUSE 0x13
#define VK_CAPITAL 0x14

#define VK_KANA 0x15
#define VK_HANGEUL 0x15 /* old name - should be here for compatibility */
#define VK_HANGUL 0x15
太多了。。自己打开这个文件看嘛
追问
什么文件?
追答
比如像Dll。Exe的文件都是二进制的文件啊!
xzsqjsg85
2012-06-27
知道答主
回答量:4
采纳率:0%
帮助的人:6469
展开全部
1、对话框无法直接响应WM_KEYDOWN消息,需要重载PreTranslateMessage()函数
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
if(WM_KEYDOWN == pMsg->message)
{
switch(pMsg->wParam)
{
case VK_...:
break;
....
default:
break;
}
}
2、用hook技术,相对比较麻烦。

如果你装的是VS2008,虚拟键码的定义在C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winuser.h line 375
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式