MFC 怎么判断是否按下了Ctrl+C

2024-12-13 01:45:56
推荐回答(4个)
回答1:

不明白if (nFlags & MK_CONTROL)这句是什么意思?调试下nFlags和MK_CONTROL值是多少。。要判断是否按下Ctrl+C,可用类向导里添加PreTranslateMessage消息BOOL 类名::PreTranslateMessage(MSG* pMsg)
{
//用PreTranslateMessage的方法,判断Ctrl+C是否按下,按下就执行快捷键对应的操作
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == 'C' && IsCTRLPressed())
{
//AfxMessageBox("Ctrl + C 被按下");
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}

回答2:

BOOL CMyRichEditCtrl::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == 'V' && GetAsyncKeyState(VK_CONTROL))
{
//AfxMessageBox(_T("Ctrl + V 被按下"));
int i = 0;
i++;
}
return CRichEditCtrl::PreTranslateMessage(pMsg);
}

回答3:

我这边测试没这个问题~

回答4:

一般注册一个热键就可以了,使用API RegisterHotKey,详细的查MSDN