Что нового

Как изменить высоту (height) формы , чтоб ТОР элементов в форме не изменялся

bigarN

Новичок
Сообщения
50
Репутация
0
:smile:
Приветствую всех. В форме есть чекбокс .При выделении чекбокса высота формы должно уменьшатся до позволенного и перекрывать контролы (спрятать их).При этом все элементы которые на форме не должны изменять свои места расположения (Left и Top ) .А при снятии выделении чекбокса все поставить на свои места обратно. :scratch: Помогите, пожалуйста. :( :-[
Вот код формы для теста
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Local $Form1,$Checkbox1,$Button1,$Button2,$Button3,$Button4,$lLabel,$Input1,$Group1
                              ; w    h    l    t
$Form1 = GUICreate("Form1 1", 189, 202, 192, 114)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 11, 10, 65, 17)
$Button1 = GUICtrlCreateButton("OK", 104, 10, 76, 17)
$Group1 = GUICtrlCreateGroup("Group1", 8, 42, 171, 121)
$Button2 = GUICtrlCreateButton("Button2", 19, 138, 60, 17)
$Button3 = GUICtrlCreateButton("Button3", 104, 138, 65, 17)
$Label1 = GUICtrlCreateLabel("Label1", 16, 66, 36, 17)
$Input1 = GUICtrlCreateInput("Input1", 16, 90, 152, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button4 = GUICtrlCreateButton("Exit", 109, 178, 65, 17)
GUISetState(@SW_SHOW, $Form1)

While 1
        $nMsg = GUIGetMsg()

        Switch $nMsg
            Case $GUI_EVENT_CLOSE ,  $Button1, $Button4
                Exit
			Case $Checkbox1
            If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
                WinMove($Form1,"Form1",192,114,189,52)
            Else
				WinMove($Form1,"Form1",192,114,189,202)
            EndIf

        EndSwitch
    WEnd
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 714
См. GUICtrlSetResizing().
 
Автор
B

bigarN

Новичок
Сообщения
50
Репутация
0
Re: Как изменить высоту (height) формы , чтоб ТОР элементов в форме не изменялся

Yashied
Спасибо вам . :smile: С кнопкой разобрался. С остальным по позже разберусь.
Вот, для кнопки строчка. Может кому то пригодиться.
Код:
GUICtrlSetResizing($OK ,$GUI_DOCKSIZE + $GUI_DOCKHCENTER + $GUI_DOCKLEFT + $GUI_DOCKTOP) ;Кнопка остается на месте и не меняет размер

или так

GUICtrlSetResizing($OK ,802)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 320
bigarN,
Чтобы сократить код, можно так сделать:
Код:
;$GUI_DOCKSIZE + $GUI_DOCKHCENTER + $GUI_DOCKLEFT + $GUI_DOCKTOP = $GUI_DOCKALL
;...
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 11, 10, 65, 17)
$Button1 = GUICtrlCreateButton("OK", 104, 10, 76, 17)
$Group1 = GUICtrlCreateGroup("Group1", 8, 42, 171, 121)
$Button2 = GUICtrlCreateButton("Button2", 19, 138, 60, 17)
$Button3 = GUICtrlCreateButton("Button3", 104, 138, 65, 17)
$Label1 = GUICtrlCreateLabel("Label1", 16, 66, 36, 17)
$Input1 = GUICtrlCreateInput("Input1", 16, 90, 152, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button4 = GUICtrlCreateButton("Exit", 109, 178, 65, 17)
For $i = $Checkbox1 To $Button4
	GUICtrlSetResizing($i, $GUI_DOCKALL)
Next
;...
 
Автор
B

bigarN

Новичок
Сообщения
50
Репутация
0
Re: Как изменить высоту (height) формы , чтоб ТОР элементов в форме не изменялся

madmasles
Это здорово.Очень благодарен.Спасибо большое :smile:
Только вот кнопка "Exit" исчезает при снятии чексбокса :scratch:
 
Верх