几何尺寸与公差论坛

 找回密码
 注册
查看: 2459|回复: 4

子线程如果发送消息给该进程里的某一个窗口消息?

[复制链接]
发表于 2008-3-10 13:56:37 | 显示全部楼层 |阅读模式
就是创建一个线程连接socket ...当socket收到某种消息时,通知这个窗口。
但窗口不是一直在的,比如按button,出现一个临时窗口,窗口调用socket发送消息给server,然后等待server的回应。socket得到消息后,通知窗口。然后把窗口销毁。

请大大们给点代码。
 楼主| 发表于 2008-3-10 13:57:45 | 显示全部楼层

回复: 子线程如果发送消息给该进程里的某一个窗口消息?

创建子线程时,将当前窗口的HWND传入线程,然后调用PostMessage或SendMessage
 楼主| 发表于 2008-3-10 13:58:18 | 显示全部楼层

回复: 子线程如果发送消息给该进程里的某一个窗口消息?

不建议使用 SendMessage,使用PostMessage是最佳方法,在A Thread 用SendMessge给B Thread的窗口发送窗口消息 ,很容产生一个SendMessage和同步对象的死锁现象,我受它的害不浅,切忌
 楼主| 发表于 2008-3-10 13:58:31 | 显示全部楼层

回复: 子线程如果发送消息给该进程里的某一个窗口消息?

SendMessage是阻塞调用的,当心挂在里面出不来,
可以用SendMessageTimerOut啊,或者PostThreadMessage之类
 楼主| 发表于 2008-3-10 13:59:22 | 显示全部楼层

回复: 子线程如果发送消息给该进程里的某一个窗口消息?

你在需要接受消息的主进程中自定义一个消息,将消息的WPARAM指定为窗体句柄,LPARAM指定为具体的WM_窗体消息。
当子线程需要发送消息时,使用PostThreadMessage,将相关的WPARAM与LPARAM消息内容一起发过出,主进程收到消息后,找到合适的窗体,使用SendMessageTimeOut方法发送指定的窗体消息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-12-22 12:39 , Processed in 0.037867 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表