Virtual CListCtrl Auto Size
Virtual CListCtrl Auto Size
我想自动调整虚拟 ClistCtrl(LVS_OWNERDATA 标志)的列的大小。
我在某些论坛中发现虚拟列表不能使用"LVSCW_AUTOSIZE"选项。有些人建议改为实现算法。
但是一旦加载了我的 ClistCtrl 而没有任何调整大小选项,双击标题分隔符就可以正确调整可见列的大小。
那么,我如何执行"HDN_DIVIDERDBLCLICKW"调用的功能呢?
Clements 建议的自动调整大小适用于普通列表控件,但不适用于虚拟控件(因为控件对列数据一无所知)。您必须自己提供数据列宽。
从这篇 Codeproject 文章中,您应该能够使用如下内容自动调整列的大小:
pListCtrl->SetColumnWidth(i, LVSCW_AUTOSIZE);
int nColumnWidth = pListCtrl->GetColumnWidth(i);
pListCtrl->SetColumnWidth(i, LVSCW_AUTOSIZE_USEHEADER);
int nHeaderWidth = pListCtrl->GetColumnWidth(i);
pListCtrl->SetColumnWidth(i, max(nColumnWidth, nHeaderWidth));
不过,您可能需要处理LVN_GETDISPINFO通知以向虚拟列表控件提供必要的数据...
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 大于65535的C++数组[size]引发不一致的溢出
- 为什么(-1)%vector::size()总是返回0
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 如何在自定义类中启用'auto loops'?
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 为什么这个 std::queue/指向结构的指针列表直到 List.Size() == 0 才释放内存?
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- vector.size() 在比较中意外工作
- vector.back() 和 vector[vector.size() - 1] 之间的区别?
- 返回 str vs. str.substr(0,str.size()) 在 leetcode 中给了我不同的输出
- 为什么当我为 for(auto& it : myUnorderedMap) {... = std::move(it.second)} 时,我会得到一个 const 引用?
- 为什么 GCC 不能假设 std::vector::size 在这个循环中不会改变?
- 为什么"(!v.empty())"比"(v.size() >0)"好?
- 为什么结构化绑定不使用"auto&"返回对结构成员的引用,而是返回成员本身
- 擦除许多矢量元素,同时使用'auto'
- 考虑到其他好处,关键字'auto'真的有助于简化调试C++吗?
- 迭代器库中的 std::size() 不适用于传递给函数的 C 样式数组
- Virtual CListCtrl Auto Size