首先插入一按钮,将其visible属性设为False,ID如设为:IDC_BTN_FASTKEY;
然后双击它,进入代码编辑界面,编辑代码,实现所要的功能;
最后如下操作添加加速键:
1 插入一个新的Accelerator(加速键)到资源中,把加速键和对应的响应控件(这里是一个按钮,其ID为:IDC_BTN_FASTKEY)与您选择的组合键设好关联起来,如可以与Ctrl+Alt+空格关联起来;
2 在按钮所在对话框的CPP文件所对应的头文件中public声明:
HACCEL m_hAccel;
virtual BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) ; //重载
3 在对话框的构造函数里初始化m_hAccel
m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1)); //IDR_ACCELERATOR1就是刚才的加速键资源ID;
4 然后在其CPP文件中实现重载对话框的PreTranslateMessage函数即:
BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg)
{
if (m_hAccel)
{
if (::TranslateAccelerator(m_hWnd, m_hAccel, pMsg))
{
OnBtnFastKey(); //隐藏按钮处理的函数;
return(TRUE);
}
}
return CDialog::PreTranslateMessage(pMsg);
}
此时,将程序界面运行起来后,同时按Ctrl+Alt+空格 三个键,就相当于点击了那个被隐藏了的按钮。功能与点击按钮无异。