OnIdle()调用用户界面线程,该线程是否结束?
是否阻塞?
是否阻塞?
解决方案 »
- 请问高手,怎么在我界面的指定位置加入气泡提示!
- 如何安装Visual Studio 6.0 Service Pack
- 怎样将PC视频或图片输出到TV上??有相关APIH吗??
- 我怎么把long类型转换成字符串CString类型?
- 至急!!!!VC++6.0 的二进制转换
- 一个简单的问题,急!
- 谁能够提供关于防火墙的资料和代码,高分奉献!!!
- 控制台程序调用另一控制台程序怎样才能将调用的结果显示在原窗口中
- com组建调用IE控件异常的问题
- 请教各位,到底有没有VC7?
- 请教大侠,在用InstallShield时,在自定义对话框为和不能发现InstallShield开始安装向导对话框的资源ID号
- 为什么我定义的类没有调用析构函数?
int CXXXThread::Run()
{
ASSERT_VALID(this); // acquire and dispatch messages until a WM_QUIT message is received.
for (;;)
{
// 如果消息队列内没有消息,在这儿后台处理:
while (!::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE))
{
//后台处理
}
// 如果有消息,循环处理完所有消息
while (::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_REMOVE))
{
if( m_msgCur.message == WM_QUIT )
return ExitInstance();
::TranslateMessage(&m_msgCur);
::DispatchMessage(&m_msgCur);
} } ASSERT(FALSE); // not reachable
}
由于简便,我去掉了对idle状态的处理,这样线成的所有窗口就收不到WM_IDLEUPDATECMDUI消息调用OnUpdateCmdUI()更新菜单(在菜单弹厨师还是会更新的),如果需要参考CWinThread::Run加吧。