[已解决]为Listview控件添加图像列表,首列不显示图像,只在子项显示图像。
本帖最后由 东风破 于 2014-4-23 14:27 编辑以 _GUICtrlListView_AddItem示例程序说明这问题吧。#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
$Debug_LV = False ; 检查传递给 ListView 函数的类名, 设置为True并输出到一个控件的句柄,用于检查它是否工作
_Main()
Func _Main()
Local $hImage, $hListView
; 创建界面
GUICreate("列表中添加项目", 400, 300)
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
GUISetState()
; 加载图像
$hImage = _GUIImageList_Create()
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x00FF00, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x0000FF, 16, 16))
_GUICtrlListView_SetImageList($hListView, $hImage, 1)
; 添加列
_GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
_GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
_GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100)
; 添加项目
_GUICtrlListView_AddItem($hListView, "Row 1: Col 1" ,0)
_GUICtrlListView_AddItem($hListView, "Row 2: Col 1", 1)
_GUICtrlListView_AddItem($hListView, "Row 3: Col 1", 2)
; 循环至用户退出
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main目的:首列不显示图像,而让子列显示图像。
_GUICtrlListView_AddItem 第三个参数——“ [可选参数] 项目图标在图像列表中的 0 基索引 ”。即是可选,证明可以不加此参数以达到不显示图像的目的。
但是实际测试中发现,去掉此参数发现没有效果。首列依旧显示图像...
而 _GUICtrlListView_AddSubItem 去掉参数可以实现不显示图像的目的。不知道怎么才能实现我想要的目的,望大家赐教。
看来只钻牛角尖是不行的,多谢netegg大神的指点。只需添加列的时候,将首列宽度设置为0不显示,而从第二项开始显示便达到效果了!_GUICtrlListView_InsertColumn($ListView1, 0, "",0);宽度设置为0不显示
_GUICtrlListView_InsertColumn($ListView1, 1, "店面", 80)
仔细看帮助、看参数 回复 2# seniors
嗯,我再看看。 回复 2# seniors
你好,仔细看了好久,测试了好多次。还是没办法实现,现在我只能把状态在首列显示以达到自己的目的。
望指教。 经测试,首列无图标时,可以不显示,但图标位置会空出
还是用楼上的方式吧 回复 5# seniors
嗯,这个是测试过的。当把索引参数设置为无效的图标索引号的时候就会不显示,不过的确是有空的地方。后来我试过首列添加时 _GUICtrlListView_AddColumn$fOnRight参数设置为True,(为 True, 则列图像显示在文字右侧)。但是不知道是我系统问题还是怎样,仍然是没有任何效果。XP http://www.autoitx.com/thread-16282-1-1.html
和这个差不多 回复 7# netegg
大早上一上论坛,还真的有大神回复!哈哈!刚看了您的帖子,应该是一样的。晚上回去测试下,然后把结果发上来。多谢 回复 7# netegg
哈哈哈,多谢netegg大神的指点,看了半天您的源码,是拿带有checkbox样式的treeview覆盖listview子项实现的子项显示checkbox。我的问题在于listview本身有子项显示image的样式,所以只需要隐藏掉主项的image。您的一句代码提醒了我:_GUICtrlListView_InsertColumn($hListView, 0, "", 0)
只要隐藏掉首列,从第二列开始显示就好了。再次感谢!!! 回复 5# seniors
多谢您的帮助,已解决。 不错不错!
页:
[1]