皆さん、実行時にCEditコントロールの背景色を変更する方法を簡単に説明してもらえますか?フィールドの長さがゼロの場合は背景を赤に、それ以外の場合は通常の白に変更できるようにしたいと思います。
13334 次
2 に答える
7
プレーンな CEdit では実行できません。いくつかのビットをオーバーライドする必要があります。
独自の ON_WM_CTLCOLOR_REFLECT ハンドラーを実装し、ハンドラーで色付きの CBrush を返します。
(大まかに言えば、通常のリソース管理をそこに配置する必要があります。デストラクタでブラシを削除するには rememebr を使用します)
class CColorEdit : public CEdit
{
....
CBrush m_brBkgnd;
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor)
{
m_brBkgnd.DeleteObject();
m_brBkgnd.CreateSolidBrush(nCtlColor);
}
}
于 2008-10-20T10:59:39.973 に答える