找回密码  加入

AUTOIT CN

搜索
查看: 846|回复: 6

[GUI管理] GuiListView 如何调整使 GUICtrlSetImage 设置的图标变大【已解决】

[复制链接]
发表于 2018-5-5 18:38:55 | 显示全部楼层 |阅读模式
本帖最后由 xzf680 于 2018-5-6 12:47 编辑

如何调整使 GUICtrlSetImage 设置的图标变大,指定图标大小。


  1. #include <GUIConstantsEx.au3>
  2. #include <GuiListView.au3>

  3. Example()

  4. Func Example()
  5.         ; 创建一个 GUI 及其各种控件.
  6.         Local $hGUI = GUICreate("内置函数示例")
  7.         Local $idOK = GUICtrlCreateButton("确定", 310, 370, 85, 25)
  8.                 Local $label = GUICtrlCreateLabel("如何调整使 GUICtrlSetImage 设置的图标变大", 15, 270)
  9.                 GUICtrlSetColor(-1, 255)
  10.         Global $idListview = GUICtrlCreateListView("列表1|列表2|列表3|列表4|列表5", 15, 15, 365, 200, BitOR($lvs_showselalways, $lvs_nosortheader, $lvs_report, $lvs_singlesel))
  11.         _GUICtrlListView_SetColumnWidth(-1, 0, 70)
  12.         _GUICtrlListView_SetColumnWidth(-1, 1, 70)
  13.         _GUICtrlListView_SetColumnWidth(-1, 2, 70)
  14.         _GUICtrlListView_SetColumnWidth(-1, 3, 70)
  15.         _GUICtrlListView_SetColumnWidth(-1, 4, 70)
  16.         GUICtrlSendMsg(-1, $lvm_setextendedlistviewstyle, $lvs_ex_gridlines, $lvs_ex_gridlines)
  17.         Local $idItem1 = GUICtrlCreateListViewItem("图标1|子目2|子目3|子目4|子目5", $idListview)
  18.         GUICtrlSetImage(-1, "shell32.dll", 22)
  19.        Local $idItem2 = GUICtrlCreateListViewItem("图标2|子目2|子目3|子目4|子目5", $idListview)
  20.         GUICtrlSetImage(-1, "shell32.dll", 23)
  21.        Local $idItem3 = GUICtrlCreateListViewItem("图标3|子目2|子目3|子目4|子目5", $idListview)
  22.         GUICtrlSetImage(-1, "shell32.dll", 24)
  23.        Local $idItem4 = GUICtrlCreateListViewItem("图标4|子目2|子目3|子目4|子目5", $idListview)
  24.         GUICtrlSetImage(-1, "shell32.dll", 25)
  25.        Local $idItem5 = GUICtrlCreateListViewItem("图标5|子目2|子目3|子目4|子目5", $idListview)
  26.         GUICtrlSetImage(-1, "shell32.dll", 26)
  27.        Local $idItem6 = GUICtrlCreateListViewItem("图标6|子目2|子目3|子目4|子目5", $idListview)
  28.         GUICtrlSetImage(-1, "shell32.dll", 27)
  29.         ; 显示 GUI.
  30.         GUISetState(@SW_SHOW, $hGUI)

  31.         ; 循环到用户退出.
  32.         While 1
  33.                 Switch GUIGetMsg()
  34.                         Case $GUI_EVENT_CLOSE, $idOK
  35.                                 ExitLoop

  36.                 EndSwitch
  37.         WEnd

  38.         ; 删除先前创建的 GUI 和所有控件.
  39.         GUIDelete($hGUI)
  40. EndFunc   ;==>Example
复制代码
发表于 2018-5-6 00:15:26 | 显示全部楼层
回复 1# xzf680

[au3]#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>

_Main()

