作者timohu ( )
看板C_and_CPP
标题[问题] 在另外的视窗显示progress[MFC]
时间Fri Mar 20 10:01:13 2009
我有两个dialog,一个是主视窗,
另一个就是单纯放了一个progress在上面(显示进度用的)
我设计的程式中有两个地方需要用到ProgressBar
一个是RESET完之後,要让使用者等待大概十秒
所以显示有progress的那个对话窗,让进度跑十秒再结束dialog
CPROGRESSDLG dlg;
dlg.Create(IDD_PROGRESS,this);
dlg.ShowWindow(SW_SHOW);
dlg.UpdateWindow();
dlg.m_Progressbar.SetRange(0,24);
dlg.m_Progressbar.SetPos(6);
Sleep(2000);
dlg.m_Progressbar.SetPos(11);
Sleep(2000);
dlg.m_Progressbar.SetPos(17);
Sleep(2000);
dlg.m_Progressbar.SetPos(21);
Sleep(2000);
dlg.m_Progressbar.SetPos(24);
Sleep(1000);
dlg.ShowWindow(SW_HIDE);
我用以上的写法目前是可以达成我的需求(只是不知道code是否有哪边不恰当)
另一个需要用到ProgressBar的地方是
主视窗上的某个功能,我会去设定八个地方的参数,因为也需要一段时间
所以想说每设定完一个我就用有ProgressBar的那个dialog来告诉使用者现在进度
但是现在的写法
(类似上面,只是dlg.m_Progressbar.SetPos的地方会每次加一)
会让dialog闪烁
(因为当程式跳出那段,跑去执行其他动作时,progress那个dialog就消失了)
请问我要如何让有progress那个dialog显示在主视窗之前,
一方面主视窗又可以继续完成该做的工作?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.87.152.131
1F:→ tsaiminghan:api SetWindowPos(..... HWND_TOPMOST) 03/20 21:55
2F:→ tsaiminghan:会将该hwnd设为最上层 03/20 21:56