今天想在菜单中添加加速键的时候,因是用的对话框模板,不能接受WM_KEYDOWN消息,
在网上收了半天,都不理想,最后在看WM_COMMAND的时候发现有个 wparam的低位有个加速键标识
最后把这个标识符用在WM_COMMAND消息中成功
要在OnInitDialog函数中添加,加速键资源
m_hAccel = LoadAccel(IDR_ACCELERATOR1);
在消息循环中
//消息循环
MSG msg;
while (GetMessage(&msg,NULL,0,0))
{
if(!TranslateAccelerator(hWnd,hAccel,&msg))//有加速键表时用这,没有就不用
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
实例:
switch(uMsg)
{
case WM_COMMAND:
if(LOWORD(wParam)==ID_QUIT && HIWORD(wParam)==1)//键鼠点击为0,加速键为1
{
MessageBox(m_hWnd,TEXT("idquit"),TEXT("消息提示"),MB_OK);
}
break:
}
这就可以有加速键了
效果图: