CStatic
カスタムコントロールをvc++
に作成しようとしましたが、いくつか問題があります。CStaticカスタムコントロール
私はもともと、SS_BLACKRECT
スタイルのコントロールCStatic
を使用していました。これは、必要に応じてコントロール上にイメージを表示する必要があるまで、状況に適していました。
私は実際にコントロールに画像を描画することの背後にあるすべてのロジスティクスを理解しましたが、他のものを妨害することなくこれを行う方法を理解するようです。
基本的には、コントロールが通常CStatic
のようにSS_BLACKRECT
スタイルで機能するようにしたいと考えています。
次に、コントロール上にイメージを描画するメソッドを呼び出す必要があります。私はGDI
を使って図面をやっており、OnPaint()
メソッドとDrawItem()
メソッドの両方でそれを試してみました。私はそれをOnPaint()
で描くことができますが、私がベースと呼ぶときにCStatic::OnPaint()
私のイメージ上に描画します。
通常のように描画できるようにする必要がありますが、上に画像を投げるだけです。私がDrawItem()
メソッドでそれをやろうとしたときには、明らかにSS_BLACKRECT
のスタイルを使って描画していなかったので、私は問題を抱えていました。
私が探していると思うのは、3つのうちの1つです。ベースOnPaint()
メソッドが終了した後にGDI
を使用して描画する方法。コントロールにデフォルトのSS_BLACKRECT
スタイルを描画し、その後にイメージをOWNERDRAW
描画する方法。または図面を模倣するコードSS_BLACKRECT
。
最後の1つが最も簡単かもしれませんが、デフォルトのDrawItemのようにCStatic
のコントロールを描画するように設定する必要があることはすべてわかりません。
解決方法を見つけましたか? – Alan