看板 Programming 關於我們 聯絡資訊
※ [本文轉錄自 C_and_CPP 看板 #1FUjLT3H ] 作者: seoker (Seoker) 看板: C_and_CPP 標題: [問題] topmost 視窗於遊戲畫面閃動問題 時間: Tue Apr 3 18:47:55 2012 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) MFC/GDI+ 問題(Question): 我有一個 Layered 的 dialog(不規則形狀) 這個 dialog 可能會在某一事件觸發後出現並且一直重畫, 但不會設為 Foreground Window(所以也不會 ACTIVATE) 在一般狀況都運作的很好,唯有全螢幕的遊戲可能會出狀況: 我的 dialog 會一直閃爍(可能因為一直重畫的關係) 不知道各位有沒有在玩遊戲時跳出右下角的 msn 登入訊息 它閃動的情況就像那樣... 不知道有沒有辦法可以解這問題呢 @@? 在不影響使用者正常遊戲的情況下...(稍微蓋住視窗不算XD) 餵入的資料(Input):預期的正確結果(Expected Output): 不閃爍的 topmost 視窗 錯誤結果(Wrong Output): 視窗一直閃爍 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 在一般的全螢幕視窗不會發生這問題 例如 IE、Media Player -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.63.100.2
idicivik:改用重畫有修改的部分就不會閃爍了 04/04 00:22
seoker:我整個視窗都有修改的部分QQ 04/04 01:06
※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: seoker (180.218.162.247), 時間: 04/09/2012 01:07:25
azureblaze:IE和Media Player的全螢幕是假的 118.168.71.163 04/09 11:02
azureblaze:他只是把視窗放大到跟螢幕一樣大 118.168.71.163 04/09 11:03
azureblaze:遊戲 一定要去Hook他才有辦法解決 118.168.71.163 04/09 11:03
purpose:http://goo.gl/ED1rz 為什麼不偵測是否使 124.8.137.121 04/09 18:33
purpose:用全螢幕中,來決定要不要繼續重畫 124.8.137.121 04/09 18:34
purpose:都已經全螢幕了,你dialog重畫就沒意義吧 124.8.137.121 04/09 18:34
seoker:雖然他全螢幕,我視窗還是想出現耶 210.63.100.2 04/09 21:18
seoker:為什麼重畫沒意義呢? 210.63.100.2 04/09 21:18
seoker:去hook他是甚麼意思呢@@? 210.63.100.2 04/09 21:18
purpose:喔,還是想出現,那我搞錯了 124.8.137.121 04/09 21:21
seoker:不過樓上提供的連結應該可以拿來用喔!180.218.162.247 04/09 21:55
seoker:如果無法解決的話,就偵測是不是遊戲180.218.162.247 04/09 21:55
seoker:如果是的話,就不要出現180.218.162.247 04/09 21:55
seoker:不過滿想知道a大說的是什麼方法@@180.218.162.247 04/09 21:56
purpose:http://en.wikipedia.org/wiki/Hooking 124.8.137.121 04/09 22:03
EdisonX:p 大可以為hooking/debugging 開系列文了. 180.177.76.161 04/09 22:59
purpose:真有什麼自以為的心得的話,會寫的 124.8.137.121 04/09 23:08
purpose:E 大的網站這麼多文章,是小弟學習的目標 124.8.137.121 04/09 23:08
seoker:謝謝各位大大了,有空的話會研究個QQ180.218.162.247 04/10 00:48