找回密码
 加入
搜索
查看: 5690|回复: 10

[AU3基础] [已解决]为Listview控件添加图像列表,首列不显示图像,只在子项显示图像。

  [复制链接]
发表于 2014-4-20 21:11:32 | 显示全部楼层 |阅读模式
本帖最后由 东风破 于 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)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-4-21 08:02:05 | 显示全部楼层
仔细看帮助、看参数
 楼主| 发表于 2014-4-21 09:20:45 | 显示全部楼层
回复 2# seniors


    嗯,我再看看。
 楼主| 发表于 2014-4-21 11:54:52 | 显示全部楼层
回复 2# seniors


    你好,仔细看了好久,测试了好多次。还是没办法实现,现在我只能把状态在首列显示以达到自己的目的。


望指教。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-4-21 12:35:52 | 显示全部楼层
经测试,首列无图标时,可以不显示,但图标位置会空出

还是用楼上的方式吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2014-4-21 13:05:12 | 显示全部楼层
回复 5# seniors


    嗯,这个是测试过的。当把索引参数设置为无效的图标索引号的时候就会不显示,不过的确是有空的地方。后来我试过首列添加时 _GUICtrlListView_AddColumn  $fOnRight参数设置为True,(为 True, 则列图像显示在文字右侧)。但是不知道是我系统问题还是怎样,仍然是没有任何效果。XP
发表于 2014-4-23 07:28:07 | 显示全部楼层
 楼主| 发表于 2014-4-23 08:44:28 | 显示全部楼层
回复 7# netegg


    大早上一上论坛,还真的有大神回复!哈哈!刚看了您的帖子,应该是一样的。晚上回去测试下,然后把结果发上来。多谢
 楼主| 发表于 2014-4-23 14:17:43 | 显示全部楼层
回复 7# netegg


    哈哈哈,多谢netegg大神的指点,看了半天您的源码,是拿带有checkbox样式的treeview覆盖listview子项实现的子项显示checkbox。我的问题在于listview本身有子项显示image的样式,所以只需要隐藏掉主项的image。您的一句代码提醒了我:
_GUICtrlListView_InsertColumn($hListView, 0, "", 0)
只要隐藏掉首列,从第二列开始显示就好了。再次感谢!!!
 楼主| 发表于 2014-4-23 14:24:21 | 显示全部楼层
回复 5# seniors

多谢您的帮助,已解决。
发表于 2014-4-23 23:01:42 | 显示全部楼层
不错不错!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-26 04:28 , Processed in 0.080925 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表