Func _Main()
    Local $hGui, $listview, $hImage
    Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES)

    $hGui = GUICreate("?像列表(ImageList) UDF 函?演示", 400, 300)
    $listview = _GUICtrlListView_Create($hGui, "", 2, 2, 394, 268, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
    _GUICtrlListView_SetExtendedListViewStyle($listview, $exStyles)
    GUISetState()

    ; 加?映像
    $hImage = _GUIImageList_Create(64, 64, 5, 3)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 110)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 131)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 165)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 168)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 137)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 146)
    _GUICtrlListView_SetImageList($listview, $hImage, 1)

    ; 添加列
    _GUICtrlListView_AddColumn($listview, "列 1", 120)
    _GUICtrlListView_AddColumn($listview, "列 2", 100)
    _GUICtrlListView_AddColumn($listview, "列 3", 100)

    ; 添加??
    _GUICtrlListView_AddItem($listview, "行 1: ? 1", 0)
    _GUICtrlListView_AddSubItem($listview, 0, "行 1: ? 2", 1, 1)
    _GUICtrlListView_AddSubItem($listview, 0, "行 1: ? 3", 2, 2)
    _GUICtrlListView_AddItem($listview, "行 2: ? 1", 1)
    _GUICtrlListView_AddSubItem($listview, 1, "行 2: ? 2", 1, 2)
    _GUICtrlListView_AddItem($listview, "行 3: ? 1", 2)
    _GUICtrlListView_AddItem($listview, "行 4: ? 1", 3)
    _GUICtrlListView_AddItem($listview, "行 5: ? 1", 4)
    _GUICtrlListView_AddSubItem($listview, 4, "行 5: ? 2", 1, 3)
    _GUICtrlListView_AddItem($listview, "行 6: ? 1", 5)
    _GUICtrlListView_AddSubItem($listview, 5, "行 6: ? 2", 1, 4)
    _GUICtrlListView_AddSubItem($listview, 5, "行 6: ? 3", 2, 3)

    ; 循?到用?退出
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

EndFunc   ;==>_Main
[/au3]

评分

1

查看全部评分

 楼主| 发表于 2018-5-6 10:50:07 | 显示全部楼层
回复 2# kk_lee69


    感谢kk_lee69 版主的回复
