回覆列表
  • 1 # 使用者4341222174383

    WM_KEYDOWN當一個非系統鍵被按下時該訊息傳送給具有鍵盤焦點的視窗。非系統鍵即不與ALT聯用的情況。其中wParam 指定非系統鍵的虛擬鍵碼, lParam 指定重複次數,掃描碼,擴充套件鍵識別符號,上下文程式碼,前一鍵狀態識別符號,以及轉換狀態識別符號。它們如下所示:0-15指定當前訊息重複的次數。該值代表按鍵敲擊的次數,就如同使用者一直按下鍵盤按鍵一樣。如果按鍵足夠長,會發送多個訊息。然而,重複次數不進行累加。16-23指定掃描碼。該值取決於OEM。24指定鍵是否為擴充套件鍵,就如同101或102鍵盤內的右手的ATL和CTRL鍵。如果是一個擴充套件鍵,則該值是1,否則,它是0.25-28保留,未使用。29指定上下文程式碼,對於WM_KEYDOWN訊息,該值總是0.30指定之前的鍵狀態。如果在訊息傳送之前,鍵被按下,則該值是1,否則該值是0.31指定轉換狀態。對於WM_KEYDOWN訊息,該值總是0.返回值應用程式如果處理了該訊息,則返回值是0.

    響應 WM_KEYDOWN 訊息,判斷VK_SHIFT 和 VK_CONTROL。在MFC中是過載OnKeyDown函式,見下面程式碼void CTestView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags){ if (nChar == VK_SHIFT) AfxMessageBox(_T("Shift")); else if (nChar == VK_CONTROL) AfxMessageBox(_T("Ctrl")); CView::OnKeyDown(nChar, nRepCnt, nFlags);}

  • 中秋節和大豐收的關聯?
  • 美度機械錶表面有霧氣不戴手上一會就消了,戴手上又會有,是不是進水?