Windows 信息机制
来源:http://www.tudoupe.com时间:2021-11-12
Windows 中的信件机制
Windows是一个由信息驱动的操作系统。
什么是消息
信息是应用、操作系统和程序相互交流的一种方式。
操作系统可以在某事件发生时通知应用程序。 例如, 当用户点击鼠标或键盘时, Windows 会发送相关信件。 Apps 也可以生成一条信息, 让 Windows 执行特定任务或与其他程序连接 。
就数据结构而言,电文是一种结构,包含电文的类型识别特征以及各种补充信息。
消息的种类
根据定义者来分类:
系统定义的消息:
0x0-0x3ff它可分为三类。- 窗口信息:与窗口内部功能有关的通信,如窗口的创建、绘图或删除;
- NM_COMMAND将军,关于处理经常由按钮或菜单制作的用户请求;
- 通知信件: 仅适用于普通窗口控件( 按钮、 列表框、 编辑框、 公共控制树视图、 列表视图), 并且是WM_ NOTIFY 信件所特有。 它通常表示窗口中的子控制已经发生, 并要求通知父窗口 。
无法关闭临时文件夹:%s。
0x400-0xffff之间。- WM_USER:
0x400-0x7fff在用户指定的电文范围之间; - WM_APP:
0x8000-0xbfff用于申请间通信; - RegisterWindoMessage:
0xc000-0xffff。
- WM_USER:
根据发送途径分类:
- 信件队列: 信件在发送到适当的窗口处理功能之前先保存在信件队列中 。
- 非队列信件 : 未排队的信件将直接发送到相关窗口处理功能。 例如, WM_ ACTIVATE、 WM_ SETFOCUS、 WM_ SETTURSOR、 WM_ WINDOWPOSCHANGED 等程序在调用 SetWindowPos 时生成 。
消息队列
在 Windows 中,有两种信息:
- 系统信息队列是系统维护的唯一信息队列。 系统监测所有计算机输入设备, 设备驱动程序将输入动作转换成信件, 并将其放在系统信息队列中, 后被复制到匹配的应用程序信息队列 。
- 应用程序消息队列 : 每条 GUI 行都有一条信件队列( 系统仅在第一次使用 GDI 函数时才生成此行的邮件队列), 应用程序中的信息循环会接收每条信件, 并将其传送到相关的窗口处理功能 。
常用的消息函数
- 发送消息:
SendMessage:将信件发送到目标窗口。在处理该信件时,函数返回;否则,它会被停止。
PostMessage将信件传送到包含目标窗口的信件队列, 然后立即返回 。
PostThreadMessage:将信件排队发送到选定的线索并立即返回。
注意:SendMessage这是一个不等待的消息。PostMessage发送的是队列消息。
- 接收消息
GetMessage:从所提供的窗口( wMsgFiltermin 和 wMsgFilterMax 之间)中提取一条消息,一旦消息到达,立即从信件队列中删除信息。如果您无法检索到信件线索,您将一直坚持到完成为止。
PeekMessage:检查信件的队列以获取信息并返回“是”,如果找到了,返回“是”,如果找不到信息,则返回“FALSE”。
WaitMessage当一线信息里没有新鲜信息时, WaitMessage停止了这条线,将其置于等待状态,将控制权移交给另一线,直到新消息出现在中断的信息线中。
- 转换消息:
TranslateMessage将虚拟密钥消息转换为字符信息, 并将其保存在当前线索的邮件队列中; 下次线索运行时, 信件循环将被检索 。
- 分发消息:
DispatchMessage程序使用信息循环将信息发送到目标窗口 。
常用的消息
WM_COMMAND当用户从菜单或按钮中选择命令或控件时,信件会被传送到其父窗口,或者当快捷键被释放时。WM_DESTROY当一个窗口被摧毁时, 发送一个消息。 对应到 02 小时 。WM_GETTEXT用户发送 NM_GETTEXT 消息, 将相关窗口的文本复制到程序给定的缓冲区。 这相当于 0Dh 。WM_QUIT当应用程序运行 PostQuitMessage 时, 生成 NMUIT 消息。 对应到 012h 。WM_LBUTTONDOWNWM_LBUTTONTOWN 信件是当指针停放在窗口客户区而用户按住鼠标左键时发送的。 如果不抓取鼠标动作, 则将信件发送到光标下的窗口; 否则, 则发送到鼠标动作被抓取的窗口。 更正为 0201h 。
相关新闻
- 2022-01-29 Windows 11更新系统版本的教程
- 2022-01-29 Python学习八:pip 最常用命令、pip升
- 2022-01-28 GitLab集成Jenkins进行项目构建、发布
- 2022-01-28 小白一键重装系统教程win10安装步骤
- 2022-01-27 便是三步装机系统下载地址和安装
- 2022-01-27 老毛桃u盘启动盘制作工具装机教程
- 2022-01-27 windows环境下jenkins+maven+svn+tomcat实现
- 2022-01-27 windows2016官网下载
- 2022-01-26 libevent在windows下的接口及兼容性、
- 2022-01-26 markdown编辑软件在哪下载?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
