Fw: [問題] topmost 視窗於遊戲畫面閃動問題

看板Programming作者 (Seoker)時間13年前 (2012/04/09 01:07), 編輯推噓4(4015)
留言19則, 4人參與, 最新討論串1/1
※ [本文轉錄自 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

04/04 00:22, , 1F
改用重畫有修改的部分就不會閃爍了
04/04 00:22, 1F

04/04 01:06, , 2F
我整個視窗都有修改的部分QQ
04/04 01:06, 2F
※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: seoker (180.218.162.247), 時間: 04/09/2012 01:07:25

04/09 11:02, , 3F
IE和Media Player的全螢幕是假的
04/09 11:02, 3F

04/09 11:03, , 4F
他只是把視窗放大到跟螢幕一樣大
04/09 11:03, 4F

04/09 11:03, , 5F
遊戲 一定要去Hook他才有辦法解決
04/09 11:03, 5F

04/09 18:33, , 6F
http://goo.gl/ED1rz 為什麼不偵測是否使
04/09 18:33, 6F

04/09 18:34, , 7F
用全螢幕中,來決定要不要繼續重畫
04/09 18:34, 7F

04/09 18:34, , 8F
都已經全螢幕了,你dialog重畫就沒意義吧
04/09 18:34, 8F

04/09 21:18, , 9F
雖然他全螢幕,我視窗還是想出現耶
04/09 21:18, 9F

04/09 21:18, , 10F
為什麼重畫沒意義呢?
04/09 21:18, 10F

04/09 21:18, , 11F
去hook他是甚麼意思呢@@?
04/09 21:18, 11F

04/09 21:21, , 12F
喔,還是想出現,那我搞錯了
04/09 21:21, 12F

04/09 21:55, , 13F
不過樓上提供的連結應該可以拿來用喔!
04/09 21:55, 13F

04/09 21:55, , 14F
如果無法解決的話,就偵測是不是遊戲
04/09 21:55, 14F

04/09 21:55, , 15F
如果是的話,就不要出現
04/09 21:55, 15F

04/09 21:56, , 16F
不過滿想知道a大說的是什麼方法@@
04/09 21:56, 16F

04/09 22:03, , 17F

04/09 22:59, , 18F
p 大可以為hooking/debugging 開系列文了.
04/09 22:59, 18F

04/09 23:08, , 19F
真有什麼自以為的心得的話,會寫的
04/09 23:08, 19F

04/09 23:08, , 20F
E 大的網站這麼多文章,是小弟學習的目標
04/09 23:08, 20F

04/10 00:48, , 21F
謝謝各位大大了,有空的話會研究個QQ
04/10 00:48, 21F
文章代碼(AID): #1FWSNE9T (Programming)
文章代碼(AID): #1FWSNE9T (Programming)