首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MFC ComboBox下拉列表不突出显示选定项

MFC(Microsoft Foundation Class)是微软公司提供的一套用于开发Windows桌面应用程序的类库。ComboBox是MFC中的一个控件,用于显示一个下拉列表供用户选择。

在MFC ComboBox中,默认情况下,选定项并不会突出显示。然而,我们可以通过一些方法来实现选定项的突出显示,以提高用户体验。

一种常见的方法是使用Owner Drawn技术,即自定义绘制ComboBox的外观。通过重写ComboBox的DrawItem函数,我们可以自定义绘制每个列表项的外观,包括选定项的突出显示。在绘制选定项时,可以使用不同的颜色或背景来突出显示。

另一种方法是使用CComboBox::SetCurSel函数来设置选定项,并使用CComboBox::SetItemData函数设置选定项的数据。然后,在绘制ComboBox的外观时,可以根据选定项的数据来判断是否需要突出显示该项。

以下是一个示例代码,演示如何使用Owner Drawn技术来突出显示选定项:

代码语言:txt
复制
// 在头文件中声明一个CComboBox派生类
class CMyComboBox : public CComboBox
{
public:
    virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
};

// 在源文件中实现DrawItem函数
void CMyComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
    CDC dc;
    dc.Attach(lpDrawItemStruct->hDC);

    // 绘制背景
    if (lpDrawItemStruct->itemState & ODS_SELECTED)
    {
        // 选定项的背景颜色
        dc.FillSolidRect(&lpDrawItemStruct->rcItem, RGB(0, 0, 255));
    }
    else
    {
        // 非选定项的背景颜色
        dc.FillSolidRect(&lpDrawItemStruct->rcItem, RGB(255, 255, 255));
    }

    // 绘制文本
    CString strText;
    GetLBText(lpDrawItemStruct->itemID, strText);
    dc.SetBkMode(TRANSPARENT);
    dc.SetTextColor(RGB(0, 0, 0));
    dc.DrawText(strText, &lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER);

    dc.Detach();
}

// 在使用ComboBox的对话框类中,将ComboBox的类型更改为CMyComboBox
CMyComboBox m_ComboBox;

通过以上代码,我们可以自定义绘制ComboBox的外观,并根据选定项的状态来突出显示选定项。

在实际应用中,MFC ComboBox的下拉列表可以用于许多场景,例如选择性别、选择城市、选择日期等。对于不同的场景,我们可以根据具体需求来设置ComboBox的选项,并使用上述方法来突出显示选定项。

腾讯云提供了一系列云计算相关的产品,其中包括云服务器、云数据库、云存储等。您可以根据具体需求选择适合的产品。更多关于腾讯云产品的介绍和详细信息,请参考腾讯云官方网站:腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【愚公系列】2023年11月 Winform控件专题 ComboBox控件详解

1.2 MaxDropDownItems和IntegralHeightComboBox控件是Winform中常用的控件之一,用于在下拉列表显示可供选择的数据。...MaxDropDownItems属性用于设置下拉列表最大可显示的数据项数量。通过设置MaxDropDownItems属性,可以限制下拉列表显示的数据项数量,以防止下拉列表过大而导致界面混乱。...当下拉列表中有更多的数据时,可以使用滚动条滚动查看。...DropDownStyle属性是ComboBox控件的枚举类型,可选择的值有三种:DropDown:这是默认值,此时ComboBox控件下拉列表以展开的形式显示,用户可以手动点击下拉列表选择要显示的选项...DropDownList:此时ComboBox控件下拉列表以展开的形式显示,但是用户不能输入或编辑下拉列表中的选项内容,只能从中选择一个选项。

1.1K11

Easyui datagrid combobox输入框下拉(取消)选值和编辑已选值处理

测试环境 jquery-easyui-1.5.3 需求场景 如下,在datagrid中新增、编辑记录: 新增时通过点选指定combobox下拉列表项来实现选择、取消选择所点(多选combobx:如果输入框中没有该选项...,则选中该项,并自动显示combobox输入框中,否则取消选中该项,并自动去除combobox中对应的;) 编辑时,点击下拉三角,打开下拉列表列表中自动选中同输入框中的值对应的列表项;另外,输入框支持手动输入...,如果手动输入的值不在下拉列表中,则收起下拉框时,自动去除不在下拉列表项中的值 ?...),就等同于未选中选项的情况下,手动点选下拉列表项,会自动触发onSelect事件 3)多选combobox,如果点选下拉列表项,如果点击之前选项已选中,则会取消选中该选项,并去掉combobox中对应...5)隐藏、收起combobox下拉列表框时,会自动触发onHidePannel事件,该事件处理函数携带参数 解决方案: 1)设置所属项目combobox多选,可编辑,为其添加onSelect,onUnSelect

