推 yoll522:原來如此,這樣我了解了。 謝謝你的說明 05/05 23:06
※ 引述《yoll522 (yolling)》之銘言:
: 所以我想說改程式來試試看就直接發送SendMessage(WM_PAINT)
: 結果當人物一移動的時候就當了
: 我上網查原因,查到的都只有說不可以這樣做
: 可是都沒有人說為什麼不能這樣做@@
: 因此想請問一下為何這樣做不行呢?
SendMessage()這個函數會一直block到對方的MessagePump處理完這個message才會return
通常用在需要確定時間順序的東西,等對方做完再進行下一步。
因此如果你在MessagePump中對自己SendMessage(),你的pump就會一直等SendMessage()
結束,可是pump被卡住了永遠輪不到你送出去的message所以SendMessage()不會結束。
結果就是當機。
解決的方法是改用PostMessage()或是把要做的事記起來離開pump再處理。
不過這對閃爍沒有任何幫助就是了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.69.136