主题:窗口重绘问题
rui_biao
[专家分:0] 发布于 2008-12-03 17:09:00
我用VC++6.0编写了一个基于对话框的程序代码,有一段是执行搜索的代码,运行时间要长一些,大约30秒,刚开始运行时,窗口显示还正常,后来窗口客户区变成空白一片,像死机的样子,程序运行结束后(30秒后),窗口显示又正常了。这是怎么回事,怎么避免这种情况的发生。
回复列表 (共1个回复)
沙发
廖增祥 [专家分:3930] 发布于 2008-12-09 02:24:00
这是因为窗口的绘制在主线程中完成,而你的执行搜索代码也在主线程中,故而窗口绘制函数得不到及时地调用。解决方法是使用多线程。
DWORD dwThreadId;
HANDLE hThread= CreateThread(...);
CloseHandle(hThread);
在线程内部执行你的搜索代码
我来回复