2013-03-26 57 views
0

我有一個派生自CStatic的類,並且我在繪製線條以顯示MFC C++項目中的測量。問題是我在線的中間顯示線的距離。我使用ExtTextOut函數來繪製文本。正如我使用設備上下文,我GOOGLE了很多擦除文本和重繪在其他位置,但我無法做到。基本上CStatic有一個圖像顯示,我正在繪製測量圖。請任何人都可以告訴我如何擦除通過ExtTextOut繪製的文本,而不會損害背景圖像?擦除文本繪製通過ExtTextOut函數

在此先感謝

+1

我不確定我是否瞭解所有內容。向我們展示一些代碼。您也可以嘗試SetBkMode(OPAQUE)函數。 – 2013-03-26 06:50:37

+0

顯示代碼。在所有者繪製的控件中,基本上我們重繪了OnDraw/OnPaint/OnBgErase函數中的所有內容。 – sarat 2013-03-26 07:51:30

回答

1

我不認爲你可以刪除的文字,留下什麼是它背後不變。你必須重新繪製背景。

如果您不想重繪所有內容,則可以使文本所在的部分無效(使用InvalidateRect或InvalidateRgn),並且只會重繪。

另一個選項,與線條一起工作,但我不知道它是否適用於文本,將設置爲CDC::SetROP2的繪圖模式爲R2_XORPEN(我認爲),繪製文本,然後再次繪製它以清除它。通過這樣做,文本看起來會與背景「混合」。