[問題]MFC 類似PROGRESSBAR的功能

看板C_and_CPP (C/C++)作者 (Jay)時間7年前 (2018/05/28 16:40), 編輯推噓3(3011)
留言14則, 3人參與, 7年前最新討論串1/2 (看更多)
開發平台(Platform): (Ex: Win10, Linux, ...) WIN7 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) MFC2003 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 如題 小弟想要在按下某個按鈕時出現一個Dialog 由於不想讓FUNCTION裡運算的資料停下來 所以我做了一個Modeless的Dialog讓它可以邊運算邊顯示Dialog 點選按鈕後會跳出Messagebox 如果是IDOK 則出現Dialog 可能是因為create的特性出現的Dialog不是完整的(只顯示title) 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): Dialog 裡 CStatic 及兩個button無法顯示 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) void Function() { pModeless = new CModeless(this); pModeless->create(IDD_DIALOG); pModeless->ShowWindow(SW_HIDE); 呼叫Messagebox Switch 是否為IDOK { pModeless->ShowWindow(SW_SHOW); 計算... ... } if(pModeless != NULL) pModeless->OnCancel(); } 補充說明(Supplement): 請各位高手給小弟一點意見 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.200.146 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1527496851.A.F26.html

05/28 21:52, 7年前 , 1F
有沒有發現運算時你的整個程式都卡住不動了
05/28 21:52, 1F

05/28 23:35, 7年前 , 2F
這到是沒有欸 過程滑鼠會轉圈圈 圈圈轉完dialog
05/28 23:35, 2F

05/28 23:35, 7年前 , 3F
就會完全顯示計算也完成了
05/28 23:35, 3F

05/29 03:25, 7年前 , 4F
本來想寫一篇來解釋,不過剛好搜尋到板上有一篇不錯的文
05/29 03:25, 4F

05/29 03:26, 7年前 , 5F
#1GnfbVvR 跟我要講的東西大致相同,可以參考看看
05/29 03:26, 5F

05/29 03:28, 7年前 , 6F
把 PeekMessage 那幾行插在ShowWindow之後以及計算中途
05/29 03:28, 6F

05/29 03:28, 7年前 , 7F
你就會看到 modeless dialog 被畫完以及進度條被更新
05/29 03:28, 7F

05/29 03:30, 7年前 , 8F
開 thread 的方法較正統,PeekMessage 法較偷懶簡便
05/29 03:30, 8F

05/29 03:56, 7年前 , 9F
簡單說就是 message queue 要有人去處理,
05/29 03:56, 9F

05/29 03:56, 7年前 , 10F
畫面才會更新,滑鼠點按鈕才會有反應等等
05/29 03:56, 10F

05/29 09:06, 7年前 , 11F
謝謝Schottky大大 問題解決了 看來我對MFC架構
05/29 09:06, 11F

05/29 09:06, 7年前 , 12F
不夠熟
05/29 09:06, 12F

05/31 00:49, 7年前 , 13F
想要熟MFC架構非常困難啊 XD
05/31 00:49, 13F

06/01 00:17, 7年前 , 14F
目前我也只有套套function而已 架構還真的不了解
06/01 00:17, 14F
文章代碼(AID): #1R2y2Jyc (C_and_CPP)
文章代碼(AID): #1R2y2Jyc (C_and_CPP)