【发布时间】:2012-08-06 12:55:58
【问题描述】:
MFC 组合框确实是一个奇怪的设计。
我使用“下拉列表”类型的组合框。
HBRUSH CValueInputDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hBrush = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_STATIC || nCtlColor == CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(255, 255, 255));
pDC->SetBkMode(TRANSPARENT);
hBrush = (HBRUSH)GetStockObject(NULL_BRUSH);
}
return hBrush;
}
我所做的就是让我所有的 CStatic 和 CEdit 颜色为白色。
但我发现我还将组合框的编辑更改为白色。
那是我不想要的。
那是我不想要的。我无法阻止它
pWnd->GetDlgCtrlID() == IDC_COMBO
这太不友好了。这个组合框。
【问题讨论】:
-
不要责怪 MFC。这就是底层 Windows 控件的构建方式。