在线程中可以做消息响应吗?

1016133 2003-09-10 08:29:25
在线程中可以做消息响应吗?
...全文
34 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
asimpleman 2003-09-15
  • 打赏
  • 举报
回复
gz
叶子哟 2003-09-10
  • 打赏
  • 举报
回复
工作线程中没试过!
但是可以人为控制线程的启动和运行
softman_2000 2003-09-10
  • 打赏
  • 举报
回复
你说的是用户界面线程。
土著巫师 2003-09-10
  • 打赏
  • 举报
回复
1:

void __fastcall TMyThread::Execute()
{
...
while(!Terminated) if(!ListenMessage()) SleepEx(0, false);
...
}

bool __fastcall TMyThread::ListenMessage()
{
MSG Msg;

if(PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE))
{
if(Msg.message == WM_????) //自定义消息,用PostThreadMessage(...)发送进来
{
//在这里做你自己的事
}
else if(Msg.message == WM_????) //自定义消息,用PostThreadMessage(...)发送进来
{
//在这里做你自己的事
}
else //系统消息
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return true;
}
return false;
}

2:
Application的ProcessMessage()方法就是这么做的

3:
用BCB的人一定要学OBJECT PASCAL了解VCL源码,祝你好运。


附:建议以后发帖子前先找一下以前的贴子。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