前面也有考虑过用_GUICtrlListView
_GUICtrlListView创建的表没有GUICtrlCreateListView的好看,想和GUICtrlCreateListView一样有个边框,另外GUICtrlCreateListView添加项目一排能搞定比较方便,如GUICtrlCreateListView能指定图标大小就非常完美了。


  1. #include <GUIConstantsEx.au3>
  2. #include <GuiImageList.au3>
  3. #include <GuiListView.au3>
  4. #include <WindowsConstants.au3>

  5. Example()

  6. Func Example()
  7.     Local $hGui, $idListview, $hImage
  8.     Local $iStylesEx = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES);项目和子项显示网格.,该项及其所有子项高亮显示.,允许显示子项目图像.

  9.     $hGui = GUICreate("添加图标到图像列表")
  10.         Local $idOK = GUICtrlCreateButton("确定", 310, 370, 85, 25)
  11.     Local $label = GUICtrlCreateLabel("如何调整使 GUICtrlSetImage 设置的图标变大", 15, 270)
  12.         GUICtrlSetColor(-1, 255)

  13.     $idListview = _GUICtrlListView_Create($hGui, "", 15, 15, 365, 200, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT));始终显示被选项目.列标题不作为按钮类型工作.,控件样式为报表视图.
  14.     _GUICtrlListView_SetExtendedListViewStyle($idListview, $iStylesEx)
  15.     GUISetState(@SW_SHOW)

  16.     ; 加载图像
  17.     $hImage = _GUIImageList_Create(20, 20, 5, 3)
  18.     _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 110)
  19.     _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 131)
  20.     _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 165)
  21.     _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 168)
  22.     _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 137)
  23.     _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 146)
  24.     _GUICtrlListView_SetImageList($idListview, $hImage, 1)

  25.     ; 添加列
  26.     _GUICtrlListView_AddColumn($idListview, "列表 1", 70)
  27.     _GUICtrlListView_AddColumn($idListview, "列表 2", 70)
  28.     _GUICtrlListView_AddColumn($idListview, "列表 3", 70)
  29.     _GUICtrlListView_AddColumn($idListview, "列表 4", 70)
  30.     _GUICtrlListView_AddColumn($idListview, "列表 5", 70)

  31.     ; 添加项目
  32.     _GUICtrlListView_AddItem($idListview, "图标 1", 0)
  33.     _GUICtrlListView_AddSubItem($idListview, 0, "列 2", 1)
  34.     _GUICtrlListView_AddSubItem($idListview, 0, "列 3", 2)
  35.     _GUICtrlListView_AddSubItem($idListview, 0, "列 4", 3)
  36.     _GUICtrlListView_AddSubItem($idListview, 0, "列 5", 4)
  37.     _GUICtrlListView_AddItem($idListview, "图标 2", 1)
  38.     _GUICtrlListView_AddSubItem($idListview, 1, "列 2", 1)
  39.     _GUICtrlListView_AddSubItem($idListview, 1, "列 3", 2)
  40.     _GUICtrlListView_AddSubItem($idListview, 1, "列 4", 3)
  41.     _GUICtrlListView_AddSubItem($idListview, 1, "列 5", 4)
  42.     _GUICtrlListView_AddItem($idListview, "图标 1", 3)
  43.     _GUICtrlListView_AddSubItem($idListview, 2, "列 2", 1)
  44.     _GUICtrlListView_AddSubItem($idListview, 2, "列 3", 2)
  45.     _GUICtrlListView_AddSubItem($idListview, 2, "列 4", 3)
  46.     _GUICtrlListView_AddSubItem($idListview, 2, "列 5", 4)
  47.         _GUICtrlListView_AddItem($idListview, "图标 1", 4)
  48.     _GUICtrlListView_AddSubItem($idListview, 3, "列 2", 1)
  49.     _GUICtrlListView_AddSubItem($idListview, 3, "列 3", 2)
  50.     _GUICtrlListView_AddSubItem($idListview, 3, "列 4", 3)
  51.     _GUICtrlListView_AddSubItem($idListview, 3, "列 5", 4)
  52.         _GUICtrlListView_AddItem($idListview, "图标 1", 5)
  53.     _GUICtrlListView_AddSubItem($idListview, 4, "列 2", 1)
  54.     _GUICtrlListView_AddSubItem($idListview, 4, "列 3", 2)
  55.     _GUICtrlListView_AddSubItem($idListview, 4, "列 4", 3)
  56.     _GUICtrlListView_AddSubItem($idListview, 4, "列 5", 4)
  57.     ; 循环到用户退出.
  58.     Do
  59.                 Switch GUIGetMsg()

  60.                         Case $idOK

  61.                                         ExitLoop

  62.                 EndSwitch

  63.     Until GUIGetMsg() = $GUI_EVENT_CLOSE
  64.     GUIDelete()
  65. EndFunc   ;==>Example
复制代码

本帖子中包含更多资源

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

