问题标签 [clistbox]

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 回答
187 浏览

dhtmlx - 如何为 DHTLMX Clist 单元类型附加事件?

我正在研究 Dhtmlx 网格。我使用了 Clist (Multi-select-combo-box) 数据类型。做出选择后,我需要验证所选项目的列表。熟悉的人可以帮助建议如何为 Clist 数据类型的“onChange”附加事件吗?

0 投票
1 回答
1198 浏览

c++ - 为什么我无法在 CListBox 中获取所选项目?MFC

我有一个带有 CListBox 的 MFC 对话框。我能够成功地使用它添加项目CListBox::AddString并使用CListBox::SetItemDataPtr. 字符串显示在列表框中,我可以通过调用CListBox::GetItemDataPtr并传入静态索引来检索数据指针。我无法使用ClistBox::GetSelItems. 我按照 msdn 上的示例:http: //msdn.microsoft.com/en-us/library/ds24bscf.aspx甚至尝试使用 LPINT:

但无论选择了哪个项目,它总是返回 0。

0 投票
2 回答
764 浏览

c++ - 重置内容后将 CListBox 行的水平滚动设置回

CListBox启用了水平滚动条并正确显示了多项选择。问题是,当我使用函数时

lst.ResetContent()并将其填满,我找不到将行中的文本滚动回相同位置的方法。我试着用

lst.SetScrollPos(SB_HORZ, horizScroll, TRUE);, where horizScroll=lst.GetScrollPos(SB_HORZ);这在滚动条本身上可以正常工作,但是

行中的文本保持不滚动(手动滚动功能正常)。

我的程序结构是:

提前致谢!

编辑:当“rrrower”回答正确时, lst.PostMessage(WM_HSCROLL, MAKEWPARAM(SB_THUMBPOSITION, 250), 0); 消息完成了这项工作。horizScroll完美的滚动位置。我建议发布此消息两次,因为如果您只执行一次,文本会从头到尾重新滚动到想要的位置。当您发布两次时,文本视觉上会停留在正确的位置,滚动条很快就会到达正确的位置。

0 投票
1 回答
125 浏览

clistbox - CListBox 热点跟踪

DrawItem ()以前重画过CListBoxods_hotlight在 win7/win8 中不起作用。我怎样才能做这个CListBox热光跟踪?

0 投票
0 回答
736 浏览

c++ - Metro Look 的自定义 MFC 列表框或菜单控件

我们正在寻找替代方案来复制出现在“Excel 选项”设置中左侧边缘的列表/菜单控件的外观。这不是 Visual Studio 提供的标准 MFC 控件。它对标准列表框控件进行了两项改进,使其作为“选择控件”看起来非常“漂亮”,几乎就像一个垂直方向的选项卡。这些包括:

  1. 响应悬停鼠标[在 Excel 的情况下,通过更改颜色]
  2. 允许使用相当于菜单分隔符

在此先感谢社区。是的,非常相似的控件在 CSS 中很容易获得,但在用于 MFC/C++ 开发的 Visual Studio 中显然没有。

Excel 的 Listbox 实现截图

0 投票
1 回答
215 浏览

c++ - 是否有任何方法可用于更改 MFC(c++) 中 CListBox 的属性“右对齐文本”?

我正在开发 Microsoft Foundation Class (c++) 聊天应用程序,我想在列表框的右侧显示客户端消息,有一个可用的属性“右对齐文本”,但我想通过方法来完成。因为我也需要默认的左侧文本。

谢谢你。

0 投票
0 回答
315 浏览

mfc - MFC Owner Draw Listbox - GetItemDataPtr 返回垃圾

所以我从 CListbox 派生了我的列表框,将资源样式设置为就像我得到的演示项目一样(HASSTRINGS,OWNERDRAW - VARIABLE,NO SORT)。

列表框填充,绘制确定,TRACE 语句给我每个正在绘制的项目的指针值。

直到我滚动。

在我滚动可见列表底部的项目之前,跟踪为(20 是 lpDrawItemStruct->itemID)

20 - 0x036f3d90 {m_Event={ 大小=658 } m_ListName= ...

滚动后我处理的第一个 DrawItem 事件

20 - 0x0127d248 {m_Event={ size=1073736252 } m_ListName= m_ImageName=...} - 评估因发生未处理的异常而中止。

为什么指针不一样?

它不需要滚动来重现这个问题,选择也可以。

那里有任何明亮的火花可以告诉我要寻找什么吗?

0 投票
2 回答
804 浏览

c++ - 在鼠标悬停时获取 ClistBox 项的索引

我有一个简单的 CListBox 控件。我在其中动态添加文本。是否可以获取鼠标当前悬停在列表框上的项目的索引?基本上,我想根据鼠标位置为 listBox 中的每个项目显示一个工具提示。

代码示例非常感谢。

0 投票
2 回答
406 浏览

mfc - 将 std::string 值添加到 CListBox 最终成为乱码

好的,这有什么问题?

AddString如果我在调用 上放置一个断点,则该strName值是正确的。但我的CListBox结局是汉字。为什么 ?

0 投票
1 回答
198 浏览

mfc - 鼠标点击 CListBox 的非项目区域

我想知道用户何时点击了 CListBox,但在任何项目之外。我希望在包含对话框中得到一些通知,以便我可以处理该点以确定它是否在一个项目内mylistbox.ItemFromPoint(flags,outside)。但是列表框中的单击似乎不会导致此类事件。我应该在父对话框中寻找什么事件,以及需要设置什么来启用它?我真的不在乎它是单击还是鼠标按下。

我这样做的目的是如果用户在任何项目之外单击,则取消选择所有项目,使用mylistbox.SetCurSel(-1).


附录:这是按照@mercurydime 建议实现的类的完整代码。

(标题)

(身体)