1. 程式人生 > >進度條只有0%和100%

進度條只有0%和100%

 

SendMessage 和  PostMessage 區別
  是否阻塞 比喻 傳送目的地 返回值
SendMessage   是(等訊息處理完再返回) 快遞員,郵件需要客戶簽名確認(同步) 一個視窗或多個視窗 其他程式處理訊息後的返回值
PostMessage  否(不等待訊息處理完成,直接返回) 郵局,我發了就行(非同步) 函式將一個訊息放入(寄送)到與指定視窗建立的執行緒相聯絡訊息佇列裡 函式執行是否正確

 

 由於上述的區別,因此在使用的時候,由於訊息是否返回,會導致介面的一些問題。由於我們此處有大量的磁碟操作,前輩使用的是PostMessage導致進度條有問題。(猜測,因此不會影響功能,看起來是會影響,當然最好的是磁碟處理的不在介面操作,這塊就需要仔細考慮了,等待進一步核實

GetMessage和  PeekMesssge區別
  是否阻塞 訊息來源 操作訊息
GetMessage 阻塞函式(系統無訊息,等待下一條) 系統獲取 獲取後移除
PeekMesssge 非阻塞函式(檢視的方式從系統中獲取訊息,無訊息時,返回FALSE,繼續執行後續程式碼) 與引數hWnd標識的視窗相聯絡的訊息或被lsChild確定為其子視窗相聯絡的訊息,並且該訊息要在由引數wMsgFiterMin和wMsgFiherMax確定的範圍內 可選擇是否刪除

 

參考:

深入解析SendMessage、PostMessage

C++中SendMessage與PostMessage的區別

PostMessage百度百科

GetMessage百度百科 (和postmessage配合使用,獲取訊息)

PeekMessage百度百科(和postmessage配合使用,檢查訊息)

PostMessageMSDN

SendMessageMSDN