首页
社区
课程
招聘
[分享]Windows消息那些事
发表于: 2014-9-6 00:02 6737

[分享]Windows消息那些事

2014-9-6 00:02
6737
说一说windows消息常用API"PostMessage、SendMessage、TranslateMessage、DispatchMessage、PeekMessage、GetMessage"------------大牛门不要喷哟!

1、SendMessage可以向其他进程窗口发送指针类型数据,原理是Windows为进程间创建了共享内存,但有限制条件,必须使用Windows已有的消息,否则Windows不会创建共享内存;(可以传递指针类型的消息常用的有WM_SETTEXT, WM_GETTEXT, WM_COPYDATA,这一类消息必须使用SendMessage,如果使用PostMessage也不会成功)

2、PostMessage只是将消息发送到系统消息队列,之后PostMessage立即返回。目标任务到系统消息队列使用GetMessage去取,之后系统消息队列中删除对应消息;

3、SendMessage是将消息直接发送到窗口的处理过程,而不经过系统消息队列,当目标处理过程执行完成后,SendMessage返回;

4、PeekMessage与GetMessage类似,根据最后一个参数PeekMessage可以决定他从消息队列中取出的消息是否删除;

5、Windows任务间每20ms切换一次;

6、TranslateMessage用于消息循环中处理键盘消息,他把扫描码转换成ASCII码并在消息队列里插入WM_CHAR和WM_SYSCHAR消息;非键盘消息他不处理;

7、DispatchMessage用于消息循环中分发消息给窗口处理过程,当窗口处理过程执行完成后DispatchMessage再返回;

8、在win32中模块句柄在数值上等于程序在内存中装入的起始地址

9、TranslateAccelerator作用是把键盘快捷键转换成命令消息

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 135
活跃值: (106)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
2
顶一下顶一下
2014-9-6 05:46
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不错嘛   挺适合刚刚学习window编程的人咧
2014-9-6 09:43
0
雪    币: 80
活跃值: (109)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
长知识了
2014-9-6 09:44
0
雪    币: 230
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
总结不错,多谢分享!
2014-9-6 12:20
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
总结的不错,有时候使用的时候总有一点迷糊
2014-9-6 15:11
0
游客
登录 | 注册 方可回帖
返回
//