![](/img/trans.png)
[英]Problems re-drawing an image on a double-buffered control without flickering
[英]Drawing on another window (without flickering?)
我需要在窗口上繪制一些東西(不是我的-它是用戶定義的,如果有關系的話)。
我已經設法通過使用GetDC獲取設備上下文並正常繪制來在窗口上繪制,問題是我不知道何時繪制到窗口上-窗口不斷在重繪自身(例如游戲) 。 我有一些想法,但到目前為止,它們不是好事/不好/沒有實現。
因此,我正在尋找一種好的方法,使其成為在窗口上顯示之前在窗口上繪制的最后一個方法。 我更喜歡避免不使用SetWindowsHookEx(例如:外部DLL)完成鈎子,但這也可以。
謝謝。
一種替代方法可能是避免直接在窗口上繪畫,而是創建一個透明的分層窗口,將其放置在主窗口的頂部。 這樣,您窗口上的圖形不會干擾主窗口上的圖形,反之亦然。
您可能需要采取某些步驟,才能使鼠標單擊從您的窗口轉到主窗口。 例如。 使用HTTRANSPARENT處理WM_NCHITTEST並使用WS_EX_TRANSPARENT樣式。
由於在Windows下,需要按需繪制窗口,因此,唯一的方法是使用SetWindowsHookEx()
將WM_PAINT窗口掛鈎到該窗口。
這是一個不平凡的過程,需要您的繪畫代碼駐留在DLL中(這樣才能將DLL加載到目標應用程序的地址空間中)。
通常,除非您有充分的理由這樣做,否則這不是一個好主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.