• MFC中为菜单或按钮添加快捷键功能


    1、新建一快捷键资源,ACCELERATOR,关联相应的ID号,下图所示中,其中,第一个ID为自定义快捷键ID,按CTRL+R,此时响应该ID以应的消息响应函数,

    第二个ID为菜单ID,此时按CTRL+V,调出ID_NETWORK_PING菜单对应的响应函数。

    2、声明一个全局变量HACCEL  hAccTable;

    3、在OnInitDialog()函数中,添加如下代码:

    hAccTable=LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));

    4、添加PreTranslateMessage重载函数,在函数中,添加如下代码:

    BOOL CComDlg::PreTranslateMessage(MSG* pMsg)
    {
     
     if (::TranslateAccelerator(GetSafeHwnd(),hAccTable,pMsg))
     {
      return true;
     }

     return CDialog::PreTranslateMessage(pMsg);
    }

    5、此时假如如上述快捷键菜单中,第一个ID对应的自定义ID,对应的响应函数如下:

    void CComDlg::OnAccelerator()
    {
     system("regedit");
    }

    第二个ID为网络测试对话框程序,

    那么编译成功后,按CTRL+R调出注册表(regedit),按CTRL+V,调出网络测试对话框。

  • 相关阅读:
    L2-1 功夫传人 (25分)
    7-11 家庭房产(25 分)
    7-11 玩转二叉树 (25分)
    7-10 排座位 (25分)
    7-12 最长对称子串 (25分)
    7-10 树的遍历 (25分)
    STL
    Max Gcd
    水果
    Rails
  • 原文地址:https://www.cnblogs.com/jinjiangongzuoshi/p/3331502.html
Copyright © 2020-2023  润新知