我試圖在vc++
中創建一個自定義CStatic
控件,並且有一些問題。CStatic自定義控件
我原本只是用CStatic
控制SS_BLACKRECT
風格。這對於這種情況非常有利,直到我需要在需求控制下顯示圖像。
我想出了實際將圖像繪製到控件上的所有物流,但我似乎無法弄清楚如何在不干擾其他事情的情況下如何操作。
基本上我想用SS_BLACKRECT
風格大部分時間的控制功能正常CStatic
。
然後,我需要能夠調用一個方法,它會導致它在控件上繪製圖像。我正在使用GDI
進行繪圖,並且在OnPaint()
方法和DrawItem()
方法中均嘗試過,結果沒有成功。我可以把它畫在OnPaint()
中,但是當我打電話給基地CStatic::OnPaint()
它畫出了我的形象。
我需要能夠讓它像正常一樣繪製,然後只是將圖像放在最上面。當我試圖在DrawItem()
方法中使用它時,我遇到了一個問題,因爲它顯然不是使用SS_BLACKRECT
樣式進行繪製,而是等待我按照它的設想繪製控件。
我想我想要的是三件事之一。在基礎OnPaint()
方法結束後使用GDI
進行繪製的一種方法。一種方法是讓控件繪製默認樣式,然後再繪製OWNERDRAW
圖像。或者模擬SS_BLACKRECT
圖紙的代碼。
最後一個可能是最簡單的,但我不知道我需要設置的所有東西來繪製CStatic
控件,如默認的DrawItem。
您是否找到了此解決方案? – Alan 2009-08-03 20:51:00