由CWnd繼承來的用戶窗口添加加速鍵:(非框架窗口缺少CFrameWnd中對加速鍵的支持)1.給派生類添加一個(gè)數(shù)據(jù)成員m_hAccelTable(類型HACCEL).2.向程序添加加速鍵資源,添加資源我已經(jīng)在另一篇文章中講過,還有加一個(gè)具有響應(yīng)函數(shù)的ID對應(yīng)加速鍵.然后在應(yīng)用程序生存期初期,調(diào)用API函數(shù)::LoadAccelerators加載加速鍵表.將::LoadAccelerators返回的句柄復(fù)制到m_hAccelTable. //In CMainWindow's constructor m_hAccelTable=LoadAccelerators(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));
3.在窗口類中重載PreTranslateMessage并調(diào)用將句柄存儲(chǔ)在m_hAccelTable中的::TranslateAccelerator.將::TranslateAccelerator返回的的值作為PreTranslateMessage的返回值.
//virtual BOOL PreTranslateMessage(MSG *pMsg);函數(shù)原型