作者seoker (Seoker)
看板Programming
標題Fw: [問題] topmost 視窗於遊戲畫面閃動問題
時間Mon Apr 9 01:07:25 2012
※ [本文轉錄自 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
1F:→ idicivik:改用重畫有修改的部分就不會閃爍了 04/04 00:22
2F:→ seoker:我整個視窗都有修改的部分QQ 04/04 01:06
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: seoker (180.218.162.247), 時間: 04/09/2012 01:07:25
3F:→ azureblaze:IE和Media Player的全螢幕是假的 118.168.71.163 04/09 11:02
4F:→ azureblaze:他只是把視窗放大到跟螢幕一樣大 118.168.71.163 04/09 11:03
5F:→ azureblaze:遊戲 一定要去Hook他才有辦法解決 118.168.71.163 04/09 11:03
7F:→ purpose:用全螢幕中,來決定要不要繼續重畫 124.8.137.121 04/09 18:34
8F:→ purpose:都已經全螢幕了,你dialog重畫就沒意義吧 124.8.137.121 04/09 18:34
9F:→ seoker:雖然他全螢幕,我視窗還是想出現耶 210.63.100.2 04/09 21:18
10F:→ seoker:為什麼重畫沒意義呢? 210.63.100.2 04/09 21:18
11F:→ seoker:去hook他是甚麼意思呢@@? 210.63.100.2 04/09 21:18
12F:→ purpose:喔,還是想出現,那我搞錯了 124.8.137.121 04/09 21:21
13F:→ seoker:不過樓上提供的連結應該可以拿來用喔!180.218.162.247 04/09 21:55
14F:→ seoker:如果無法解決的話,就偵測是不是遊戲180.218.162.247 04/09 21:55
15F:→ seoker:如果是的話,就不要出現180.218.162.247 04/09 21:55
16F:→ seoker:不過滿想知道a大說的是什麼方法@@180.218.162.247 04/09 21:56
18F:推 EdisonX:p 大可以為hooking/debugging 開系列文了. 180.177.76.161 04/09 22:59
19F:推 purpose:真有什麼自以為的心得的話,會寫的 124.8.137.121 04/09 23:08
20F:→ purpose:E 大的網站這麼多文章,是小弟學習的目標 124.8.137.121 04/09 23:08
21F:→ seoker:謝謝各位大大了,有空的話會研究個QQ180.218.162.247 04/10 00:48