在 MFC 中更改组合框的项目背景颜色?

Posted

技术标签:

【中文标题】在 MFC 中更改组合框的项目背景颜色?【英文标题】:Change the item background color of a combobox in MFC? 【发布时间】:2012-03-29 20:59:47 【问题描述】:

我想在使用 AddString 方法时更改组合框项目的背景颜色。

【问题讨论】:

【参考方案1】:

从 CComboBox 派生一个类并覆盖 OnCtlColor。 OnCtlColor中nCtlColor参数为CTLCOLOR_LISTBOX时,调用DC::SetBkColor方法。

可能是这样的:

HBRUSH CMyComboBox::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

    if (nCtlColor == CTLCOLOR_LISTBOX)
        pDC->SetBkColor(RGB(255, 0, 0));

    return CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);

灵感来自here 和here。

【讨论】:

这也适用于 CComboBoxEx 吗?因为我试过了,好像不行……

以上是关于在 MFC 中更改组合框的项目背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

C ++ MFC更改单选框的背景颜色

更改组合框的背景颜色,它根本不改变颜色

在 MFC 控件中更改背景和标题的颜色

WPF 组合框禁用背景颜色

在 MFC 中更改 CListCtrl 整列的背景颜色

在 MFC 对话框中更改菜单栏背景颜色