发新话题
打印

窗口重绘问题

窗口重绘问题

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

TOP

程序在循环的时候没有进行别的外理,使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,说明用户按下了关闭按钮。
换个头像,看见广告就眼红,直接封ID。

TOP

发新话题