文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MFC中基于对话框程序快捷键的实现

MFC中基于对话框程序快捷键的实现

时间:2010-12-15  来源:世道

    一是在PreTranslateMessage函数中,判断键盘的按键消息,比如快捷键是Ctrl + Q,我们就检测按键消息的Ctrl键和Q是否同时按下就可以了。

    //用PreTranslateMessage的方法,判断Ctrl+Q是否按下,按下就执行快捷键对应的操作

 if(pMsg->message == WM_KEYDOWN && pMsg->wParam == 'Q' && IsCTRLPressed())
{
AfxMessageBox("Ctrl + Q 被按下");
return TRUE;
}

 

    二是在PreTranslateMessage函数中,通过载入快捷键资源,并建立快捷键与消息的映射的方法来实现。先插入快捷键资源,通过下面的代码来载入该资源。

    HACCEL hAcc;hAcc = LoadAccelerators(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1));

    在PreTranslateMessage函数中进行快捷键的翻译,如果是WM_KEYDOWN和WM_SYSKEYDOWN消息就翻译,翻译成功返回TRUE.

 
BOOL CAccelerator2Dlg::PreTranslateMessage(MSG* pMsg) 
{
// TODO: Add your specialized code here and/or call the base class
int iResult;
//针对WM_KEYDOWN消息和WM_SYSKEYDOWN消息,翻译快捷键
switch(pMsg->message){
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
iResult = TranslateAccelerator(m_hWnd,hAcc,pMsg);
//翻译快捷键成功,返回TRUEif(iResult)return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
相关阅读 更多 +
排行榜 更多 +
野生恐龙射击生存安卓版

野生恐龙射击生存安卓版

飞行射击 下载
战场狙击手

战场狙击手

飞行射击 下载
无尽的三月七h5

无尽的三月七h5

休闲益智 下载