如题。
单个的话可以在KEYDOWN消息里用CASE来区分传过来的是哪一个键,但是来的是组合键怎么区分呢,可以把两个键值“+”起来吗?

解决方案 »

  1.   

    用RegisterHotKey注册你要的那个组合键,用WM_HOTKEY消息处理你的操作。详细请查看MSDN。
      

  2.   

    添加一个虚函数PreTranslateMessage(MSG* pMsg)BOOL CMSFLEXDlg::PreTranslateMessage(MSG* pMsg)   //该函数用来处理快捷键
    {
    // TODO: Add your specialized code here and/or call the base class
    if( pMsg->message == WM_KEYDOWN   )
    {    

    char nchar;
    nchar=pMsg->wParam;
    if(nchar=='V'&&(GetKeyState(VK_CONTROL)&0x80))          //按下Ctrl+V键,执行OnEditPaste()函数
    {OnEditPaste();m_flage=1;return 1;}
    else if(nchar=='X'&&(GetKeyState(VK_CONTROL)&0x80))     //按下Ctrl+X键,执行OnEditCut()函数
    {OnEditCut();m_flage=1;return 1;}
    else if(nchar=='C'&&(GetKeyState(VK_CONTROL)&0x80))     //按下Ctrl+C键,OnEditCopy()函数
    {OnEditCopy();m_flage=1;return 1;}
    }   
    return CDialog::PreTranslateMessage(pMsg);
    }