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

c++ - 如何防止 CListCtrl 上的闪烁?

我在启用LVS_REPORT的虚拟模式 ( LVS_OWNERDATA)中使用 CListCtrl/CListView 报表视图 ( )LVS_EX_DOUBLEBUFFER并且遇到难看的闪烁。双缓冲有一个真正的效果,但它不会停止所有闪烁(没有它非常慢)。

我不想切换到需要大量返工的其他控件(如 ObjectListView)

闪烁的行为如何:

  • 调整列大小 - 首先使用浅灰色清洁背景,然后显示文本(背景为白色)
  • 鼠标滚动(动画) - 在很短的时间内,在要显示新行的区域中会显示浅灰色条。

看起来它确实使用默认窗口背景颜色(浅灰色)清理了必须重绘的区域的背景。

如何解决闪烁问题?

0 投票
3 回答
3893 浏览

c++ - C++/MFC:处理多个 CListCtrl 的标头 HDN_ITEMCLICK 事件

我正在编写一个 MFC 应用程序,其中我在报表视图中有一个带有多个 CListCtrls 的对话框。我希望其中一个是可排序的。所以我处理了 HDM_ITEMCLICK 事件,一切正常……除了如果我单击另一个 CListCtrl 的标题,它确实对 OTHER CListCtrl 进行排序,这看起来有点愚蠢。

这显然是由于标头的 ID 为 0,这使得消息映射中的条目如下所示:

但是由于所有标题的 id 都为零,显然我的对话框的每个标题都会发送消息。

有没有解决这个问题的简单方法?

编辑:也许我不清楚,但我确实检查了 NMHDR 结构内的值。HwndFrom 指针根据单击的标题而有所不同,这对我没有多大帮助,因为它的值在每个运行时明显不同。由于我上面解释的原因,idFrom 值为 0,因为这是每个标头的 id。谢谢

EDIT2:hwnd 指针值也不对应于 CListCtrl,可能是因为它完全来自不同的对象。

0 投票
1 回答
649 浏览

mfc - OnMeasureItem() 的问题

我在 MFC ListControl 中使用了 OnMeasureItem() 来增加行的高度,并在 Map 中添加了 WM_ON_MEASUREITEM() 消息。我使用的代码如下:

无效 CListCtrlTestDlg::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)

{

if( nIDCtl == IDC_LIST1 )//IDC_LIST1 是我的ListControl ID

}

它不起作用。任何建议是什么问题???

谢谢你!!!!

0 投票
3 回答
13304 浏览

mfc - 在 CListCtrl 中自动调整列宽

如何CListCtrl自动调整其列的宽度?通常,当列表中的项目太长时,后端会从视图中消失,用户必须手动调整相应列的宽度。有没有办法通过代码做到这一点?

0 投票
2 回答
1410 浏览

mfc - 限制列表控件 MFC 中的条目数

我需要限制出现在我的列表控件中的条目,因为两个条目会使我的 MFC 程序变慢。有没有办法在列表控件中只显示最后几个条目(例如最近的 100 个条目)???

谢谢你!!!

0 投票
2 回答
3242 浏览

c++ - 耦合 MFC CListCtrl 和 CTreeCtrl 以获得整个树的视图,而不仅仅是一个节点

考虑 Windows 资源管理器(或 regedit 或类似的)。左侧是树视图,右侧是列表视图。在我所知道的所有情况下,右视图的内容都反映了左窗格中所选节点的属性。这一切都很好……但不是我想要的。

我要显示的树的节点具有与每个节点关联的非常少的属性 (2-3) - 在表格中水平显示为一行的合理数量。我不想将所有列表视图空间浪费在具有很少属性的单个节点上,而是让我的列表视图显示整个树的属性表(作为当前扩展的树的一部分)。因此,左视图(树)中的第 n 行将直接对应于右视图(列表/表格)中的第 n 行,我将对我的树的属性有一个不错的概述。

有谁知道这样做的代码?我猜想将 CListCtrl 从属 CTreeCtrl 将是可行的方法,并以某种方式覆盖垂直滚动功能,以便将它们锁定在一起。我只是不确定是否可以像这样将卷轴锁定在一起……除此之外!非常欢迎所有建议:-)

0 投票
2 回答
2018 浏览

mfc - 在 CListCtrl 中用自定义版本替换 CHeaderCtrl 的正确方法

CListCtrl 有一个 CHeaderCtrl '内置',我们想用自定义的东西覆盖它,即从 CHeaderCtrl 派生的类。

假设我们有一个包含 CListCtrl m_List 和自定义标题 CCustomHeader 的对话框 CMyDlg,那么最好/正确的方法是什么。

0 投票
1 回答
1890 浏览

c++ - CListCtrl 中的向上和向下图标

我有一个包含多列的 CListCtrl,所有列都可以排序。我想添加向上向下图标,以便清楚当前排序的列以及方向;很像 Windows 资源管理器。我的想法是在列名中添加一个实心向上/向下箭头。我尝试使用扩展的 ASCII 字符 30/31;但我没有显示箭头,而是得到了盒子(“找不到字符”字符);并使用 unicode 版本,我得到一个问号而不是字符。

关于我如何做到这一点的任何建议?

0 投票
2 回答
844 浏览

visual-c++ - 虚拟列表控制问题

我正在使用虚拟照明控件,并从地图中获取数据。我的问题是当我运行代码时,它显示列表正常,但是当鼠标光标移动到列表控件上或当我尝试向下滚动时,它给出了一个调试断言失败,说 map/set 迭代器不可取消引用。我的 GetDispInfo() 方法如下:

}

此外,如果当鼠标指针位于列表控件的顶部时,程序会再次崩溃,并从 output.c 文件中显示的行中显示访问冲突:

有没有人有同样的经历?我在这里做错了什么,我该如何解决这个问题?

谢谢你!

0 投票
1 回答
218 浏览

c++ - 如何通过点击“取消”键取消 CListCtrl 中的编辑?

我正在编辑 CListCtrl 控件中的项目。出现一个编辑框,我可以在其中输入文本。
但是,输入文本的事件不会被 LVN_KEYDOWN 处理程序捕获。
否则我怎么抓住它?有样品吗?
谢谢