我的program如下:
int m_nCurFrame;//提取的文件的当前帧
int m_nMax; //文件的总帧数
BOOL bb; CXXView::CXXView
{
bb = FALSE;
} void CXXView::OnAutoProcessing()
{
while (m_nCurFrame++ <m_nMax)
{
if(bb)
{
break;
}
.......//procesing
}
} ~CXXView::CXXView
{
bb = TRUE;
} 我调试时,总是先到析构函数然后进入OnAutoProcessing(),而我知道调用析构函数后CXXView对象已经销毁,于是该程序
退出时出现错误不可避免!求各位给出好的解决办法!非常感谢!
int m_nCurFrame;//提取的文件的当前帧
int m_nMax; //文件的总帧数
BOOL bb; CXXView::CXXView
{
bb = FALSE;
} void CXXView::OnAutoProcessing()
{
while (m_nCurFrame++ <m_nMax)
{
if(bb)
{
break;
}
.......//procesing
}
} ~CXXView::CXXView
{
bb = TRUE;
} 我调试时,总是先到析构函数然后进入OnAutoProcessing(),而我知道调用析构函数后CXXView对象已经销毁,于是该程序
退出时出现错误不可避免!求各位给出好的解决办法!非常感谢!
解决方案 »
- opengl绘图问题
- 关于MFC activex中怎么定义外部调用接口问题!!!
- 有谁能解释解释fontfamily fontface到底是什么意思啊?
- 再activex控件中使用ccombobox中出现的问题!
- 关于文件移动的问题,请指教!!!万分感激!!!
- 看看我的问题~~~~~~~~~~`
- 高分求好书
- 非模式窗体
- 各位好心的大大们,谁能帮帮我啊!关于禁止弹窗口问题!先谢谢大家了!!!!!!!
- 我不小心买了张汉化的VC6,不能用。请把MSDEV.EXE E-mail给我好吗
- CFtpConnection.SetCurrentDirectory(path)怎么不能转换ftp路径
- 如何读取图片的信息头?
void CXXView::OnAutoProcessing()
{
while (!bb && m_nCurFrame++ <m_nMax)
{
.......//procesing
}
}
加入
when(::PeekMessage())
{
::translatemessage();
::DispatchMessage();
}
是死循环,如何退出!谢谢!
窗体的消息循环是用GetMessage,但有窗体消息WM_QUIT的时候GetMessage返回0,while循环退出。
窗口关闭的一般过程,点那个和最小化按钮一排的关闭按钮,会最后产生个WM_CLOSE消息,处理这个消息最后用DestroyWindow发送WM_DESTROY,再处理WM_DESTROY消息最后用PostQuitMessage产生一个WM_QUIT消息,消息循环这才算结束。
您的意思是不是调用ostQuitMessage函数!
要是你自己写的窗口类,可以参考下面的代码写消息循环过程和窗口处理过程 while(GetMessage(&msg,NULL,0,0)) //当接收到WM_QUIT消息的时候GetMessage返回为假
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_CLOSE:
DestroyWindow(hwnd);//产生WM_DESTROY消息
break; case WM_DESTROY:
PostQuitMessage(0);//发出WM_QUIT消息
break; default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
} return 0;
}
我的类是MFC的窗口派生类,调试时退出程序(点击程序窗口右上角的x),进入类析构函数于是自动销毁窗口。但是消息循环好像还在,所以总进入OnAutoProcessing,运行到该程序最后的},程序不能再往下执行,如何处理?还望指教!!!!谢谢!