我按書上說的,在 PreCreateWindow()中呼叫了 LoadAccelerators(),
然后多載 CWnd 的 TranslateMessage()
如下:
Bool CwindowingClass::PreTranslateMessage(MSG*pMsg)
{
if(g_hAccel==NULL)
return FALSE;
return::PreTranslateAccelerator(m_hWnd,g_hAccel,pMsg);//這句出了問題,求大神指教啊
}
uj5u.com熱心網友回復:
TranslateAcceleratorBOOL CPickChar::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST)
{ // Translate the message using accelerator table
ASSERT(m_hAccel);
return ::TranslateAccelerator(m_hWnd, m_hAccel, pMsg);
}
//
return CDialog::PreTranslateMessage(pMsg);
}
uj5u.com熱心網友回復:


uj5u.com熱心網友回復:
標準的MFC程式的話, 一般都是多載App的 ProcessMessageFilter 進行的,BOOL CTracerApp::ProcessMessageFilter(int code, LPMSG lpMsg)
{
if (code >=0 && ghDlg && ghAccelTable)
{
if (::TranslateAccelerator(ghDlg, ghAccelTable, lpMsg))
return(TRUE);
}
return CWinApp::ProcessMessageFilter(code, lpMsg);
}
uj5u.com熱心網友回復:
謝謝

uj5u.com熱心網友回復:
我打算先去學Windows程式設計去 ,省的老不會轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/91051.html
標籤:基礎類
