用MFC写一个相当于快捷键的东西,利用ALT+A的组合键,但是如果用按下来判断的话(GetKeyState<0),一直按着组合键便会一直调用相应函数,所以想按键弹起时触发,贴上大概代码形式(在PreTranslateMessage中): if (pMsg->message == WM_KEYUP || pMsg->message == WM_SYSKEYUP)
{
if (GetKeyState(VK_MENU) < 0)
{
if (GetKeyState(0x41) > 0)
{
((CMainFrame*)AfxGetMainWnd())->OnBackgroundChanged();
return TRUE;
}
}
}mfc键盘消息PreTranslateMessageWM_SYSKEYUP

解决方案 »

  1.   

    判断弹起似乎还真麻烦,不如注册个全局热键registerhotkey来支持组合键
      

  2.   


    注册全局是可以的,但下面这样就能实现弹起出发函数操作了~不过同样感谢回帖!if (/*pMsg->message == WM_KEYUP ||*/ pMsg->message == WM_SYSKEYUP)
    {
    if (GetKeyState(VK_MENU) < 0)
    {
    if (GetAsyncKeyState(0x41) & 0x8000 != 0)
    {
    ((CMainFrame*)AfxGetMainWnd())->OnBackgroundChanged();
    return TRUE;
    }
    }
    }