編集ボックスが無効になっているダイアログがありますが、テキストはデフォルトの灰色ではなく赤色で表示されます。私は次のことを試しました:
void CMyEdit::OnEnable(BOOL bEnable)
{
CEdit::OnEnable(bEnable);
if (bEnable)
{
m_BackGroundColor = kRGBWhite;
}
else
{
m_BackGroundColor = kRGBDefaultGray;
}
m_TextColor = kRGBRed;
m_BackgroundBrush.DeleteObject();
m_BackgroundBrush.CreateSolidBrush(m_BackGroundColor);
Invalidate();
}
ただし、テキストは灰色でのみ表示されます。しかし、基本クラスの呼び出しを削除するとCEdit::OnEnable(bEnable);
、新しいテキストの色が有効になります。誰かがコードの何が悪いのか説明できますか?
御時間ありがとうございます。
乾杯...
編集:(コメントを編集に移動します)申し訳ありませんが、元の投稿でそれについて言及するのを忘れました。ON_WM_CTLCOLOR()を処理する代わりに、ON_WM_CTLCOLOR_REFLECT()が処理されます。私が理解していないのは、基本クラスへの呼び出しを削除すると、テキストの色が指定された色に変更されますが、そのままにしておくと、デフォルトの灰色にしか変更されないということです。