不知道windows api Sendmessage 是怎么实现的 大概在里面做了些什么?有人能讲出个框架来么 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我说说我的看法,不对请大家指正首先从hwnd中用getclasslong可以得到wndproc地址,接着直接调用 一言以蔽之:在操作系统中存在几个表,通过查询这几个表,即可将消息放于指定的窗口的消息队列.指定窗口在获得时间片后,会GetMessage()之类的去获取消息队列中的消息,然后XXX... SendMessage()把响应的消息发到系统消息队列然后系统发给相应的进程消息队列程序通过GetMessage()等函数取得消息后“翻译”并“分发”再通过窗口回调或其他处理函数进行处理 sendmessage是直接呼叫窗口函数.postmessage才是把消息发到队列中的. 楼上说的对,sendmessage不会将消息发送到队列中,而是直接发送给应用程序进行处理 从操作系统的角度来说,对消息的处理不应该会"直接呼叫",毕竟,操作系统不能去打破程序的运行顺序.send和post的本质区别应该在于send会阻塞,消息被处理前该函数不返回而post会立即返回而已.当然,也许send的消息会被目标进程的GetMessage()优先得到,而不会放到那个普通的消息队列里面.不过我感觉send的消息会不会还是有自己的队列啊,要不然其它不同进程向某窗口同时send了几个消息怎么办? 对了对了,晕S,以前看过windows核心编程里面有讲这个的。第26章 窗口消息 机器视觉中如何获取指定大小的视野 toolbar上划过每一个按钮时显示提示信息?这个如何解决? Win7系统无法使用VC6.0 动态库调用问题! 采用异或绘图方式引起的问题?? 你们都有 星 了,我怎么还是绿三角呀 怎么长呀 操作主窗口时,如何自动关闭无模式对话框 那位仁兄帮忙解释一下下面程序的语法含义? 请教:在msdn中看到这样的定义方法,请问有什么好处吗? VS2010编译已经成功,但不生成exe文件是什么问题? 高分求解---我的ActiveX控件在服务器端调用没反应?(不知道是否调用没返回还是压根没调用) 受不了啦!!
在操作系统中存在几个表,通过查询这几个表,即可将消息放于指定的窗口的消息队列.
指定窗口在获得时间片后,会GetMessage()之类的去获取消息队列中的消息,然后XXX...
然后系统发给相应的进程消息队列
程序通过GetMessage()等函数取得消息后“翻译”并“分发”
再通过窗口回调或其他处理函数进行处理
postmessage才是把消息发到队列中的.
send和post的本质区别应该在于send会阻塞,消息被处理前该函数不返回而post会立即返回而已.
当然,也许send的消息会被目标进程的GetMessage()优先得到,而不会放到那个普通的消息队列里面.
不过我感觉send的消息会不会还是有自己的队列啊,要不然其它不同进程向某窗口同时send了几个消息怎么办?
第26章 窗口消息