窗口对象

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 API 的 HWND 成员函数的合适资源。

用于 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