dll里写了一个有菜单的对话框,菜单有一个菜单项Exit,现在想按Alt+X退出,怎样给dll装上这个快捷键呢?dll是用sdk写的。

解决方案 »

  1.   

    1.在YourDialog.h中加一行定义HACCEL m_hAcc;
    2.在CYourDialog::OnInitDialog中
    m_hAcc = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINACCELERATOR));
    3.在CYourDialog::PreTranslateMessage中
    if (TranslateAccelerator(GetSafeHwnd(), m_hAcc, pMsg))return TRUE;
      

  2.   

    我不是用MFC的啊。。而且对话框也不是在应用程序中,而是在dll中!
      

  3.   

    HACCEL m_hAccelTable;OnInitDialog()中
    LPCTSTR lpszResourceName = MAKEINTRESOURCE(IDR_ACCELERATOR1);
    HINSTANCE hInst = AfxFindResourceHandle(lpszResourceName, RT_ACCELERATOR);
    m_hAccelTable = ::LoadAccelerators(hInst, lpszResourceName);PreTranslateMessage()中
    if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST)
    {
    // finally, translate the message
    HACCEL hAccel = m_hAccelTable;
    return hAccel != NULL &&  ::TranslateAccelerator(m_hWnd, hAccel, pMsg);
    }