我有一个只读的编辑控件,其中包含文本。我想将默认的灰色背景切换为白色,但运气有限。在我的第一次尝试中,我在对话框初始化期间执行了以下代码:
CEdit *m_ctrlEditOne = (CEdit*) GetDlgItem(IDC_EDIT1);
CDC *m_ctrlEEditWee = m_ctrlEditOne->GetDC();
m_ctrlEEditWee->SetBkColor(RGB(255,0,0));
Invalidate(true);
我尝试的另一个解决方案是:
HBRUSH CTestingDlg::OnCtlColor(CDC* pDC, CWnd *pWnd, UINT nCtlColor)
{
if (pWnd->GetStyle() & ES_READONLY)
//if(pDC->GetRuntimeClass == & ES_READONLY)
{
switch (nCtlColor)
{
case CTLCOLOR_STATIC:
pDC->SetBkColor(RGB(255,255,255));
return (HBRUSH)GetStockObject(NULL_BRUSH);
default:
//return NULL;
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
}
//return NULL;
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
在下面的屏幕截图中,您可以看到文本是在事实之后插入的(这是需要发生的)并以蓝色突出显示 - 我不知道从哪里开始如何让它看起来像正常的,非突出显示文本。单击它时,它会正常显示。在每个编辑控件的左下角,可以看到一个不应出现在那里的正方形。此外,您可以看到一些看起来像是组合框下拉选择的工件出现在较大的框中。
我将不胜感激有关如何摆脱工件并解决插入文本的突出显示问题的任何指示。