win32 对话框模板添加加速键

今天想在菜单中添加加速键的时候,因是用的对话框模板,不能接受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:

}

这就可以有加速键了

效果图:

 

win32 对话框模板添加加速键

 

上一篇:Win32对话框模板创建的窗口上响应键消息,Tab焦点切换消息,加速键消息


下一篇:QT开发遇到的问题(1)——程序循环执行的问题