3.3K10

mfc可视化界面_mfc界面开发

m_clrHighlighted – 搜索结果菜单中突出显示的文本背景颜色。 m_clrHighlightedText – 突出显示文本的前景色。...对于这种应用程序,框架会扫描所有工具栏和菜单栏以寻找最佳匹配,并在下拉菜单中显示搜索结果。...Ribbon Designer:添加了以下新属性 组合框中下拉列表的高度。 滑块控件的扩展(右侧)文本。 命令搜索选项。 工具栏和菜单 1. 改进了某些可视化主题中禁用的组合框外观。 2....CBCGPPopupMenu:添加了突出显示(标记)的文本支持,调用新的静态方法 CBCGPPopupMenu::SetHighlightedText 来指定要突出显示的单词列表。 3....本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

3.6K20

Python 窗体(tkinter)下拉列表框(Combobox)实例

Combobox Combobox下拉列表控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选。使用方式为ttk.Combobox(root,option…)。...常用的参数列表如下: 参数 描述 master 代表了父窗口 height 设置显示高度、如果未设置此项,其大小以适应内容标签 width 设置显示宽度,如果未设置此项,其大小以适应内容标签 state...返回多个值,返回元组,如listbox.get(0,2);返回当前选中的索引listbox.curselection() values 设定下拉列表的内容。...如 data = [“a”,”b”,”c”], cbx[“values”] = data current(i) 指定下拉列表生成时显示列表值,i = index。...如current(2),显示列表中的第三个值 事件: 下拉列表没有command函数(方法)。 下拉列表的虚拟事件是 “<<ComboboxSelected “。 4.

10.8K40

C++ Qt开发:ComboBox下拉组合框组件

在Qt中,ComboBox(组合框)是一种常用的用户界面控件,它提供了一个下拉列表,允许用户从预定义的选项中选择一个。...该组件提供了一种方便的方式让用户从预定义的选项中进行选择,一般来说ComboBox会以按钮的形式显示在界面上,用户点击按钮后,会弹出一个下拉列表,其中包含预定义的选项。...addItems(const QStringList &texts) 向组件添加多个,使用字符串列表。...通过模型,可以更灵活地管理组件中的。 view() 返回组件的视图,允许对视图进行定制。 clear() 清除组件中的所有。 showPopup() 打开组件的下拉列表。...hidePopup() 隐藏组件的下拉列表。 activated(int index) 信号,当用户选择组件中的时发出。

34110

Easyui datagrid combobox输入框非法输入判断与事件总结

测试环境 jquery-easyui-1.5.3 常见事件 onSelect // 选择下拉列表项时触发的事件 onHidePanel // 收起下拉列表时触发的事件 onChange // commbox...输入框的值改变时触发事件 单选Combobox 针对单选Combobox 1、点选 通过点选下拉列表中可选项,并自动收起下拉列表 如果选取和当前输入框的值不一样,会先后触发事件:onSelect ->...附:我早些前的做法,如下,获取输入框的值,然后遍历逗号分隔的每项是否在下拉列表中,是的话停止遍历,进行下一个的检测,只要有一不符则判断为非法输入。...// 收起多选combobox下拉列表时触发事件 function onHidePanelForCombobox(){ var text = $(this).combobox('getText'...mark) { $(this).combobox('clear'); $.messager.alert('告警', '请通过下拉列表择现有', 'warning

3.1K30

C#上位机开发(三)—— 构建SerialAssistant雏形

,这里我们选择微软雅黑,12号字体; label1.Text = "串口"; //设置label的Text属性值   3)下拉组合框控件(ComboBox)     用来显示下拉列表;通常有两种模式...,一种是DropDown模式,既可以选择下拉,也可以选择直接编辑;另一种是DropDownList模式,只能从下拉列表中选择,两种模式通过设置DropDownStyle属性选择,这里我们选择第二种模式...;     那么,如何加入下拉选项呢?...对于比较少的下拉,可以通过在属性面板中Items属性中加入,比如停止位设置,如图,如果想要出现默认值,改变Text属性就可以,但要注意必须和下拉一致: ?   ...添加了串口组件后,我们就可以通过它来获取电脑当前端口,并添加到可选列表中,代码如下: //获取电脑当前可用串口并添加到选项列表comboBox1.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames

