1

Win32 C++ を使用して編集ボックスを作成しました。私はそれをサブクラス化し、背景色で塗りつぶしている OnPaint メソッドをオーバーライドしました。

テキストを入力すると、テキストは表示されませんが、カーソルの移動は表示されます。

背景色を入れないと、編集ボックスにテキストが表示されます。

背景色のテキストが表示されない理由は何ですか?

4

1 に答える 1

2

エディット コントロールの WM_PAINT を処理することは想定されていません。ここでは、背景色を塗りつぶそうとしていますが、その過程で、元の編集制御手順がコンテンツをペイントすることを許可していません。この場合は、入力したテキストです。ShowCaret 関数を使用して表示されるため、カーソルが表示されます。

したがって、編集コントロールの背景色を変更するだけの場合は、親ウィンドウで WM_CTLCOLOREDIT と WM_CTLCOLORSTATIC を処理し、ブラシを返します。http://msdn.microsoft.com/en-us/library/windows/desktop/bb761691%28v=vs.85%29.aspxを参照してください。

于 2012-07-20T06:58:58.167 に答える