标题:
窗口重绘问题
[打印本页]
作者:
rui_biao
时间:
2008-12-3 17:03
标题:
窗口重绘问题
我用VC++6.0编写了一个基于对话框的程序代码,有一段是执行搜索的代码,运行时间要长一些,大约30秒,刚开始运行时,窗口显示还正常,后来窗口客户区变成空白一片,像死机的样子,程序运行结束后(30秒后),窗口显示又正常了。这是怎么回事,怎么避免这种情况的发生。
作者:
Nothing
时间:
2008-12-4 09:30
程序在循环的时候没有进行别的外理,使Windows窗口没有响映,这种现像很正常。
如果不想这样,可以加一个进度条进行处理。
VB中的一个DoEvent函数,就是在循环时处理窗口事件,VC中也有,请看
使用这样的函数:
BOOL CheckMessageQueue()
{
MSG msg;
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
if(msg.message==WM_QUIT)
return FALSE;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return TRUE;
}
该函数可以实现DoEvents的效果。但有一点不同,如果该函数返回FALSE,说明用户按下了关闭按钮。
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/)
Powered by Discuz! 6.0.0