Функция _GUICtrlListView_ApproximateViewRect

         Описание функции


_GUICtrlListView_ApproximateViewRect

Рассчитывает приблизительный размер прямоугольника, необходимый для отображения указанного количества пунктов

#include <GuiListView.au3>
_GUICtrlListView_ApproximateViewRect($hWnd [, $iCount = -1 [, $iCX = -1 [, $iCY = -1]]])

Параметры

$hWnd Дескриптор или идентификатор элемента
$iCount [необязательный] Количество пунктов отображаемых в ListView. Если этот параметр равен -1, то используется общее количество пунктов в ListView.
$iCX [необязательный] Предлагаемый размер X элемента ListView в пикселях. Этот параметр может быть установлен в -1, чтобы позволить сообщению использовать текущее значение ширины.
$iCY [необязательный] Предлагаемый размер Y элемента ListView в пикселях. Этот параметр может быть установлен в -1, чтобы позволить сообщению использовать текущее значение высоты.

Возвращаемое значение

Возвращает массив следующего формата:
        [0] - Приблизительная ширина в пикселях, необходимая для отображения пунктов
        [1] - Приблизительная высота в пикселях, необходимая для отображения пунктов

Примечания

Установка размера ListView, основанная на измерении предоставленным этим сообщением может оптимизировать перерисовку и уменьшить мерцание.

См. также

_GUICtrlListView_ApproximateViewHeight, _GUICtrlListView_ApproximateViewWidth

Пример

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <Constants.au3>

$Debug_LV = False ; Проверяет ClassName передаваемый в ListView функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

_Main()

Func _Main()
    Local $aXY, $hListView

    GUICreate("ListView - Приблизительная размер ListView", 400, 300)
    $hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
    GUISetState()

    ; Добавляет колонку
    _GUICtrlListView_InsertColumn($hListView, 0, "Колонка 1", 100)

    ; Добавляет пункты
    For $iI = 0 To 9
        _GUICtrlListView_AddItem($hListView, "Стр " & $iI)
    Next

    MsgBox(4096, "Информация", "Приблизительная размер ListView")
    ; Изменяет размер ListView
    $aXY = _GUICtrlListView_ApproximateViewRect($hListView)
    _WinAPI_SetWindowPos(GUICtrlGetHandle($hListView), 0, 2, 2, $aXY[0], $aXY[1], $SWP_NOZORDER)
    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main