问题标签 [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 回答
697 浏览

mfc - 当我单击 CListCtrl 中的另一个列项时,多选将丢失

  1. 请看屏幕截图(这是一个示例)
  2. 我有一个包含 2 列的列表视图,第一列是“名称”,第二列是“状态”
  3. 当我单击第二列中的灯泡时,它将在状态“开”和“关”之间切换
  4. 目前,我需要实现一个多选功能。就是用ctrl或者shift选择多行,然后点击其中任意一个“灯泡”,切换所有选中项的状态。

问题是:

当我单击“灯泡”时,选择的多重将丢失。这意味着当我使用 API GetSelectedCount 时,它将返回 0。

我的调查:

当我点击“灯泡”时,将触发关于项目更改的事件。并且 OnItemChanged 事件将在 OnClick 事件之前触发(这就是 API GetSelectedCount 将在事件 OnClock 中返回 0 的原因)。我想在事件 OnItemChanged 中缓存多选项目,但我失败了,因为每个项目都会触发一次 OnItemChanged 事件。

例如:如果我在列表视图中多选了 3 个项目,然后单击第 3 个项目的“灯泡”,则会触发 3 次 OnItemChanged 事件,以通知这 3 个项目未被选中。所以,在(点击灯泡)的OnClick事件中,我不知道在之前的操作中选择了哪些项目。

此外,单击“灯泡”后,我仍然想保留多选。

任何帮助都感激不尽?

ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, OnItemChanged)

ON_NOTIFY_REFLECT_EX(NM_CLICK, OnClick)

void CListCtrl::OnItemChanged(NMHDR* pNMHDR, LRESULT* pResult) {......}

BOOL CListCtrl::OnClick(NMHDR* pNMHDR, LRESULT* pResult) {......}

屏幕截图示例

0 投票
1 回答
1284 浏览

c++ - How do I make a smooth scrolling animation?

I have a CListCtrl which has about 100,000+ entries. The user is presented with a search box to search among these entries. On finding a match, I set that as a selection and scroll to it using EnsureVisible.

This scroll happens instantaneously. I wanted to try and code an animation that looks similar to the ones demoed here (especially the 'Go Top - Easing 2' animation).

I'm thinking, for a basic animation,

  1. Get current selection.
  2. Get target selection.
  3. Compute difference.
  4. Get the pixel height of one item.
  5. Mutiply results of step 3 and 4.
  6. Scroll by an increment of 1 (or some other more optimal value) with a delay until increment = result of step 5.

I tried this and I got incredibly confused. Firstly, is my algorithm okay? Secondly, is there another, better way to achieve this (preferably similar to animation 2 in the link above)?

0 投票
2 回答
5958 浏览

c++ - 如何遍历 CListCtrl 的元素?

简要说明:
我得到了一个CTreectrl存储对象的类的实例,当对象选择对象的对象列表报告显示为该对象。
我需要调整派生自的 MyListCtrl 类实例的列的宽度,CListCtrl以便用户可以在不调整列大小的情况下看到该列中的数据。

我如何处理我的任务:
我实现了从树中选择对象时调用的方法 InitColumnWidth

需要帮忙!

0 投票
1 回答
622 浏览

c++ - 如何通知 CTabCtrl 中的所有控件它们应该重绘什么(应该改变它们的大小)?

我得到了一个 MYListCtrl 的实例,它是CListCtrl内部CTabCtrl实例的派生类。我已经实现onSize了 MYCListCtrl 的方法,并将其映射到WM_SIZE消息。

我想在调整包含 CTabCtrl 的窗口大小时更改 MYListCtrl 的大小,调整大小应基于 CTabCtrl 的尺寸。如何通知 MYListCtrl 需要调整大小?

0 投票
2 回答
1279 浏览

swt - 如何用 SWT 实现图像列表控件?

有人知道如何使用 swt 轻松实现图像列表(如带有中等图标的 Windows 资源管理器)控件吗?似乎可以在 Windows 上使用 C++ 中的 CListCtrl 轻松完成,但使用 swt 似乎并不容易?任何提示表示赞赏!

0 投票
1 回答
3744 浏览

c++ - 列表控件中的 MFC 对话框组合框

我正在尝试使用显示一列文本的列表控件(报告视图)创建一个对话框窗口。我正在尝试添加另一个显示组合框的列,该组合框将包含第一列的可能操作列表。在 MFC 中是否有任何简单的方法可以做到这一点?

0 投票
0 回答
265 浏览

c++ - 通过CMFCVisualManager类设置列表中没有输入焦点时高亮项的颜色

简介:
为了为我使用的Win应用程序的控件元素设置自定义外观,我使用CMFCVVisualManagerOffice2007了一组映射:控件的颜色->元素,并实现控件的绘制,基于该映射,这允许给一致的外观应用程序。
我通过提供我需要的颜色来覆盖一些映射,以便组织我自己的调色板。

问题描述:
当列表没有输入颜色时,我需要更改列表中所选项目的颜色。
当列表具有输入焦点时 - 没关系,所选元素以蓝色、清晰可见的颜色突出显示,但当焦点丢失时 - 它以灰色突出显示,这不适合我的应用程序的调色板。

在映射中,我找不到一个用于选择列表元素(始终选择样式)但该列表没有输入焦点的情况。我知道我可以为该列表实现自己的绘制,并为元素突出显示但没有获得输入焦点的情况设置我需要的颜色。但我想根据调色板的配置找到解决方案。

问题: 调色板元素的名称是什么,代表列表中没有焦点的选定元素的突出显示颜色?

0 投票
1 回答
6173 浏览

c++ - 如何禁用 CListCtrl 选择选项

我不知道如何禁用 CListCtrl 选择选项。我想覆盖 CListCtrl 类方法或处理任何窗口命令?谢谢。

0 投票
0 回答
728 浏览

c++ - MFC。类 CListCtrl。如何确定符号中可能的最大列宽?

MFC 是否提供接口来获取类实例列的最大可能宽度CListCtrl?如果是这样,那是什么?谢谢。

更新:这是一个小代码片段,显示了我将如何使用该值:

0 投票
2 回答
3716 浏览

c++ - 如何调整 CListCtrl 列的宽度以适应每列中最长的字符串?

我在尝试:

结果:每列的宽度调整为它的标题字符串大小,而不是最大的字符串。
我做错了什么?