2013-02-15 42 views
2

我有一個靜態控制有SS_OWNERDRAWSS_NOTIFY標誌時,它是crated。它的父窗口有WS_EX_COMPOSITED標誌。OwnerDraw與WS_EX_COMPOSITED XP下

在Windows XP中,沒有正確繪製,如下面的圖片顯示(右頂矩形):

enter image description here

但在Windows 7下,它繪製正確,如下面的圖片結果顯示(上右頂部的紹興德勝 「X」):

enter image description here

如何解決在XP這個問題呢?此外,什麼導致這個問題(在XP中)?

+0

發佈所有者繪製代碼。這可能是一個阿爾法通道事故。 – 2016-06-29 16:56:50

回答

1

MSDN爲CreateWindowEx()這樣說:

隨着WS_EX_COMPOSITED集,一個窗口的所有後代使用雙緩衝獲得 底部到頂部的繪畫才能。自下而上 繪畫順序允許後代窗口具有半透明性(alpha) 和透明度(顏色鍵)效果,但只有當後代 窗口也設置了WS_EX_TRANSPARENT位時。雙緩衝允許 窗口及其後代繪製沒有閃爍。

I.e.孩子STATIC控制應該有WS_EX_TRANSPARENT設置。

+0

我試圖使用WS_EX_TRANSPARENT,但在XP中,它然後繪製任何東西,即「沒有corss符號,沒有黑色的矩形,只是一個靜態背景」 – user565739 2013-02-17 14:24:35

+0

但在Windows 7或8,沒有問題。 – user565739 2013-02-17 14:25:05