我在美化一个程序的界面,可以正常运行显示美化的界面,但关闭程序后系统弹出Debug Assertion Failed对话框,经过调试我发现问题是在LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)这个函数里,函数里没有这句 if (!::IsWindow(m_hWnd))
return lrst;时就会弹出上面的对话框,不知道这个语句作用是什么?请指教。
LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
LRESULT lrst=CFrameWnd::DefWindowProc(message, wParam, lParam);
if (!::IsWindow(m_hWnd))
return lrst;
//如果是以下消息则调用重绘函数对框架进行重绘
if(message==WM_NCPAINT||WM_NCACTIVATE||WM_MOVE||WM_NOTIFY)
{
CDC* pWinDC=GetWindowDC();
if(pWinDC)
DrawFrame(pWinDC);//这个函数是对框架进行贴图
ReleaseDC(pWinDC);
}
return lrst;
}
先谢过了~~
return lrst;时就会弹出上面的对话框,不知道这个语句作用是什么?请指教。
LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
LRESULT lrst=CFrameWnd::DefWindowProc(message, wParam, lParam);
if (!::IsWindow(m_hWnd))
return lrst;
//如果是以下消息则调用重绘函数对框架进行重绘
if(message==WM_NCPAINT||WM_NCACTIVATE||WM_MOVE||WM_NOTIFY)
{
CDC* pWinDC=GetWindowDC();
if(pWinDC)
DrawFrame(pWinDC);//这个函数是对框架进行贴图
ReleaseDC(pWinDC);
}
return lrst;
}
先谢过了~~
解决方案 »
- 我的vc6,为何没有 devenv.exe 呀,vc6的ide却可以照样打开
- VC6.0 MFC 环境下如何使用QueueUserWorkItem
- 现在写程序终于 从WinMain 开始了, 哈哈, 再见 MFC, WTL, 没有框架的舒服感觉真舒服
- ADO连接错误和发行版本问题,急!
- lnk2001链接错误,各位大侠帮帮忙
- 在我插入以后如何删除ListBox里面的内容!
- 如何用 IE 在客户端运行服务器端的activex控件
- 请教高手一个关于远程控制的问题
- 如何对鼠标的单击和双击做出不同的响应?
- 读文件:怎么一句一句的读?
- wcstombs char*转wchar_t*的问题
- VC+ado 如何读写clob
假如Not IsWindow,那么就返回了。
你去掉了,窗口句柄无效,又继续执行,自然Debug Assertion Failed。
看看Debug Assertion Failed对话框显示的是哪个文件第几行,去那看看是哪个函数需要用到m_hWnd。