回覆列表
  • 1 # reida3341

    在dialog中是不能響應WM_KEYDOWN的如果要響應的話可以過載BOOLCKeseDlg::PreTranslateMessage(MSG*pMsg)這個函式在MFC(MicrosoftFoundationClass)對響應訊息進行了封裝,可以透過過載虛擬函式PreTranslateMessage()對所關心的訊息進行擷取與響應:以下對擷取與響應鍵盤Enter訊息的擷取與響應這是對話方塊的響應鍵盤Enter訊息方式:BOOLC**Dlg::PreTranslateMessage(MSG*pMsg){//TODO:在此新增專用程式碼和/或呼叫基類//判斷是否為鍵盤訊息if(WM_KEYFIRST<=pMsg->message&&pMsg->message<=WM_KEYLAST){//判斷是否按下鍵盤Enter鍵if(pMsg->wParam==VK_RETURN){//DoanythingwhatyouwanttoreturnTRUE;}}returnCDialog::PreTranslateMessage(pMsg);}這是View檢視類響應鍵盤Enter訊息的方式:BOOLC**View::PreTranslateMessage(MSG*pMsg){ if(WM_KEYFIRST<=pMsg->message&&pMsg->message<=WM_KEYLAST) {  if(pMsg->wParam==VK_RETURN)  {//DoanythingyouwantherereturnTRUE;} } returnCFormView::PreTranslateMessage(pMsg);}

  • 中秋節和大豐收的關聯?
  • 最近遊戲荒,有什麼好玩的手遊推薦嗎?