1 菜单栏
1.1 在对话框中加入菜单:
打开Resource View资源视图, *.rc文件—Add Resources —Menu,即可加入菜单。
注:①菜单项中含有“...”表示点击后会弹出对话框;
②菜单项的标题文本中都有一个字母带下划线,带下划线的字母(在要定义为热键的字母前加&)为热键。Alt+F就等同于直接点菜单项File。
1.2 定义快捷键:
要实现快捷键的功能需要在Accelerator资源中设定。
step1:新建一个快捷键资源Accelerator( Add Resources —Accelerator),在Accelerator中设置快捷键。
ID:即某个菜单项的ID;Modifer和Key就代表了组合键。
step2:在C**Dlg.h中,添加资源变量:
HACCEL m_hAccel;
step3:在C**Dlg.cpp中的OnInitDialog()函数,添加如下代码:
// IDR_ACCELERATOR1是加速键资源的默认ID值。
m_hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));
step4:添加虚函数PreTranslateMessage()。在PreTranslateMessage()里面添加如下代码:
if (::TranslateAccelerator(GetSafeHwnd(), m_hAccel, pMsg))
return true;
//重载PreTranslateMessage,快捷键有效。
BOOL CPICTUREDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(::TranslateAccelerator(GetSafeHwnd(),m_hAccel,pMsg))
return true;
return CDialogEx::PreTranslateMessage(pMsg);
}