Using Accelerators with an MFC Modeless Dialog BoxID: Q117500
|
To use accelerators with a modeless dialog box, override the PreTranslateMessage()function in your derived CDialog class.
To use accelerators with your modeless dialog box, perform the following
steps:
Q103788 Creating a Modeless Dialog Box with MFC Libraries
// .h file with your derived CDialog class.
class CModeless : public CDialog
{
.
public:
virtual BOOL PreTranslateMessage(MSG*);
.
};
//.cpp file.
BOOL CModeless::PreTranslateMessage(MSG* pMsg)
{
HACCEL hAccel =
((CMainFrame*)AfxGetApp()->m_pMainWnd)->GetAccelTable();
if(!(hAccel &&
::TranslateAccelerator(AfxGetApp()->m_pMainWnd->m_hWnd, hAccel,
pMsg)))
return CDialog::PreTranslateMessage(pMsg);
else
return TRUE;
}
// Mainfrm.h file, where CMainFrame is the main window class.
HACCEL CMainFrame::GetAccelTable() { return m_hAccelTable; }
Additional query words: kbinf 1.00 1.50 1.51 1.52 2.00 2.10 2.50 2.51 2.52 3.00 3.10 4.00
Keywords : kbMFC KbUIDesign kbVC
Version : WINDOWS:1.00,1.50,1.51,1.52; winnt:1.00,2.00
Platform : WINDOWS winnt
Issue type : kbinfo
Last Reviewed: August 3, 1999