VS2012 实现接口快捷键
展开全部
/*** 1.在资源中加入一个Accelerator,然后进行设置,ID,就是希望的那个能被快捷键代替的按钮的ID,KEY,就是你希望的快捷键,TYPE,我选择了VIRTKEY
2.在头文件中添加 BOOL PreTranslateMessage(MSG *pMsg) 方法
3.在CPP文件中完成该方法
**/
BOOL CXXXDlg::PreTranslateMessage(MSG *pMsg)
{
//AfxGetApp()->m_hInstance 获得程序实例
//IDR_ACCELERATOR1 就是刚才加入到资源中的那个Accelerator的ID
HACCEL hAccelTable;
hAccelTable = LoadAccelerators(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1));
int iResult=0;
//我们点击键盘时会向窗体发送消息,在这里我们捕获到消息,然后进行翻译
//把按键的消息翻译成点击按钮的消息,这样,就相当于我们点击按钮了(这是我自己的理解)
switch(pMsg->message)
{
case WM_KEYDOWN:
{
}
case WM_SYSKEYDOWN: //我们只需要关心这个类型的消息就可以了
{
iResult = TranslateAccelerator(m_hWnd, hAccelTable, pMsg); //这个函数用来翻译资源文件的内容
if(iResult)
{ //翻译成功返回TRUE
return TRUE;
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询