关闭

MFC 线程与窗体进行消息传递的时候出现的无效线程问题

661人阅读 评论(0) 收藏 举报
分类:

那么就是在GetMessage检索消息的时候没有发现有效的消息,而且GetMessage只是检索了一次而不是一直在检索,一次之后没有有效的消息就直接退出了,这样执行函数在返回的时候,线程随之结束:所以使用for语句:

for(;;)
 do {
  ::GetMessage(&msg, NULL,0,0);//从消息队列中进行检索有效的消息
  CString str;
  str.Format(_T("%d, 0x%x\r\n"),msg.message, msg.message);
  OutputDebugString(str);
  this->PreTranslateMessage(&msg);
  TranslateMessage(&msg);
  this->DispatchThreadMessage(&msg);
 }
 while (::PeekMessage(&msg, NULL, WM_USER,WM_USER, PM_NOREMOVE));

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1046976次
    • 积分:18282
    • 等级:
    • 排名:第521名
    • 原创:741篇
    • 转载:523篇
    • 译文:0篇
    • 评论:105条
    最新评论