分享方式:


訊息分類

您撰寫處理常式的訊息種類有三個主要類別:

  1. Windows 訊息

    這主要包含開頭為 WM_ 前置詞的訊息,但WM_COMMAND除外。 Windows 訊息是由視窗和檢視處理。 這些訊息通常會具有用來決定如何處理訊息的參數。

  2. 控制通知

    這包括從控制項和其他子視窗到其父視窗的通知訊息WM_COMMAND。 例如,編輯控制項會在使用者採取可能改變編輯控制項中文字的動作時,傳送包含EN_CHANGE control-notification 程式碼的WM_COMMAND訊息。 訊息的視窗處理常式會以某些適當的方式回應通知訊息,例如擷取控制項中的文字。

    架構會路由控制通知訊息,就像其他 WM_ 訊息一樣。 不過,其中一個例外狀況是使用者按一下按鈕時,由按鈕所傳送的控制通知訊息BN_CLICKED。 這個訊息會視為命令訊息,並且會像其他命令一樣進行傳送。

  3. 命令訊息

    這包括來自使用者介面物件的WM_COMMAND通知訊息:功能表、工具列按鈕和快速鍵。 架構會以不同于其他訊息的方式處理命令,而且這些命令可由更多種類的物件處理,如命令目標 中所述

Windows 訊息和控制通知訊息

分類 1 和 2 中的訊息 (Windows 訊息和控制通知) 是由 Windows 處理:衍生自 CWnd 類別的類別物件。 這包括 CFrameWndCMDIFrameWndCMDIChildWndCViewCDialog,以及您自己的類別 (衍生自這些基底類別)。 這類物件會封裝一個 HWND,即 Windows 視窗的控制代碼。

命令訊息

分類 3 中的訊息 (命令) 可以由更多種類的物件進行處理:文件、文件範本和應用程式物件本身 (除了視窗和檢視之外)。 當命令會直接影響一些特定物件時,擁有命令的物件控制代碼才有意義。 例如,[檔案] 功能表上的 [開啟] 命令在邏輯上與應用程式相關:應用程式會在接收命令時開啟指定的文件。 因此 [開啟] 命令的處理常式會是應用程式類別的成員函式。 如需命令以及如何路由傳送至物件的詳細資訊,請參閱 架構如何呼叫處理常式

另請參閱

架構中的訊息和命令