窗口对象

MFC 提供类 CWnd 来封装 HWND 窗口的句柄。 该 CWnd 对象是一个C++窗口对象,不同于 HWND 表示 Windows 窗口但包含该窗口的对象。 用于 CWnd 派生自己的子窗口类,或使用派生自 CWnd的多个 MFC 类之一。 类 CWnd 是所有窗口(包括框架窗口、对话框、子窗口、控件和控件栏(如工具栏)的基类。 更好地了解 C++窗口对象与 HWND 之间的关系 对于使用 MFC 进行有效编程至关重要。

MFC 提供一些默认功能和窗口管理,但你可以从 CWnd 其成员函数中派生自己的类,并使用其成员函数自定义提供的功能。 可以通过构造 CWnd 对象并调用其 Create 成员函数,然后使用成员函数自定义子窗口来创建子窗口 CWnd 。 可以在框架窗口中嵌入派生自 CView 的对象,例如窗体视图或树视图。 还可以通过拆分器窗格(由 CSplitterWnd 类提供)支持文档的多个视图。

从类 CWnd 派生的每个对象都包含一个消息映射,你可以通过该映射将 Windows 消息或命令 ID 映射到你自己的处理程序。

有关 Windows 编程的一般文献是了解如何使用 CWnd 封装 HWND API 的成员函数的好资源。

用于在 CWnd 上运行的函数

CWnd 及其 派生的窗口类 提供构造函数、析构函数和成员函数来初始化对象、创建基础 Windows 结构以及访问封装 HWND的函数。 CWnd 还提供用于封装 Windows API 的成员函数,用于发送消息、访问窗口的状态、转换坐标、更新、滚动、访问剪贴板和其他许多任务。 采用 HWND 参数的大多数 Windows 窗口管理 API 都封装为成员函数 CWnd。 函数的名称及其参数保留在成员函数中 CWnd 。 有关封装的 CWndWindows API 的详细信息,请参阅 CWnd 类。

CWnd 和 Windows 消息

主要用途 CWnd 之一是提供用于处理 Windows 消息的接口,例如WM_PAINT或WM_MOUSEMOVE。 许多成员函数都是标准消息的 CWnd 处理程序,这些函数以标识符 afx_msg 开头,前缀为“打开”,例如 OnPaintOnMouseMove消息处理和映射 详细介绍了消息和消息处理。 其中的信息同样适用于框架的窗口和你自己为特殊目的创建的信息。

想要详细了解哪些内容

另请参阅

Windows操作系统