【发布时间】:2016-04-17 09:23:44
【问题描述】:
我需要使用 WINAPI 和 MINGW 创建一个列表视图(不可能使用 MFC、WTF 或任何类型。纯 C/C++ 和 WINAPI),但我不确定哪种列表类型用于最简单的解决方案。
列表视图 items 将被所有者绘制,并且它要求项目与固定的项目宽度对齐。
|-----------------------|
| item1 | item2 | item3 |
|-----------------------|
| item4 | item5 | item6 |
|-----------------------|
| item7 | item8 | item9 |
|-----------------------|
对于最简单的解决方案,我应该使用哪种列表类型:
- LVS_REPORT 带有所有者绘制的项目和子项目。 (大量自定义消息处理)
- 具有自定义宽度固定的 LVS_ICON。 (不知道怎么做)
- LVS_LIST ??
- ???
那里有任何 win32 编程向导,谁知道我怎样才能在不头痛的情况下完成我的目标?
更新
好的,我明白了。 TLDR;解决方案是从用户单击的位置获取光标位置,然后进行 subitemhittest 并找出用户单击的项目/子项目。然后将该项目/子项目设置为 LVIS_SELECTED。但是你必须要自己绘制列表,因为 windows 本身不支持子项列选择。
【问题讨论】:
-
我只是尝试一下。让用户决定视图。
-
图标视图将按该顺序列出。所有者绘制版本并不容易。请参阅此帖子以获取提示stackoverflow.com/a/36443401/4603670
-
您所说的“纯 C/C++”是什么?