问题标签 [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 投票
1 回答
2125 浏览

mfc - 调用CComboBox::ShowDropDown后如何防止鼠标光标隐藏?

在我的 MFC 应用程序中,当我调用 CComboBox::ShowDropDown() 时,鼠标光标被隐藏,直到与组合框的交互完成(当组合框失去焦点时。)当鼠标移动时它不会重新出现,就像它一样带有编辑框。

如何让鼠标光标不被隐藏?

0 投票
3 回答
5973 浏览

visual-c++ - 如何使用搜索创建 MFC 组合框

我需要一个具有搜索功能的 Windows MFC 应用程序中的组合框。它应该可以工作,以便如果您开始键入与列表中的一个或多个项目匹配的内容,组合框应该下拉并显示这些项目。有点像网络上流行的基于 ajax 的搜索框

您知道提供此功能的任何控件吗?- 有关于如何自己创建此类功能的信息的链接?- 有关于如何做到这一点的想法可以分享吗?

0 投票
1 回答
365 浏览

mfc - 如何将 CComboBox 数据复制到另一个 CComboBox?

如何将 CComboBox 数据复制到另一个 CComboBox?

0 投票
1 回答
1537 浏览

c++ - CComboBox 在调用 MoveWindow 后自动选择文本

我目前遇到了一个非常奇怪的问题,其中CComboBox使用了CFormView.

将字符串添加到组合框(使用创建WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT | CBS_AUTOHSCROLL)后,我在派生类的处理程序中选择一个条目CComboBox::SetCurSel并通过调整组合框的大小。MoveWindowOnSize()CFormView

一旦我包含对 的调用MoveWindow,组合框的编辑部分中的整个文本就会被选中。如果我删除对 的调用MoveWindow,则不会选择文本。这不仅适用于一个,而且适用于所有使用的组合框。

在这一点上,我不知何故迷路了。非常感谢任何提示!

0 投票
2 回答
13271 浏览

mfc - 当用户从 CComboBox 中选择项目时捕获

这是最基本的。

我想捕捉用户从CComboBox(实际上是 的子类CComboBox)中选择项目的时间。

尝试了很多 , 的OnCblSelChange组合OnCommand。猜猜我还没有击中正确的组合(没有双关语)。

操作系统是 Vista,但我强制使用 XP 样式的对话框(这不重要,应该吗?)

我能够捕获派生自CEdit和的类的事件CFileDialog

我在这里束手无策。任何帮助将不胜感激。

当然,任何源代码都会比以往任何时候都更受欢迎。

0 投票
1 回答
2731 浏览

mfc - 从 CComboBox 捕获 Enter 按键

一旦用户在我的 CComboBox 中(在 CDialog 子类中)输入内容并按 Enter,我想将他们写入的内容添加到选项列表中,并进行其他处理。你如何在 MFC 中做到这一点?

0 投票
1 回答
2356 浏览

c++ - 使用 MFC 拦截来自孩子的孩子的消息

我有一个 CListCtrl 类,当用户选择其中一个子项时,我在子项上显示一个 CComboBox,然后用户可以从中进行选择。

但是我有一个问题。当用户做出选择时,我需要组合框消失(即拦截 CBN_SELCHANGE)。问题是我需要使 CComboBox 成为 CListCtrl 的子项(否则即使我将组合框设置为最顶部,我也会在组合框上绘制列表时遇到奇怪的问题)。所以 CBN_SELCHANGE 消息被发送到列表视图,可以理解的是,忽略它。如何让列表视图将该消息传递给父窗口。

我真的需要派生自己的 CListCtrl 类来简单地拦截 CBN_SELCHANGE 消息并将其传递给父窗口吗?有没有比创建 OnWndMsg 处理程序更好的方法呢?

谢谢你的帮助!

编辑:此代码有效

但我真的很想知道是否有更好的方法来做到这一点。

0 投票
1 回答
4489 浏览

mfc - 在 MFC 中,如何判断 CComboBox 是否已启用?

我看到您可以使用 EnableWindow 方法启用/禁用,但我如何获得它的当前状态?

0 投票
1 回答
2411 浏览

c++ - 在 Windows 7 上 SetCurSel 之后的 MFC CComboBox OnKillFocus/ShowDropDown

您可能知道 CComboBox(DropDownList 样式)只有在您不让它对其内容进行自动排序时才能通过键入正确选择。这是我的意思的一个例子:你输入A然后B。如果它没有自动排序,它将首先选择下一个以A开头的条目,然后选择下一个以B开头的条目。如果它被排序,它将选择下一个条目与 A 然后下一个以 AB 开头。

我有一个继承自 CComboBox 的类,它的内容没有按内置排序机制排序。我想要一个正确的按类型选​​择的行为,所以我自己实现了。我通过使用 SetCurSel 选择条目,然后将 CBN_SELCHANGE 消息发送到父窗口。

在 Windows XP 上,这工作得非常好。我们现在使用的是 Windows 7,现在出现以下问题:如果我使用鼠标打开下拉列表,通过键入来选择一个条目,然后使用 Tab 跳转到下一个控件,开始时选择的值是自动重新选择。

如果我覆盖 OnKillFocus 并执行以下操作:

它通常可以工作,但是有一段时间旧的选择值仍然会闪现,这很丑陋。

如果我不调用 CComboBox::OnKillFocus() 正确的条目仍然被选中,但组合框仍然被下拉。

所以我的下一个尝试是手动调用 SetDropDown(FALSE)(在 OnKillFocus() 中没有其他内容),但问题又出现了。

所以我的猜测是,如果您打开下拉列表,则当前选择会在内部存储。调用 SetCurSel 不会更新此内部值。而且,如果您标记出该内部值,则会再次重新选择。

有什么想法可以解决这个问题吗?

0 投票
1 回答
530 浏览

c++ - 如何更改 CListBox/CComboBox 中特定项目的字体

我有一个带有子类 CListBox 的 CComboBox 派生类。我想将 CListBox 中的前两项加粗。我怎样才能做到这一点?