您的位置:首页 > 产品设计 > 产品经理

使用PreTranslateMessage(MSG* pMsg)截获键盘数字键

2016-06-14 16:37 381 查看
第一种:如果要截获大键盘数字键和小键盘数字键,采用如下方案:

PreTranslateMessage(MSG* pMsg)

{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message==WM_CHAR )
{

char ch = (char)pMsg->wParam;  //比如按下大键盘数字1或者小键盘数字1
CString strShortCut = (CString)ch;//此时strShortCut = L"1";

}

}

第二种:如果只要截获小键盘数字键,采用如下方案:

PreTranslateMessage(MSG* pMsg)

{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message==WM_KEYDOWN )
{
if(pMsg->wParam<=105&&pMsg->wParam>=96)VK_NUMPAD0~VK_NUMPAD9
{
UINT iAscii = MapVirtualKey(pMsg->wParam,MAPVK_VK_TO_CHAR);
char ch =char(iAscii );
CString strShortCut = (CString)ch;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息