視窗物件

MFC 提供類別 CWnd 來封裝 HWND 視窗的控制碼。 CWnd 物件是 C++ 視窗物件,與表示 Windows 視窗但包含它的 HWND 有所區別。 使用 CWnd 衍生您自己的子視窗類別,或使用衍生自 CWnd 的其中一個 MFC 類別。 CWnd 類別是所有視窗的基底類別,包括框架視窗、對話方塊、子視窗、控制項及控制列,例如工具列。 充分瞭解 C++ 視窗物件與 HWND 之間的關聯性,對於使用 MFC 進行有效的程式設計至關重要。

MFC 提供了一些預設的視窗功能和管理,不過,您可以從 CWnd 衍生自己的類別,並且使用其成員函式自訂提供的功能。 您可以藉由建構 CWnd 物件並呼叫其 Create 成員函式來建立子視窗,然後使用成員函式自訂子視窗 CWnd 。 您可以在框架視窗中內嵌衍生自 CView 的物件,例如表單檢視或樹狀檢視。 而且,您可以透過 CSplitterWnd 類別 提供的分割器窗格支援檔的多個檢視。

每個從 CWnd 類別衍生的物件都包含訊息對應,您可以透過訊息對應將 Windows 訊息或命令 ID 對應至自己的處理常式。

有關 Windows 的一般程式設計文獻提供了學習如何使用 CWnd 成員函式的良好資源,這類成員函式用於封裝 HWND API。

在 CWnd 上運作的函式

CWnd 和其 衍生的視窗類別 提供建構函式、解構函式和成員函式來初始化物件、建立基礎 Windows 結構,以及存取封裝的 HWNDCWnd 也提供封裝 Windows API 的成員函式,用於傳送訊息、存取視窗的狀態、轉換座標、更新、捲動、存取 [剪貼簿],以及許多其他工作。 採用 HWND 引數的大部分 Windows 視窗管理 API 都會封裝為 CWnd 的成員函式。 函式及其參數的名稱會保存在 CWnd 成員函式中。 如需 所 CWnd 封裝之 Windows API 的詳細資訊,請參閱 CWnd 類別

CWnd 和 Windows 訊息

的主要用途 CWnd 之一是提供處理 Windows 訊息的介面,例如WM_PAINT或WM_MOUSEMOVE。 的許多成員函 CWnd 式都是標準訊息的處理常式,這些函式開頭為識別碼 afx_msg 和前置詞 「On」,例如 OnPaintOnMouseMove訊息處理和對應 涵蓋訊息和訊息處理詳細資料。 其中的資訊同樣適用於架構的視窗,以及您基於特殊目的自行建立的視窗。

您想要深入瞭解什麼

另請參閱

Windows