我正在尋找AlphaBlend子窗體的一種方式,如果可能的話使用分層窗口,因爲它後面會有交互式控件。AlphaBlend子窗體
問題是我在繪製多個可視層(繪圖,圖片...)的常規TForm中有一個組件。在某些時候,我需要在這個表單上實例化一個編輯器控件(就地),這個控件將涉及我的控件之外的各種標準輸入控件(編輯框,複選框等),但是我想重疊使用alpha混合對圖層前面的圖層進行編輯(並使WS_EX_TRANSPARENT
使其點擊)。
我首先想到了使用子窗體(對於組件來說是無邊界的TForm
),並且工作正常,直到AlphaBlended TForm完全不是alphablended,但一旦父元素變爲不透明...
然後,我嘗試不透明的alphablended表單,將其設置爲fsStayOnTop,並通過對相關事件做出反應,將它保留在屏幕上的組件前,即可正常工作,但這並不是真正令人滿意的解決方案:如果用戶決定將它們移動到組件的前面,則排列順序爲StayOnTop的表單也在應用程序的其他模式和非模式形式之前...
因此,有什麼其他的想法讓孩子形成一個字母? (或表現得像它一樣)
ws_ex_Transparent樣式不會使窗口免受鼠標事件的影響。該風格僅影響繪畫順序。如果您不想接收鼠標事件,請使用SetWindowRgn在窗口中創建「孔」。 – 2009-05-05 14:02:44