您的位置:首页 > 其它

关于VS2010中键盘加速键无效的问题

2014-03-20 22:16 204 查看
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

IDR_ACCELERATOR ACCELERATORS
BEGIN
VK_F2,          IDM_NEW,                VIRTKEY, NOINVERT
END


在资源中添加了accelerator编译后运行按F2没有效果。

在网络上搜索后发现有修改注册表的解决办法,但是没有解决问题。

后来发现是窗口过程处理WM_COMMAND的问题

switch (message)
{
case WM_COMMAND:
if (lParam)
{//...
}
else
{
switch (wParam)
{
case IDM_NEW:
restart (hwnd) ;
return 0 ;
}
}
}


加速键发送的WM_COMMAND消息wParam高位为1, 而菜单命令相对应的高位为0。

所以应改为switch (LOWORD (wParam))来使加速键生效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息