线程的消息环怎么做?怎样实现消息处理??
我需在线程中加入消息环
这样做可以吗?
while(TRUE)
{
PeekMessage(&msg,-1,0,0,PM_REMOVE);
TranslateMessage(&msg);
WaitMessage();
}
消息处理需要有窗口过程,我的线程没有窗口,我没法使用mfc
怎么处理消息???
问题点数:50、回复次数:12Top
1 楼kz(kz)回复于 2000-12-28 16:57:00 得分 20
可以,工作者线程和用户界面线程均有消息队列。你可以模仿MFC里面的WinMain的消息处理过程Top
2 楼The_east_key(东方一键)回复于 2000-12-28 16:58:00 得分 0
请到http://www.etechbase.net/advsearch.php,将你这个问题输入到检索框,然后选择准确匹配查询,应该可以帮助你解决这个问题的。Top
3 楼panda_w(好想睡啊!)回复于 2000-12-28 17:17:00 得分 0
辅助线程是没有窗口的,没有办法使用消息的,不过,你可以参考《Vc技术内幕》第四版的线程通信一文的。Top
4 楼zzh()回复于 2000-12-28 18:16:00 得分 10
你可以把主窗口的句柄指针传递当作参数传递给线程,这样,就可以在线程中处理线程了,你也可以通过函数PostThreadMessage来发送线程消息。具体用法可以参考MSDN,不过,你为什么要在线程中来处理消息呢?线程一般是用来做某一回定用处的,如果你想自己来处理WINDOWS的消息。可以看WINMAIN函数。Top
5 楼Elkel()回复于 2000-12-29 13:06:00 得分 0
to zzh:
我的程序没有窗口,是一个winnt服务进程。Top
6 楼wjf(ww)回复于 2000-12-29 13:40:00 得分 20
没有窗口:
sitch(msg.message)
{
case ..:
case ..:
}
OK?Top
7 楼Elkel()回复于 2000-12-29 14:08:00 得分 0
to wjf:
我的消息处理过程需要的时间较长,按这种方法做会阻塞线程。这种方法我也考虑过,并却把所有的消息处理过程都作为一个线程运行,但觉得线程太多。Top
8 楼Elkel()回复于 2000-12-29 14:10:00 得分 0
谁有更好的方法?Top
9 楼com235(com235)回复于 2000-12-29 15:01:00 得分 0
to wjf:
你好 有空详细点吗?
Top
10 楼Ray_czh(打字狂人)回复于 2000-12-29 15:17:00 得分 0
自己写个MESSAGE QUEUE就搞定了。
Top
11 楼Elkel()回复于 2000-12-29 15:34:00 得分 0
小弟请教Ray_czh:
怎么写MESSAGE QUEUE?Top
12 楼skt642()回复于 2001-05-31 12:43:00 得分 0
83972关注!Top




