[問題] 請問維持視窗資源的方法

看板C_and_CPP (C/C++)作者 (阿蓋新人生)時間15年前 (2010/08/08 14:16), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/1
請問一下各位先進~ 遇到的問題: (題意請描述清楚) 有一個MFC dialog based的程式 之中用到一個progress bar來顯示進度 這時如果讓視窗離開focus (就是點了別的視窗 或是按了 alt+tab) 會讓原來的程式出現"無法回應"的訊號 即使後來點回來還是無法回應 此時progess bar當然是死掉的 可是這時候程式並沒有真的無法回應 等到程式執行完成 就會恢復正常 希望得到的正確結果: 希望能一直保持程式正常顯示 程式跑出來的錯誤結果: 跟上面所說的一樣 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Visual Studio .net 2005 基底是MFC Dialog 有問題的code: (請善用置底文標色功能) 大致上是這樣: 得到總共的執行次數; for (次數){ 演算法; SCProBar->SetPos(n++); } 補充說明: 如果我在 for-loop 中直接用OnDraw去更新可以嗎? 感謝... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.169.183.73

08/08 14:24, , 1F
progress bar要另外開一個thread吧 不然你的程式就一直卡
08/08 14:24, 1F

08/08 14:24, , 2F
在跑progress bar,主dialog那邊沒辦法做別的事
08/08 14:24, 2F

08/08 14:39, , 3F
只能用multithread的方式去維持嗎?
08/08 14:39, 3F

08/08 15:00, , 4F
不然就用timer, 用起來會比較簡單, 不過實際還是多緒
08/08 15:00, 4F

08/09 07:49, , 5F
不要霸佔main thread... 這樣UI會無法被更新
08/09 07:49, 5F

08/17 10:03, , 6F
我試試看用Timer好了 謝謝~
08/17 10:03, 6F
文章代碼(AID): #1CNalQi4 (C_and_CPP)
文章代碼(AID): #1CNalQi4 (C_and_CPP)