使用MFC 发送消息模拟按钮按下事件
来源:互联网 发布:免费网络验证系统源码 编辑:程序博客网 时间:2024/05/17 22:05
有时我们需要这么做, 手动模拟按钮按下的事件, 让程序做出与按钮真的按下时一样的响应.
设按钮ID为ID_BTN_OK, 当前Dialog窗口.
实际上系统并不能区分按钮是真的按下了(如用鼠标点击), 还是一个我们自己用代码模拟出的一种"假象".
它所需要知道的只是哪个窗口(按钮也是一种窗口)发生了哪一种事件, 然后在消息循环中处理它. 系统怎么才
能知道这些呢? 当然靠的是消息(message), 我们只需按照Windows或者MFC的标准格式把相应的信息传给系统,
系统就会"上当"了.
向系统传递消息可以用SendMessage或PostMessage(可能还有其他很多函数哦), 但SendMessage执行后系统
会一直等待, 直到要发送的消息被处理掉. 而PostMessage可不管那么多, 发送消息后立即返回程序流程. 当
按钮按下的响应函数中有很大一个循环时, 用SendMessage会出现许多问题, 尤其是要在程序初始化阶段模拟时,
会导致窗体无法完成初始化. 所以我们用PostMessage(). 它的原型为:
- BOOL PostMessage( HWND hWnd,
- UINT Msg,
- WPARAM wParam,
- LPARAM lParam
- );
这样写; 这里, WM_COMMAND是要发送的消息, MAKEWPARAM宏是为了组成一个WPARAM,WM_COMMAND消息的WPARAM的低字为控件ID,高字为识别码, 最后一个参数LPARAM可为NULL.相关定义可查看MSDN.
- PostMessage(WM_COMMAND, MAKEWPARAM(ID_BTN_OK, BN_CLICKED), NULL);
这样我们就把必需的信息格式化好发送给系统了. 当系统在消息循环中收到该消息时, 就知道哦, 你要引发控件ID_BTN_OK
的事件BN_CLICKED, 好的我帮你处理. 于是我们就惊喜地看到按钮看起来真的按下去了, 并执行了和真正按下去时一样的代码.
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- MFC 通过发送消息完成按钮操作模拟鼠标单击事件的发生的问题
- 仿制发送按钮按下的消息
- 模拟按钮控件BN_CLICKED消息事件
- 发送消息 模拟鼠标点击 单击按钮和复选
- 使用MFC Socket 发送结构体消息
- MFC如何用模拟发送一个伪消息
- 模拟MFC命令消息机制的事件机制
- 模拟短信发送按钮
- 模拟“发送短信”按钮
- Delphi 中如何发送一个窗体上的按钮,按下消息
- 各种迷茫的集合。。collection、 list 、set 、map 。。
- 浅谈HTTP中Get与Post的区别
- 关于Django中CSRF token missing or incorrect报错的处理办法
- 针对 Eclipse DTP 的 Oracle 数据库插件入门
- 疯狂英语的定义
- 使用MFC 发送消息模拟按钮按下事件
- arm-eabi-gdb 与 redboot 配合调试 ecos application
- GUI简评
- 随机访问KV存储引擎
- iPhone SDK 免签名编译的设置
- 【Andorid】input系统的事件处理
- Bigtable Merge-Dump存储引擎
- 双绞线标志的含义
- 位图Bitmap学习1