Hi,
我发现call CWnd::SetWindowText()给对话框中的Edit Box设定内容时,如果紧接着执行其他代码的话,那么SetWindowText()优先级比较低。如://开始工作,先提示用户
SetWindowText("工作中...")
DoWork();
SetWindowText("结果...");结果是,基本上DoWork()快做完时,"工作中..."才姗姗show出,又被后面的msg冲掉。这样,提示user的意义顿失。可能MS是基于“UI响应没有work重要”考虑的吧。怎么改变这种状况?在DoWork()前再给这个Edit Box发送WM_PAINT消息?还是提升WM_SETTEXT消息?根据网友建议,我尝试过“改SetWindowText()为SendMessage(WM_SETTEXT...)”,"增加call Invalidate()",都不行。难道为了这个小defect只有改用多线程,将DoWork()和UI处理分线程处理?谢谢!