问题标签 [ccombobox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6302 浏览

c++ - CComboBox 排序

所以我试图在现有的应用程序上削减我的 CPP 牙齿。

我遇到了一些障碍。我的组合框项目正在按顺序添加,如下所示。但是,输出是

我在这里查看了 CComboBox 文档。然而,我仍然对为什么会产生这个结果感到困惑。

0 投票
2 回答
1830 浏览

c++ - 有没有办法在 MFC 中将 CString 以外的对象添加到 CComboBox 中?

我正在尝试将具有成员变量的对象添加CStringCCombobox. 我不能只添加字符串,因为我正在尝试与一个工具交互,该工具要求我拥有另一个成员变量,而不仅仅是一个字符串作为CComboBox. 以下是我正在尝试做的事情。

我只希望显示的字符串myOwnObject,但要显示整个对象在列表框中,以便其他工具可以访问其他成员变量。

0 投票
1 回答
932 浏览

c++ - 使用 Overdrawn 属性创建 CCombobox 时调试断言失败

我正在尝试使用以下代码创建一个 CCombobox:

但它给出了“调试断言失败”的错误消息

文件:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winctrl1.cpp, Line 271 仅当我尝试使用CBS_OWNERDRAWFIXED标志创建 CCombobox 时才会出现此问题。有人请告诉我如何以编程方式创建一个 CCombobox,并将 Owner Drawn 属性设置为fixed

0 投票
1 回答
98 浏览

c++ - CComboBox 控件在我们输入时总是采用大写字母吗

我正在使用 CComboBox 控件。当我在其中输入一些字符并检查输入了哪个字母(在 PreTranslateMessage() 中)时,我总是在其消息的 wParam 中得到大写字母。我的 CComboBox 控件没有大写属性 TRUE。为什么会这样?

0 投票
1 回答
452 浏览

c++ - 如何设置 CCombo Box 下拉菜单的宽度

我正在使用一个是CCombo Box后代的类。如何设置其下拉列表 的最大允许宽度?

我从网上冲浪得出的结论是CCombo Box类中没有这种方法。有人请在这方面帮助我。

提前致谢。

0 投票
0 回答
604 浏览

mfc - CComboBox::SetItemHeight() 增加了项目和控件的高度

我正在使用一个类,它是CComboBox. 当我使用以下代码调用方法来设置组合框CComboBox::SetItemHeight的高度时,就会出现问题:

它设置了 Items 的高度,但控件(下拉列表)的高度也增加了,新的高度大于我通过对话框设置的高度。我还尝试了以下代码:

但这会设置编辑控件的高度而不是项目的高度。在不影响下拉列表高度的情况下,我应该如何设置组合框项目的高度?

0 投票
1 回答
343 浏览

c++ - 如何在 CCombobox 中添加背景文本

我们经常在搜索栏上看到背景文本,例如“在此处搜索”、“在此处键入以进行搜索”等,当我们开始键入时它会消失。看看下面的一个:

我需要的样本

是否有任何built-in方法可以MFC ApplicationCComboBox 控件中实现相同的功能?

0 投票
0 回答
269 浏览

c++ - GetSel 方法在 CEdit 控件上始终返回零

在 MFC 应用程序CEdit中,对话控件是子类化的。另一个对话框上有一个数字键盘,应该将值发送到该文本框。如果文本在编辑控件上突出显示,则该GetSel方法返回突出显示文本的开始和结束索引,这将替换为来自键盘的值。这工作正常。

现在,如果子类CEdit成为自定义控件的一部分,则组合框CComboBox控件GetSel上的方法CEdit始终返回 0。

我似乎没有意识到原因和解决方案是什么。并会感谢任何帮助。谢谢。

更新:

这是一段试图获取突出显示的文本的代码

该组合的子类如下:

和 CEdit 控件:

0 投票
1 回答
1981 浏览

c++ - CComboBox 下拉时未选择 CurSel

我在对话框中有一个按字母顺序排序的组合框。此组合包含多个字符串,但有些字符串因大小写不同而重复。即我们有一个“开”和一个“开”,一个“关”和一个“关”。这似乎是多余的,但这是有原因的,尽管现在这并不重要。

重复项显然一个接一个地出现在列表中,大写的字符串在前。IE:

离开

离开

当用户选择“开”(小写)时,正确的索引设置为CurSel并显示正确的字符串。但是,当我单击组合框的箭头以下拉列表时,它不会突出显示CurSel,而是突出显示它之前的大写字符串。请参阅下面的图片。

这是在下拉列表中选择的:

下拉列表之前的选定项目

这是展开下拉列表时在组合框中选择的内容。

下拉后选择的项目

我已经捕获了ON_CBN_DROPDOWN消息,并检查了curcel值,它与我预期的一样。

我也已经对这个组合框进行了子类化,以便我可以以区分大小写的方式在此列表中搜索字符串,因为我知道它没有正常实现,所以它可能是导致我的问题的原因。

但是我不明白为什么在这个阶段字符串会覆盖curcel值?该CurSel值不应该是用于选择相关项目的值吗?

任何关于如何解决此问题的想法将不胜感激。

编辑: 我试图CBN_DROPDOWN通过覆盖OnWndMsg. 出现此消息时,我会在下拉菜单之前获得当前选定的项目(这是正确的项目)。然后我放下菜单,调用SetCurSel我之前检索到的内容。

这种方法有效,但是当我取消焦点或再次单击下拉箭头以隐藏下拉列表时,文本框中会显示错误的项目。这是一种有效的方法,还是我完全不在这儿?折叠下拉菜单时会发送什么消息?

编辑2:我已经从代码项目 中实现了区分大小写的组合框,效果很好。

0 投票
1 回答
789 浏览

visual-c++ - 更改 CComboBox 的边框颜色以显示错误和警告

我在我的项目中使用 CComboBox。我想在焦点上更改边框组合框的颜色