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