Что нового

Как масштабировать элементы управления при изменении размеров окна GUI

pvnn

Осваивающий
Сообщения
305
Репутация
32
При использовании стандартных функций, проблем с масштабированием не возникает, но как организовать масштабирование элементов управления созданных UDF-функциями?

Например такой код:

Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>

#include <GuiTreeView.au3>
#include <GuiListView.au3>

$Form1 = GUICreate("Form1", 442, 258, 192, 114, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME,$WS_MAXIMIZEBOX))
$Button1 = GUICtrlCreateButton("Button1", 16, 24, 75, 25)
;$TreeView1 = GUICtrlCreateTreeView(16, 64, 121, 97)
$iStyle=BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_LINESATROOT,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS)
$hTreeView =_GUICtrlTreeView_Create($Form1,16, 64, 121, 97,$iStyle,$WS_EX_CLIENTEDGE)

;$ListView1 = GUICtrlCreateListView("", 152, 64, 250, 150)
 $hListView=_GUICtrlListView_Create($Form1, "", 152, 64, 250, 150)
 _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))

GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $GUI_EVENT_RESIZED
			
	EndSwitch
WEnd


Я так понимаю, нужно анализировать $GUI_EVENT_RESIZED,
Далее узнать размер окна (как?) и в зависимостиот этого изменить параметры функций TreeView и iListView?
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Код:
_WinAPI_MoveWindow

Коллекция скриптов и TextReplace для поиска по коллекции заметно сократят количество вопросов, тем более что там ууже есть готовые примеры с изменением размера элементов.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Может это в чем то поможет ?
RSZ.au3 - Мини-UDF изменения размера эл-тов GUI, созданных с помощью UDF


Добавлено:
Сообщение автоматически объединено:

Например для твоего примера:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiTreeView.au3>
#include <GuiListView.au3>
#include "RSZ 4.1.au3"

$Form1 = GUICreate("Form1", 442, 258, 192, 114, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME,$WS_MAXIMIZEBOX))
$Button1 = GUICtrlCreateButton("Button1", 16, 24, 75, 25)
_ControlSetResizing(-1,  $GUI_DOCKLEFT+$GUI_DOCKSIZE+$GUI_DOCKTOP); ===> RSZ 4.1.au3

$iStyle=BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_LINESATROOT,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS)
$hTreeView =_GUICtrlTreeView_Create($Form1,16, 64, 121, 97,$iStyle,$WS_EX_CLIENTEDGE)
_ControlSetResizing(-1,  $GUI_DOCKLEFT+$GUI_DOCKRIGHT+$GUI_DOCKTOP+$GUI_DOCKBOTTOM ); ===> RSZ 4.1.au3
 $hListView=_GUICtrlListView_Create($Form1, "", 152, 64, 250, 150)
 _ControlSetResizing(-1, $GUI_DOCKRIGHT+$GUI_DOCKWIDTH+$GUI_DOCKTOP+$GUI_DOCKBOTTOM); ===> RSZ 4.1.au3
 _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))

_Init(); ===> RSZ 4.1.au3
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
 
Автор
P

pvnn

Осваивающий
Сообщения
305
Репутация
32
gregaz за RSZ.au3 Большое Спасибо - это как раз то, что нужно!
 
Верх