基 础 函 数 参 考


GUICtrlCreateListView

创建列表视图(ListView)控件.

GUICtrlCreateListView ( "文本", 左距, 顶距 [, 宽度 [, 高度 [, 样式 [, 扩展样式]]]] )

参 数

文本 列标题文本. 每个标题由 Opt("GUIDataSeparatorChar") 定义的分隔符分隔.
左距 控件左侧的位置. 若此值为 -1, 则根据 GUICoordMode 的设置计算左侧位置.
顶距 控件上方的位置. 若此值为 -1, 则根据 GUICoordMode 的设置计算顶部位置.
宽度 [可选参数] 控件的宽度(默认使用先前的宽度).
高度 [可选参数] 控件的高度(默认使用先前的高度).
样式 [可选参数] 控件的样式. 查看附录 GUI 控件样式表.

默认样式 (-1) : $LVS_SHOWSELALWAYS, $LVS_SINGLESEL
强制样式 : $LVS_REPORT
扩展样式 [可选参数] 控件的扩展样式. 查看附录 扩展样式表ListView 扩展样式表.

返 回 值

成功: 返回控件标识符(控件ID).
失败: 返回 0.

备 注

要添加 ListView 控件的项目请使用 GUICtrlCreateListViewItem

ListView 的默认视图类似资源管理器的 "详细资料" 界面 (LVS_REPORT 样式为强制).
填充空格到列标题栏可定义控件初始列的大小.
列宽度将依据 GUICtrlCreateListViewItem 添加的项目扩展.
列宽最大将达到约 25 个字符, GUICtrlSetData 更新时不会调整大小.

要创建 ListView 的图标(大或小图标)视图, 或列表视图, 只需在创建后使用:
GUICtrlSetStyle 设置样式为 $LVS_ICON, $LVS_LIST 或 $LVS_SMALLICON.

目前尚未实施类似资源管理器那样点击列标题可重排序的功能.

要使整行显示选中状态, 使用 扩展样式 LVS_EX_FULLROWSELECT.

要在默认样式上添加新样式, 可使用 BitOr($GUI_SS_DEFAULT_LISTVIEW, 新样式,...) 语句.

使用上面列出的值必须将 #include <ListViewConstants.au3> 语句写入脚本中.

专用标志 $GUI_BKCOLOR_LV_ALTERNATE 可交替设置 Listview 控件与 ListviewItems 项目的背景.
奇数行将获得 GUICtrlSetBkColor 为 Listview 控件设置的颜色.
偶数行将获得 GUICtrlSetBkColor 为 ListviewItem 项目设置的颜色.

相 关 函 数

GUICtrlCreateListViewItem, GUICtrlRegisterListViewSort, GUICoordMode (Option), GUICtrlSetData, GUIGetMsg, GUIDataSeparatorChar (Option)

函 数 示 例


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    Local $listview, $button, $item1, $item2, $item3, $msg

    GUICreate("列表视图项目", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
    GUISetBkColor(0x00E0FFFF) ; 改变背景颜色

    $listview = GUICtrlCreateListView("列1  |列2|列3  ", 10, 10, 200, 150);,$LVS_SORTDESCENDING)
    $button = GUICtrlCreateButton("选择结果 ?", 75, 170, 70, 20)
    $item1 = GUICtrlCreateListViewItem ("项目 2|列22|列23", $listview)
    $item2 = GUICtrlCreateListViewItem ("项目 1|列12|列13", $listview)
    $item3 = GUICtrlCreateListViewItem ("项目 3|列32|列33", $listview)
    GUICtrlCreateInput("", 20, 200, 150)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; 允许输入框接受拖放
    GUISetState()
    GUICtrlSetData($item2, "项目 1")
    GUICtrlSetData($item3, "||列33")
    GUICtrlDelete($item1)

    Do
        $msg = GUIGetMsg()

        Select
            Case $msg = $button
                MsgBox(0, "列表视图项目 ", GUICtrlRead(GUICtrlRead($listview)), 2)
            Case $msg = $listview
                MsgBox(0, "列表视图", "点击列=" & GUICtrlGetState($listview), 2)
        EndSelect
    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

provider with jb51.net (unicode)