[已解决]窗口平分或列表来做平分图标显示问题
本帖最后由 gogo023 于 2010-8-24 14:55 编辑上面这个图片,在窗体内一排一排的显示出来.或在列表框内.最好在图标下面有有数字显示.图标在整个窗体中是平均的.
如:有100个图标.就在整个窗体中显示100个,而且平均分布.200个-N个都是这样.
急求助. 是这样吗?这是我做《软件菜单》时的练习。#include <Constants.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
Dim $z = 1
GUICreate('ListView分组线', 600, 450)
$ListView1 = GUICtrlCreateListView('', 5, 5, 590, 400)
GUICtrlSetColor(-1, 0x0080C0);设置控件中的文本色
_GUICtrlListView_SetColumnWidth($ListView1, 0, 200)
_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
_GUICtrlListView_SetBkColor($ListView1, $CLR_MONEYGREEN);设置控件背景色
_GUICtrlListView_SetTextBkColor($ListView1, $CLR_MONEYGREEN);设置控件中文本的背景色
_GUICtrlListView_SetOutlineColor($ListView1, 0x0000FF);设置边框色
_GUICtrlListView_SetView($ListView1, 1)
$But1 = GUICtrlCreateButton('添加', 110, 410, 80, 30, $WS_GROUP)
CreateGroup($ListView1, 1, '分组线', '项目-0', 'shell32.dll')
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case - 3
Exit
Case $But1
CreateGroup($ListView1, 1, '分组线', '新建项目-' & $z, 'shell32.dll')
$z += 1
EndSwitch
WEnd
Func CreateGroup($hWnd, $iGroupID, $sHeader, $sText, $sImageFile);创建分组:参数1控件句柄、参数2分组ID、参数3分组标题、参数4项目文本、参数5项目图标。
GUICtrlCreateListViewItem($sText, $hWnd)
GUICtrlSetImage(-1, $sImageFile, 14)
EndFunc ;==>CreateGroup 楼上的辛苦了,但不是这样的效果。 你要的是什么效果?说具体!
这就是我想要的效果.窗口大小不变,图标数量不管是多还是少,都把窗口占满. 本帖最后由 水木子 于 2010-8-24 14:39 编辑
郁闷!难道是编辑器出问题了?乱码!
#include <Constants.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
GUICreate('ListView鍒嗙粍绾?, 600, 450)
$ListView1 = GUICtrlCreateListView('', 5, 5, 590, 400)
GUICtrlSetColor(-1, 0x0080C0);璁剧疆鎺т欢涓?殑鏂囨湰鑹?
_GUICtrlListView_SetColumnWidth($ListView1, 0, 200)
_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
_GUICtrlListView_SetBkColor($ListView1, $CLR_MONEYGREEN);璁剧疆鎺т欢鑳屾櫙鑹?
_GUICtrlListView_SetTextBkColor($ListView1, $CLR_MONEYGREEN);璁剧疆鎺т欢涓?枃鏈?殑鑳屾櫙鑹?
_GUICtrlListView_SetOutlineColor($ListView1, 0x0000FF);璁剧疆杈规?鑹?
_GUICtrlListView_SetView($ListView1, 1)
For $i = 1 To 50
CreateGroup($ListView1, 1, '鍒嗙粍绾?, '椤圭洰-0' & $i, 'shell32.dll')
Next
GUISetState()
Do
Until GUIGetMsg() = -3
Func CreateGroup($hWnd, $iGroupID, $sHeader, $sText, $sImageFile);鍒涘缓鍒嗙粍锛氬弬鏁?鎺т欢鍙ユ焺銆佸弬鏁?鍒嗙粍ID銆佸弬鏁?鍒嗙粍鏍囬?銆佸弬鏁?椤圭洰鏂囨湰銆佸弬鏁?椤圭洰鍥炬爣銆?
GUICtrlCreateListViewItem($sText, $hWnd)
GUICtrlSetImage(-1, $sImageFile, 16)
EndFunc ;==>CreateGroup 回复 6# 水木子
的确乱码了,呵呵#include <Constants.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
GUICreate('ListView分组', 600, 450)
$ListView1 = GUICtrlCreateListView('', 5, 5, 590, 400)
GUICtrlSetColor(-1, 0x0080C0);设置控件中的文本
_GUICtrlListView_SetColumnWidth($ListView1, 0, 200)
_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
_GUICtrlListView_SetBkColor($ListView1, $CLR_MONEYGREEN);设置控件背景
_GUICtrlListView_SetTextBkColor($ListView1, $CLR_MONEYGREEN);设置控件中文本的背景
_GUICtrlListView_SetOutlineColor($ListView1, 0x0000FF);设置边框
_GUICtrlListView_SetView($ListView1, 1)
For $i = 1 To 50
CreateGroup($ListView1, 1, '分组', '项目-0' & $i, 'shell32.dll')
Next
GUISetState()
Do
Until GUIGetMsg() = -3
Func CreateGroup($hWnd, $iGroupID, $sHeader, $sText, $sImageFile);创建分组:控件句柄、分组ID、分组标题、项目文本、项目图标
GUICtrlCreateListViewItem($sText, $hWnd)
GUICtrlSetImage(-1, $sImageFile, 16)
EndFunc ;==>CreateGroup 回复 7# afan
呵呵!谢谢前辈重发,不过我挺郁闷,为什么代码突然乱码了。
昨天换了最新版本的AU3,就出问题了。 算了.这个贴子还是收回吧.没有理想的答案. 不要放弃呀!!
坚持下去给楼主打气下! 本帖最后由 afan 于 2010-8-24 15:19 编辑
这个问题似乎并不难,难的是理解LZ的目的。
1,如果不像木子那样使用列表滚动条,数量多了怎么办?缩小图标和文字?
2,均分… 不管怎么排,行数和列数不一定刚好铺满,150个可以是15*10,151个呢?怎么排 这个问题似乎并不难,难的是理解LZ的目的。
1,如果不像木子那样使用列表滚动条,数量多了怎么办?缩小图标 ...
afan 发表于 2010-8-24 15:17 http://www.autoitx.com/images/common/back.gif
是啊!我那个方法还是比较可行的,操作起来也比较方便。 是啊!我那个方法还是比较可行的,操作起来也比较方便。
水木子 发表于 2010-8-24 15:22 http://www.autoitx.com/images/common/back.gif
没错,而且可操作性是最佳的~ 操作些就用列表框来做比较好,有平均分布,的确是有难度的。
奇数就要多一排,偶数就刚好,这是很正常的。列表也是这样的。
数量越多,就只能用限制图标和方案的大小。这也是一定的。
不过还是谢谢你们费心了。我还是列表来做吧。
页:
[1]