2011-02-16 36 views
-1

我有一個WS_EX_LAYERED擴展樣式集的分層形式。我使用CreateWindowEx(...)API函數創建了一個「EDIT」子控件;它在那裏的控件,但沒有畫,沒有任何東西出現在窗體上。在C分層窗口上的alpha混合控制#

我知道,當在頂部窗口上使用WS_EX_LAYERED樣式時,WM_PAINT消息不再發送,兩個子控件都不會收到它,因此它不會出現。

請考慮到窗體的不透明度設置爲255,並且使用UpdateLayeredWindow(...)API將背景繪製爲透明圖像。

當我將鼠標懸停在EDIT控件上時,文本光標出現,我可以複製其中的文本。

我想我要處理的問題是以某種方式使控件接受用戶畫圖。

我已經嘗試使用與窗體相同的技術繪製控件,爲此我創建了一個兼容的DC,但是我不知道這是否可能,我的控件仍然沒有繪製。

它應該工作,如果我發送該控件的WM_PRINTCLIENT?在這種情況下,DC應該是分層的父表單?我也嘗試過這一點,但我無法讓它工作。

範式:http://img580.imageshack.us/i/formy.png/

分層形式:http://img6.imageshack.us/i/layeredform.png/

我的問題是如何讓我的編輯控件接受alpha混合用戶漆?如何在分層窗體上繪製一個alpha混合控件?

回答

-1

在最後,我已經找到一種方法來做到這一點,

什麼,我要做的就是讓每個控件的位圖圖像,並繪製在表格的背景,...當我申請UpdateLayeredWindow該表單,表單包含位圖的所有控件,

我仍然不`噸知道這是否是雖然

的方法效果很好的一個最佳實踐,但我必須去完善它,並添加更多的互動+ alpha混合控制..另一方面,功能有

它在這裏:http://img84.imageshack.us/img84/3172/73845647.png

+0

問題回答 – dst 2011-02-27 15:28:39