在一个循环里使用以下代码
MSG msg;
for()
{
if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} if(this->m_hWnd!=0)
{
DoOtherThing();
}}
当窗口消失的时候就会发生错误,跟踪下来是因为窗口已经不存在了, 而还在执行别的代码, 求助, 要怎么改, 试了好多种方法都不行 ,,要怎么才能使程序响应了WM_DESTROY ,以后就不再执行别的函数了呢?
MSG msg;
for()
{
if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} if(this->m_hWnd!=0)
{
DoOtherThing();
}}
当窗口消失的时候就会发生错误,跟踪下来是因为窗口已经不存在了, 而还在执行别的代码, 求助, 要怎么改, 试了好多种方法都不行 ,,要怎么才能使程序响应了WM_DESTROY ,以后就不再执行别的函数了呢?
解决方案 »
- /**********VC6.0为什么会有那么多bug**********/
- 添加列表框控件出错。。。。
- 大家快来帮帮忙
- 一个简单的问题:vc 中如何按单词读取Cstring类型的字符串
- 我用ADO向SQL Server中写长二进制数据怎么不对?谁能帮我?
- 怎样将一个CString变量值赋给VARIANT变量
- 如何从一个大型语音文件中存储和读取某个单词的读音?
- 树控件——如何使单个节点颜色变化
- Drop List的ComboBox,怎样setwindowtext
- 各位大虾,小弟急需VC++版的记事本源码,拜谢高手奉献共享!!!!!!!真的很急!!!!!!!!!!1
- 关于通过线程画线的程序!
- 关于调用system()函数
还有,不是很明白你的“别的函数”是什么意思,这个别的函数在哪里呢,要具体问题具体分析
if(IsWindow(GetSafeHwnd()))
{
DoOtherThing();
}
MSG msg;
for()
{
if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
if(msg.message==WM_DESTROY) // <---这里退出
break;
} if(this->m_hWnd!=0)
{
DoOtherThing();
} }