進度條只有0%和100%
阿新 • • 發佈:2018-11-09
是否阻塞 | 比喻 | 傳送目的地 | 返回值 | |
---|---|---|---|---|
SendMessage | 是(等訊息處理完再返回) | 快遞員,郵件需要客戶簽名確認(同步) | 一個視窗或多個視窗 | 其他程式處理訊息後的返回值 |
PostMessage | 否(不等待訊息處理完成,直接返回) | 郵局,我發了就行(非同步) | 函式將一個訊息放入(寄送)到與指定視窗建立的執行緒相聯絡訊息佇列裡 | 函式執行是否正確 |
由於上述的區別,因此在使用的時候,由於訊息是否返回,會導致介面的一些問題。由於我們此處有大量的磁碟操作,前輩使用的是PostMessage導致進度條有問題。(猜測,因此不會影響功能,看起來是會影響,當然最好的是磁碟處理的不在介面操作,這塊就需要仔細考慮了,等待進一步核實)
是否阻塞 | 訊息來源 | 操作訊息 | |
---|---|---|---|
GetMessage | 阻塞函式(系統無訊息,等待下一條) | 系統獲取 | 獲取後移除 |
PeekMesssge | 非阻塞函式(檢視的方式從系統中獲取訊息,無訊息時,返回FALSE,繼續執行後續程式碼) | 與引數hWnd標識的視窗相聯絡的訊息或被lsChild確定為其子視窗相聯絡的訊息,並且該訊息要在由引數wMsgFiterMin和wMsgFiherMax確定的範圍內 | 可選擇是否刪除 |
參考:
C++中SendMessage與PostMessage的區別
GetMessage百度百科 (和postmessage配合使用,獲取訊息)
PeekMessage百度百科(和postmessage配合使用,檢查訊息)