x
发表于 2018-5-6 11:46:30 | 显示全部楼层
这种一般都是用图像列表调整,很简单也很灵活,至于列表创建方式,用你之前的方式同样可以
  1. #include <GUIConstantsEx.au3>
  2. #include <GuiListView.au3>
  3. #include <GuiImageList.au3>

  4. Example()

  5. Func Example()
  6.         ; 创建一个 GUI 及其各种控件.
  7.         Local $hGUI = GUICreate("内置函数示例")
  8.         Local $idOK = GUICtrlCreateButton("确定", 310, 370, 85, 25)
  9.         Local $label = GUICtrlCreateLabel("如何调整使 GUICtrlSetImage 设置的图标变大", 15, 270)
  10.         GUICtrlSetColor(-1, 255)
  11.         Global $idListview = GUICtrlCreateListView("列表1|列表2|列表3|列表4|列表5", 15, 15, 365, 220, BitOR($lvs_showselalways, $lvs_nosortheader, $lvs_report, $lvs_singlesel))
  12.         _GUICtrlListView_SetColumnWidth(-1, 0, 70)
  13.         _GUICtrlListView_SetColumnWidth(-1, 1, 70)
  14.         _GUICtrlListView_SetColumnWidth(-1, 2, 70)
  15.         _GUICtrlListView_SetColumnWidth(-1, 3, 70)
  16.         _GUICtrlListView_SetColumnWidth(-1, 4, 70)
  17.         GUICtrlSendMsg(-1, $lvm_setextendedlistviewstyle, $lvs_ex_gridlines, $lvs_ex_gridlines)
  18.         Local $idItem1 = GUICtrlCreateListViewItem("图标1|子目2|子目3|子目4|子目5", $idListview)
  19.         Local $idItem2 = GUICtrlCreateListViewItem("图标2|子目2|子目3|子目4|子目5", $idListview)
  20.         Local $idItem3 = GUICtrlCreateListViewItem("图标3|子目2|子目3|子目4|子目5", $idListview)
  21.         Local $idItem4 = GUICtrlCreateListViewItem("图标4|子目2|子目3|子目4|子目5", $idListview)
  22.         Local $idItem5 = GUICtrlCreateListViewItem("图标5|子目2|子目3|子目4|子目5", $idListview)
  23.         Local $idItem6 = GUICtrlCreateListViewItem("图标6|子目2|子目3|子目4|子目5", $idListview)

  24.         Local $hImage = _GUIImageList_Create(32, 32, 5, 3)
  25.         _GUICtrlListView_SetImageList($idListview, $hImage, 1)
  26.         _GUIImageList_AddIcon($hImage, "shell32.dll", 22, 1)
  27.         _GUIImageList_AddIcon($hImage, "shell32.dll", 23, 1)
  28.         _GUIImageList_AddIcon($hImage, "shell32.dll", 24, 1)
  29.         _GUIImageList_AddIcon($hImage, "shell32.dll", 25, 1)
  30.         _GUIImageList_AddIcon($hImage, "shell32.dll", 26, 1)
  31.         _GUIImageList_AddIcon($hImage, "shell32.dll", 27, 1)
  32.         _GUICtrlListView_SetItemImage($idListview, 0, 0)
  33.         _GUICtrlListView_SetItemImage($idListview, 1, 1)
  34.         _GUICtrlListView_SetItemImage($idListview, 2, 2)
  35.         _GUICtrlListView_SetItemImage($idListview, 3, 3)
  36.         _GUICtrlListView_SetItemImage($idListview, 4, 4)
  37.         _GUICtrlListView_SetItemImage($idListview, 5, 5)
  38.         GUISetState(@SW_SHOW, $hGUI)

  39.         ; 循环到用户退出.
  40.         While 1
  41.                 Switch GUIGetMsg()
  42.                         Case $GUI_EVENT_CLOSE, $idOK
  43.                                 ExitLoop

  44.                 EndSwitch
  45.         WEnd

  46.         ; 删除先前创建的 GUI 和所有控件.
  47.         GUIDelete($hGUI)
  48. EndFunc   ;==>Example
复制代码

评分

2

查看全部评分

 楼主| 发表于 2018-5-6 12:45:05 | 显示全部楼层
感谢kk_lee69 版主的回复
感谢 afan 超级版主的回复,问题完美解决
发表于 2018-5-6 16:12:03 | 显示全部楼层
回复 5# xzf680

是你誤解了  給你看那個範例 不是要你看 _GUICtrlListView

是要你看
    $hImage = _GUIImageList_Create(64, 64, 5, 3)

圖示大小是這行在控制的

所以你的  GUICtrlCreateListView 加上  
   $hImage = _GUIImageList_Create(64, 64, 5, 3)

就可以完美了
发表于 2018-5-10 09:31:37 | 显示全部楼层
学习了。。。。。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2020-7-13 00:56 , Processed in 0.171875 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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