SendMessage 函数完全使用手册(ZT) 首先 我们了解一下Windows 的消息机制。Windows 是一个消息驱动式系 统,Windows 消息提供应用程序与应用程序之间,应用程序与Windows 系统之间进 行通信的手段。 举个例子,打开记事本程序,该程序有一个 “文件“菜单。 那么,在运行该程序 的时候,如果用户单击“文件菜单“里的“新建“命令, 这个动作将被Windows 所捕 捉,Windows 经过分析得知这个动作应该由我们打开的记事本程序所来处理,然后 Windows 就发送个消息 譬如我们编程的时候有时用到的 WM_COMMAND 的消息给记 事本,然后记事本就把这个消息处理掉。 这个过程就是消息处理。 接下来,我们把SendMessage 的完整形式讲一下 SendMessage Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 别名 SendMessageA 说明 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否 则该函数不会返回 SendMessage 所包含4 个参数 hwnd 32 位的窗口句柄窗口可以是任何类型的屏幕对象,因为Win32 能够维 护大多数可视对象的句柄 wMsg 用于区别其他消息的常量值,这些常量可以是Windows 单元中预定 义的常量,也可以是自定义的常量 wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄 lParam 通常是一个指向内存中数据的指针。由于WParm、 lParam 和 Pointer 都是32 位的,因此,它们之间可以相互转换 wMsg 函数 WM_CREATE 创建一个窗口 WM_DESTROY 当一个窗口被破坏时发送 WM_MOVE 移动一个窗口 WM_SIZE 改变一个窗口的大小 WM_ACTIVATE 一个窗口被激活或失去激活状态 WM_SETFOCUS 一个窗口获得焦点 WM_KILLFOCUS 一个窗口失去焦点 WM_ENABLE 一个窗口改变成Enable 状态 WM_SETREDRAW 设置窗口是否能重画 WM_SETTEXT 应用程序发送此消息来设置一个窗口的文本 WM_GETTEXT 应用程序发送此消息来复制对应窗口的文本到缓冲区 WM_GETTEXTLENGTH 得到与一个窗口有关的文本的长度(不包含空字符) WM_PAINT 要求一个窗口重画自己 WM_CLOSE 当一个窗口或应用程序要关闭时发送一个信号 WM_QUERYENDSESSION 当用户选择结束对话框或程序自己调用ExitWindows 函数 WM_QUIT 用来结束程序运行 WM_QUERYOPEN 当...