_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, чтобы позволить сообщению использовать текущее значение высоты. |
Возвращаемое значение
Возвращает массив следующего формата:Примечания
Установка размера 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