问题标签 [clistctrl]

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

c++ - 在 CListCtrl 中点击 Escape 与 Enter 触发 LVN_ENDLABELEDIT

当两种情况下编辑字段为空时,如何区分两者?
当用户点击转义时,我假设用户根本不想要新值,当
输入时,我假设用户想要一个空字符串来编辑项目......

0 投票
2 回答
2872 浏览

c++ - LVS_EX_FULLROWSELECT 与其他样式有兼容性问题吗?

我正在尝试在我的网格列表控件上设置 LVS_EX_FULLROWSELECT 样式,因为我想要全行选择。但是显然它没有任何效果。由于我还使用了许多其他样式,我想知道 LVS_EX_FULLROWSELECT 是否与其他样式有任何兼容性问题。任何人?以下是我设置的样式。

最初在基本列表控件类上设置了以下样式:

然后我尝试在派生的网格列表控件类中设置其他样式:

0 投票
3 回答
2355 浏览

c++ - 自定义 CListCtrl

我需要在 MFC 中创建一个 ListControl,每行都有不同的列数。我怎样才能做到这一点?

0 投票
2 回答
1378 浏览

visual-c++ - CListCtrl - 如何找到它被选中

我有一个 CDialog 类,里面有两个 ClistCtrl 类。我想找出当前选择了哪个listCtrl。比如说,listCtrl A 和 B。即使我在 A 和 B 之间移动,假设首先我去 A 并选择一行。然后,即使我去 B 并在那里选择一个项目,A 中的项目仍然被选中,因为我不知道我已经进入其他列表。

任何建议,我怎么能找到这个。

0 投票
2 回答
925 浏览

image - CListCtrl 中的水印图像

我想在我的 CListCtrl 的右下角绘制一个透明的水印图像。

你怎么能用 MFC 做到这一点?(我需要没有闪烁的)。

0 投票
1 回答
3332 浏览

c++ - 关于选择 MFC CListCtrl 项

我要做的是在 CListCtrl 中选择一个项目并使所选项目可见(向下滚动)。做这个的最好方式是什么?

我试图myListCtrl.SetItemState(idx, LVIS_SELECTED, LVIS_SELECTED)选择该项目,但我必须手动向下滚动 ListCtrl 以使其可见。该功能存在,CListCtrl::GetTopIndex但我没有找到对应的功能SetTopIndex

非常感谢您的帮助!

0 投票
3 回答
1535 浏览

c++ - MFC限制ClistCtrl中的选定项目

嗨,我使用有 20 个项目的 ClistCtrl,我想限制所选项目的数量。例如只能选择 10 个项目。我该怎么做?感谢您的帮助赫兹。

0 投票
1 回答
4606 浏览

c++ - 如何捕获 CListCtrl 列宽更改事件?

如何CListCtrl在 MFC 中捕获列宽更改事件?我相信应该有一个OnNotify()事件,但我确信用于消息映射和事件本身的各种值和参数。

请注意,CListCtrl可以通过拖动列分隔符或双击标题行来更改列宽。

0 投票
2 回答
11757 浏览

mfc - CListCtrl:如何保持滚动位置?

我有一个 CListCtrl (报告样式),我在其中清除列表并在某些时候重新填充它。我想在执行此操作时保持垂直滚动位置。我看到有几种方法看起来很有希望:

我正在尝试 GetScrollPos() 然后 SetScrollPos() 但它似乎没有工作。保存滚动位置然后恢复它的简单正确方法是什么?

更新

实际上,我似乎可以保存滚动位置 GetScrollPos() 然后 SetScrollPos() 来恢复它,但它实际上似乎只是设置了滚动条位置,实际上并没有滚动我的 CListCtrl 的项目。

更新 2

Scroll() 方法似乎可以正确滚动滚动条内容。然而,它需要一个 CSize 对象作为它的参数。所以问题是如何在 CSize 和 GetTopIndex 或 GetScrollInfo/Pos 的输出之间进行转换。

0 投票
4 回答
5184 浏览

c++ - MFC CListCtrl 吃掉鼠标事件?

CListCtrl除非双击,否则似乎不会发送鼠标向上事件。

我已尝试从鼠标按下处理程序发送丢失的消息以进行补偿,但这会导致其他不良行为。然后我想我可以通过检查状态来更准确地在鼠标移动处理程序中发送消息。然而,这些都是可怕的 hack,除了丑陋之外,它们可能无法在派生控件的每个可能实现中正常工作。

如果有人知道为什么没有收到鼠标事件,我会很好奇。更重要的是,我如何CListCtrl使用该LVS_OWNERDATA样式像其他控件一样发送鼠标向上消息?

编辑:我知道LVN_BEGINDRAG,LVN_BEGINRDRAG等 但是为了使用这些我需要防止WM_LBUTTONDOWN,WM_RBUTTONDOWNWM_MOUSEMOVE进入父窗口或DragDropManager连接到CWinAppEx/CMDIFrameWndEx所以我可以为这个控件制作一个特殊的一次性案例与现有系统。

这是因为我有一个中央拖放管理器,它可以通知各种类型的控件何时开始拖动操作、何时结束、取消、更改动画、在自定义消息中传递源和目标的显示对象等。它需要足够灵活,可以根据控件、输入、选择或目标项目的类型、包括 3D 在内的不同控件类型,甚至不同的应用程序等来具有不同的启动方式和不同的操作。