回 帖 发 新 帖 刷新版面

主题:窗口重绘问题


我用VC++6.0编写了一个基于对话框的程序代码,有一段是执行搜索的代码,运行时间要长一些,大约30秒,刚开始运行时,窗口显示还正常,后来窗口客户区变成空白一片,像死机的样子,程序运行结束后(30秒后),窗口显示又正常了。这是怎么回事,怎么避免这种情况的发生。

回复列表 (共1个回复)

沙发

这是因为窗口的绘制在主线程中完成,而你的执行搜索代码也在主线程中,故而窗口绘制函数得不到及时地调用。解决方法是使用多线程。

DWORD dwThreadId;
HANDLE hThread= CreateThread(...);
CloseHandle(hThread);

在线程内部执行你的搜索代码

我来回复

您尚未登录,请登录后再回复。点此登录或注册