我有一個對話框,其中編輯框被禁用,但文本應該顯示爲紅色而不是默認的灰色。我試過以下內容:如何使用MFC更改禁用的編輯框中的文本顏色?
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()。我不明白的是,刪除對基類的調用,將文本的顏色更改爲指定的內容,但保持它僅將其更改爲默認的灰色。
感謝您的回答。請參閱我添加到問題的評論。 – yasouser 2011-01-24 14:12:26