Function Reference


_GUICtrlListView_GetGroupRect

Gets the rectangle for a specified group

#include <GuiListView.au3>
_GUICtrlListView_GetGroupRect ( $hWnd, $iGroupID [, $iGet = $LVGGR_GROUP] )

Parameters

$hWnd Control ID/Handle to the control
$iGroupID ID that specifies the group whose information is retrieved
$iGet [optional] Flag to specify the coordinates of the rectangle to get, can be one of the following:
    $LVGGR_GROUP - Coordinates of the entire expanded group
    $LVGGR_HEADER - Coordinates of the header only (collapsed group)
    $LVGGR_LABEL - Coordinates of the label only
    $LVGGR_SUBSETLINK - Coordinates of the subset link only (markup subset)

Return Value


Returns an array with the following format:
    [0] - Specifies the x-coordinate of the upper-left corner of the rectangle
    [1] - Specifies the y-coordinate of the upper-left corner of the rectangle
    [2] - Specifies the x-coordinate of the lower-right corner of the rectangle
    [3] - Specifies the y-coordinate of the lower-right corner of the rectangle

Remarks

Windows Vista or later

Example

Example 1

#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    GUICreate("ListView Get Group Info (v" & @AutoItVersion & ")", 400, 300)

    Local $idListview = GUICtrlCreateListView("", 2, 2, 394, 268)
    GUISetState(@SW_SHOW)

    ; Set ANSI format
;~     _GUICtrlListView_SetUnicodeFormat($idListview, False)

    ; Load images
    Local $hImage = _GUIImageList_Create()
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($idListview), 0xFF0000, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($idListview), 0x00FF00, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($idListview), 0x0000FF, 16, 16))
    _GUICtrlListView_SetImageList($idListview, $hImage, 1)

    ; Add columns
    _GUICtrlListView_AddColumn($idListview, "Column 1", 100)
    _GUICtrlListView_AddColumn($idListview, "Column 2", 100)
    _GUICtrlListView_AddColumn($idListview, "Column 3", 100)

    ; Add items
    _GUICtrlListView_AddItem($idListview, "Row 1: Col 1", 0)
    _GUICtrlListView_AddSubItem($idListview, 0, "Row 1: Col 2", 1)
    _GUICtrlListView_AddSubItem($idListview, 0, "Row 1: Col 3", 2)
    _GUICtrlListView_AddItem($idListview, "Row 2: Col 1", 1)
    _GUICtrlListView_AddSubItem($idListview, 1, "Row 2: Col 2", 1)
    _GUICtrlListView_AddItem($idListview, "Row 3: Col 1", 2)

    ; Build groups
    _GUICtrlListView_EnableGroupView($idListview)
    _GUICtrlListView_InsertGroup($idListview, -1, 1, "Group 1", 1)
    _GUICtrlListView_InsertGroup($idListview, -1, 2, "Group 2")
    _GUICtrlListView_SetItemGroupID($idListview, 0, 1)
    _GUICtrlListView_SetItemGroupID($idListview, 1, 2)
    _GUICtrlListView_SetItemGroupID($idListview, 2, 2)

    ; Get rect of Group ID 2
    Local $aInfo = _GUICtrlListView_GetGroupRect($idListview, 2)
    MsgBox($MB_SYSTEMMODAL, "Information", "Rect: " & @CRLF & _
            @TAB & "Left..: " & $aInfo[0] & @CRLF & _
            @TAB & "Top...: " & $aInfo[1] & @CRLF & _
            @TAB & "Right.: " & $aInfo[2] & @CRLF & _
            @TAB & "Bottom: " & $aInfo[3])

    ; Loop until the user exits.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    GUIDelete()
EndFunc   ;==>Example

Example 2

#include <GuiListView.au3>
#include <MsgBoxConstants.au3>
#include <WinAPISysWin.au3>

Example() ; A ListView control created with an external ListView

Func Example()
    Local $sExternalScript = StringReplace(@ScriptName, "[2]", "")
    Local $iPID = Run(@AutoItExe & " " & $sExternalScript)
    Local $hWin = WinWaitActive("ListView Get Group Info", "")

    Local $hListView = _WinAPI_EnumChildWindows($hWin)[1][0]

    ; Get rect of Group ID 2
    Local $aInfo = _GUICtrlListView_GetGroupRect($hListview, 2)
    MsgBox($MB_SYSTEMMODAL, "Information (external)", "Rect :" & @TAB & @TAB & @TAB & @CRLF & _
            @TAB & "Left..: " & $aInfo[0] & @CRLF & _
            @TAB & "Top...: " & $aInfo[1] & @CRLF & _
            @TAB & "Right.: " & $aInfo[2] & @CRLF & _
            @TAB & "Bottom: " & $aInfo[3])

    ProcessClose($iPID)

EndFunc   ;==>Example