2010-12-18 63 views
1

我正在使用Delphi,並且正在構建自己的TControl類標籤組件。 在根據屬性(如標題,字體等)繪製文本之前,我想清除繪製矩形,就像在組件的位置沒有任何東西。我的意思是我想讓它像玻璃一樣,以便顯示它後面的其他組件;然後繪製文字。我應該如何繪製放置在標籤背後的其他組件?怎麼可能清除以前畫的東西?

+1

你讀過Charles Petzold關於Windows編程的開創性工作嗎?你肯定會找到答案。 – 2010-12-18 11:13:23

回答

4

要做到這一點,您無需執行任何操作。 :-)

當你製作一個透明的標籤式組件時,最好使用TGraphicControl基類。這實際上僅僅是一幅畫畫。無論何時應該更改內容,您都可以調用Invalidate方法重新繪製控件。這將調用Paint方法,您可以覆蓋。每重繪一遍,您的控制就會清晰透明,除了您在Paint方法中繪製內容的部分外。

0

除非你重寫和禁用背景畫,那麼你不需要做任何事情。這取決於你去的基礎班。雖然您可以簡單地使用(在Paint()方法中):

Canvas.Brush.Style:=bsSolid; 
Canvas.Brush.Color:=self.Color; //If you have a public color property 
Canvas.FillRect(ClientRect); 

您還應該閱讀TControlCanvas。這裏是一個網站,更深入地處理這個話題:http://www.delphidabbler.com/tips/75

相關問題