PreTranslateMessage()里怎么捕捉组合键例如:Ctrl+C

BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class

if (pMsg->message == WM_KEYDOWN)
{
  switch (pMsg->wParam)
  {  
  case VK_ESCAPE:
   SetFocus ();
   return TRUE;
  case 'X':
   if(::GetKeyState(VK_CONTROL) < 0)//如果是Shift+X这里就
                                                             //改成VK_SHIFT
    MessageBox("hello");
   return TRUE;
  
  }
}
return CDialog::PreTranslateMessage(pMsg);
}

用GetKeyState来判断ctrl键?
ks =GetKeyState(VK_CONTROL)||GetKeyState(VK_SHIFT)||GetKeyState(VK_MENU);
        if(pMsg->message == WM_KEYDOWN && pMsg->wParam != VK_ESCAPE&& pMsg->wParam != VK_F11&&pMsg->wParam != VK_F1&&pMsg->wParam != VK_F2 && pMsg->wParam != VK_F3&&pMsg->wParam != VK_F4 && pMsg->wParam != VK_F5&& pMsg->wParam != 'N'&& pMsg->wParam != 'H'&& pMsg->wParam != 'O'&& pMsg->wParam != 'W' && pMsg->wParam != 'M' && pMsg->wParam != 'P'    && (ks>=0 || pMsg->wParam==VK_CONTROL || pMsg->wParam=='C' || pMsg->wParam == 'X' || pMsg->wParam == 'V' || pMsg->wParam == 'Z' || pMsg->wParam == VK_INSERT||pMsg->wParam == 'A'||pMsg->wParam == 'F'))
        {    
            
            if(pMsg->wParam == VK_RETURN)
            {
                return FALSE;
            }
            BOOL bResult=PreTranslateInput(pMsg);
                return bResult;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值