0

CStatic から派生したクラスがあり、その上に線を描画して、MFC C++ プロジェクトで測定値を表示します。問題は、ラインの中央あたりでラインの距離を表示していることです。ExtTextOut 関数を使用してテキストを描画しています。そのためにデバイスコンテキストを使用しているため、そのテキストを消去して他の場所に再描画するために多くのことをグーグルで検索しましたが、できません。基本的に CStatic には画像表示があり、その上に描画して測定します。背景画像を損なうことなく、ExtTextOut を介して描画されたテキストを消去する方法を教えてください。

前もって感謝します

4

1 に答える 1

1

テキストの背後にあるものをそのままにして、テキストを消去することはできないと思います。背景をもう一度描き直す必要があります。

すべてを再描画したくない場合は、テキストがある部分を (InvalidateRect または InvalidateRgn を使用して) 無効にすることができ、その部分だけが再描画されます。

線で機能するがテキストで機能するかどうかわからない別のオプションは、CDC::SetROP2で描画モードを R2_XORPENに設定し (私は思う)、テキストを描画してから、もう一度描画して消去することです。ただし、このようにすることで、テキストは背景と「混ざり合った」ように見えます。

于 2013-03-26T07:47:49.393 に答える