2.6K41

【愚公系列】2023年11月 Winform控件专题 TextBox控件详解

欢迎 点赞✍评论⭐收藏前言Winform控件是Windows Forms中的用户界面元素,它们可以用于创建Windows应用程序的各种视觉和交互组件,例如按钮、标签、文本框、下拉列表框、复选框、单选框、...Normal(默认值):更改文本的大小写形式。...在属性面板中,找到CharacterCasing属性,从下拉列表中选择你需要的选项。...在Visual Studio的设计器中,选择控件后,在属性窗口中找到TextAlign属性,可以通过下拉列表选择对齐方式。...SuggestAppend: 表示启用自动完成功能并且在用户输入时弹出一个下拉框,显示与当前输入匹配的内容。当用户从下拉框中选择一个时,这个的内容自动添加到文本框中。

42222

C#自定义泛型类绑定ComboBox控件

C# WinForm ComboBox 自定义数据 (ComboBoxItem ) WinForm下的ComboBox默认是以多行文本来设定显示列表的, 这通常不符合大家日常的应用,  因为大家日常应用通常是键...因为Combox的每一个的值是一个object, 实际上就是一个键/值对....我用的是下面这个类的实例作为它的一个:     ///      /// ComboBox     ///      class ListItem : System.Object..., 取值等操作:             drpTest.SelectedValue = "4";        //设定选择             //取得当前选择的             ....SelectedItem;             Text = item.Value;         }     } } 一个 1月 到12 月的下拉单 for (int i = 1; i <=

1.6K10

如何使特定的数据高亮显示?

所以,在这里要提醒小伙伴们,如果想实现整行的突出显示,“突出显示单元格规则”是不适用的。“突出显示单元格规则”顾名思义,就是对符合规则的“单元格”进行设置,而不是对“数据行”进行设置。...2.如何使特定数据行高亮显示? 首先,选定要进行规则设置的数据范围:选定第一行数据行后,同时按住Ctrl+Shift+向下方向键,可快速选定所有数据行。...(提醒:不要选定标题行,因为标题行是文本,在excel的世界里,文本是永远大于数值的哦,如果选定了标题行,excel也会对标题行进行判断) 然后,在【开始】选项卡下,单击【条件格式】按钮,在展开的下拉菜单中...,单击【新建规则】命令,如下图: 在弹出的【新建格式规则】窗口里,选择“使用公式确定要设置格式的单元格”。...像这种只锁定列而锁定行,或只锁定行而锁定列的,在excel里又称为“混合引用”。 最终效果如下图所示: 只有薪水大于20000的数据行,才会被突出显示

5.1K00

Python Tkinter Entry和Text的添加与使用详解

输入框和消息显示框是常用的GUI界面部件,其中输入框的重要任务就是返回一个输入的字符串,而消息显示框则要显示指定的信息。...功能:输入一个密码,如果密码正确则显示confirm,不正确则显示sorry __author__ = 'freedom' from Tkinter import * class App(Frame):...self.txt.insert(0.0,message) root = Tk() root.title("Password") app = App(root) root.mainloop() 补充知识:tkinter禁用(只读)下拉列表...Combobox的实现 tkinter将下拉列表Combobox控件的状态设置为只读,也就是不可编辑状态: # 定义下拉列表值 self.Combo3List = [1, 2, 3,] # 定义下拉列表控件...,self.Frame1为Combobox的父级, state表示Combobox的状态,readonly为只读,disabled为禁用 self.Combo3 = Combobox(self.Frame1

1.8K20

在DataGridView控件中加入ComboBox下拉列表框的实现

,但这样的列会在整列中都显示下拉列表框,不太美观,而且还要用代码实现数据绑定。...本文介绍一种只在当前编辑单元格中显示下拉列表框的方法,供大家参考。   ...打开窗体代码窗口,在代码窗口中声明一个ComboBox的控件 // 定义下拉列表框 private ComboBox cmb_Temp = new ComboBox();   我们要绑定的下拉列表框的功能是选择性别...// 将下拉列表框加入到DataGridView控件中     this.dgv_User.Controls.Add(cmb_Temp); }   当用户选择的单元格移动到性别这一列时,我们要显示下拉列表框...(cmb_Temp);         }         // 当用户移动到性别这一列时单元格显示下拉列表框         private void dgv_User_CurrentCellChanged

3.6K20
领券