MFC 怎么判断是否按下了Ctrl+C
OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags);case'C':{if(nFlags&MK_CONTROL){inta=0;}}为...
OnKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags ); case 'C':
{
if (nFlags & MK_CONTROL)
{
int a = 0;
}}为什么无论有没有按下Ctrl都能进入 int a = 0;这句 展开
{
if (nFlags & MK_CONTROL)
{
int a = 0;
}}为什么无论有没有按下Ctrl都能进入 int a = 0;这句 展开
4个回答
推荐于2018-03-10
展开全部
不明白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);
}
{
//用PreTranslateMessage的方法,判断Ctrl+C是否按下,按下就执行快捷键对应的操作
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == 'C' && IsCTRLPressed())
{
//AfxMessageBox("Ctrl + C 被按下");
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
展开全部
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);
}
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == 'V' && GetAsyncKeyState(VK_CONTROL))
{
//AfxMessageBox(_T("Ctrl + V 被按下"));
int i = 0;
i++;
}
return CRichEditCtrl::PreTranslateMessage(pMsg);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-25
展开全部
一般注册一个热键就可以了,使用API RegisterHotKey,详细的查MSDN
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询