PreTranslateMessage函式

PreTranslateMessage函式是函式的一種,若訊息在PreTranslateMessage已經完全處理,不需要作進一步處理,返回非零值。

基本介紹

  • 中文名:PreTranslateMessage函式
  • 類型:函式
  • 屬性:Windows
  • 類似:CWinThread
介紹,示例,

介紹

類: CWinThread
頭檔案:
afxwin.h
功能:
若要在訊息被分配到Windows函式::TranslateMessage和DispatchMessage之前
過濾Windows訊息,應重載這個函式。
語法:
virtual Bool PreTranslateMessage(MSG * pMsg);
參數:
pMsg 指向包含要處理的訊息的MSG結構
返回值:
若訊息在PreTranslateMessage已經完全處理,不需要作進一步處理,返回非零值。
若訊息需要進一步處理,則返回零。
說明:
僅在用戶界面執行緒中使用。

示例

/***************************************************************
演示函式原型:Bool MyApp::PreTranslateMessage(MSG * pMsg);
程式功能說明:重載PreTranslateMessage進行額外的信息處理。
***************************************************************/
CWinThread MyApp;
Bool MyApp::PreTranslateMessage(MSG * pMsg)
{
//todo:添加代碼和/或調用基類
if(pMsg->message==WM_KEYDOWN&&IsEnterGame)
{
//wparam為鍵KeyCode碼
if(pMsg->wparam==17)
//標誌Ctrl被按下
IsCtrlkeyDown==true;
}
if(pMsg->message==WM_KEYUP)
{
if(pMsg->wparam==17)
//標誌Ctrl被按下
IsCtrlkeyDown==false;
}
if(pMsg->message==LBUTTONUP)
{
//接收到滑鼠訊息
OnLButtonUp((UINT)pMsg->lparam,pMsg->pt);
}
//繼承自CWnd::PreTranslateMessage
AFX_MODULE_STATE * pMoDuleState=_AFX_CMDTARGET_GETSTATE();
if(pMoDuleState->m_pfnFilterToolTipMessage!=NULL)
(*pMoDuleState->m_pfnFilterToolTipMessage)(pMsg,this);
return FALSE;
}

相關詞條

熱門詞條

聯絡我們