按键消息被输入法拦截 VK_PROCESSKEY

ywapple 2010-08-18 05:59:12
CMainFrame::PreTranslateMessage(MSG* pMsg)
我在这里截获 按键消息 如数字键和字母键.
switch (pMsg->message)
{
case WM_KEYDOWN:
{
unsigned int uParam = pMsg->wParam;
}


未开启输入法的时候 uparam值就是 按键值
开启后就被拦截了变成VK_PROCESSKEY 229

有什么方法避开么?
我的程序不需要输入法的
...全文
1319 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
帐房先生 2012-06-29
  • 打赏
  • 举报
回复
非常感谢,帮了大忙了
anranxon 2011-11-15
  • 打赏
  • 举报
回复
找了很久,这是最好的,挖你、顶起
ywapple 2010-08-20
  • 打赏
  • 举报
回复
CMainFrame::PreTranslateMessage(MSG* pMsg)
…………
if( pMsg->wParam == VK_PROCESSKEY )
{
uParam = ImmGetVirtualKey(pMsg->hwnd);
}

这样就可以获取到了这个原始键值

ImmDisableIME(0);
这个函数则是关闭输入法 输入法对本线程无效
具体参见msdn


呵呵 自己解决了……

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