Re: [問題] 直接對程式發送SendMessage(WM_PAINT)新
看板C_and_CPP (C/C++)作者azureblaze (AzureBlaze)時間14年前 (2012/05/05 22:48)推噓1(1推 0噓 0→)留言1則, 1人參與討論串3/4 (看更多)
※ 引述《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
推
05/05 23:06, , 1F
05/05 23:06, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章