Windows消息响应机制详解:从WM_NULL到WM_QUIT

需积分: 10 4 下载量 10 浏览量 更新于2024-08-01 收藏 254KB DOC 举报
"Windows常用消息大全是一本详细阐述Windows消息响应机制的书籍,特别是对于进行MFC框架编程的开发者来说,是一份宝贵的参考资料。书中涵盖了从系统消息到应用程序自定义消息的各种消息类型,帮助读者深入理解Windows操作系统中窗口事件的处理方式。" 在Windows编程中,消息队列和消息循环是核心概念,它们驱动着用户界面的交互。书中提到的消息范围分为几个部分: 1. **系统消息**:0~WM_USER-1,这些消息由操作系统发送,用于处理系统级别的事件,如窗口创建、销毁、移动和大小调整等。 2. **自定义窗口类整数消息**:WM_USER~0x7FFF,这个范围允许程序员为特定窗口类定义自己的消息,以扩展功能。 3. **应用程序自定义消息**:WM_APP~0xBFFF,这部分消息由应用程序自身定义,用于内部通信或者特定业务逻辑。 4. **应用程序字符串消息**:0xC000~0xFFFF,这部分消息通常用于传递字符串数据。 5. **未来系统应用保留**:>0xFFFF,这部分消息空间预留,以供将来Windows系统更新使用。 接着,书中的表A-2列举了一些常见的Windows消息: - **WM_NULL**:0x0000,空消息,通常被忽略。 - **WM_CREATE**:0x0001,窗口创建时触发。 - **WM_DESTROY**:0x0002,窗口被销毁时发送。 - **WM_MOVE**:0x0003,窗口位置改变时发送。 - **WM_SIZE**:0x0005,窗口大小改变时触发。 - **WM_ACTIVATE**:0x0006,窗口激活或失活状态改变。 - **WM_SETFOCUS**:0x0007,窗口获取焦点。 - **WM_KILLFOCUS**:0x0008,窗口失去焦点。 - **WM_ENABLE**:0x000A,窗口启用或禁用状态改变。 - **WM_SETREDRAW**:0x000B,控制窗口是否可以重绘。 - **WM_SETTEXT**:0x000C,设置窗口的文本内容。 - **WM_GETTEXT**:0x000D,获取窗口的文本内容。 - **WM_GETTEXTLENGTH**:0x000E,获取文本长度不包括结束的空字符。 - **WM_PAINT**:0x000F,提示窗口需要重绘。 - **WM_CLOSE**:0x0010,窗口关闭请求。 - **WM_QUERYENDSESSION**:0x0011,询问是否结束会话。 - **WM_QUIT**:0x0012,结束应用程序运行的信号。 - **WM_QUERYOPEN**:0x0013,窗口恢复前状态时发送。 - **WM_ERASEBKGND**:0x0014,窗口背景需要擦除时。 - **WM_SYSCOLORCHANGE**:0x0015,系统颜色改变时发送。 了解并熟练处理这些消息,对开发人员来说至关重要,因为它们直接关联到用户界面的响应和行为。通过学习这本书,开发者能够更深入地理解Windows程序的运行机制,从而编写出更加高效和用户友好的应用。