Что нового

[Элементы GUI] Подгонка размеров дочерних окон под главное

1dark1

Новичок
Сообщения
16
Репутация
0
Имеется такой скрипт:
Код:
#Include <WinAPI.au3>
#include <GUIConstants.au3>

$color = 0x0aa0221188882288

#Region ### START Koda GUI section ###
Global $hForm1,$iMsg, $iW = 798, $iH = 130
$hForm1 = GUICreate('Программа', $iW, $iH, 560, 690, $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST,$WS_CLIPCHILDREN))
GUISetBkColor(0x000000)
WinSetTrans($hForm1, '', 150)
GUISetState(@SW_SHOW, $hForm1)
$Form2 = GUICreate( "Form2", $iW, $iH, -1, -1,  $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD), $hForm1)
$okno = GUICtrlCreateLabel("Текст", 9, 0, 780, 130, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL))
GUICtrlSetFont(-1, 22, 1490, 0, "CyrillicHover")
GUICtrlSetColor(-1, 0xFFDD30)
GUISetBkColor($color)
 _WinAPI_SetLayeredWindowAttributes($Form2, $color)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


_1() ; Вызов функции
Func  _1()
    Local $i
    While 1
       $text = ControlGetText ( '', '', '; :]')
Sleep(100)
;~ GUICtrlSetData(-1, $text)
     Sleep(1000)
    WEnd
EndFunc

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

    EndSwitch
 WEnd


Вопрос как сделать чтобы при изменение размера окна
Код:
$hForm1 = GUICreate('Программа', $iW, $iH, 560, 690, $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST,$WS_CLIPCHILDREN))

также автоматически менялся размер
Код:
$Form2 = GUICreate( "Form2", $iW, $iH, -1, -1,  $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD), $hForm1)
$okno = GUICtrlCreateLabel("Текст", 9, 0, 780, 130, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL))


Для большей ясности про что я, добавил во вложение скрин там после запуска изменен размер главного окна,а размер дочернего так и остался неизменным (рамка дочернего внизу обведена красным).

надо чтобы они изменялись вместе.
 

Вложения

  • скрин.jpg
    скрин.jpg
    7.7 КБ · Просмотры: 14
Автор
1

1dark1

Новичок
Сообщения
16
Репутация
0
Re: [Окна, Диалоги] Подгонка размеров дочерних окон под главное

Немного изменил название темы и вопрос, в связи с небольшой переделкой скрипта.
OffTopic:
не могу решить какой префикс к названию темы [Окна, Диалоги] или [Элементы GUI] больше подходит.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Окна, Диалоги] Подгонка размеров дочерних окон под главное

1dark1 [?]
не могу решить какой префикс к названию темы [Окна, Диалоги] или [Элементы GUI] больше подходит.
Второе, т.к больше относится к GUI.
 
Автор
1

1dark1

Новичок
Сообщения
16
Репутация
0
Вроде как сам смог сделать
таким образом
Код:
#Include <WinAPI.au3>
#include <GUIConstants.au3>
#include "GUICtrlSetResizing.au3"

$color = 0x0aa0221188882288

#Region ### START Koda GUI section ###
Global $hForm1,$iMsg, $iW = 798, $iH = 130
$hForm1 = GUICreate('Программа', $iW, $iH, 560, 690, $WS_OVERLAPPEDWINDOW, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST,$WS_CLIPCHILDREN))
GUISetBkColor(0x000000)
WinSetTrans($hForm1, '', 150)
GUISetState(@SW_SHOW, $hForm1)
$Form2 = GUICreate( "Form2", $iW, $iH, -1, -1,  $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED,$WS_EX_MDICHILD), $hForm1)
$okno = GUICtrlCreateLabel("Текст", 9, 0, 780, 130, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL))
GUICtrlSetFont(-1, 22, 1490, 0, "CyrillicHover")
GUICtrlSetColor(-1, 0xFFDD30)
GUISetBkColor($color)
 _WinAPI_SetLayeredWindowAttributes($Form2, $color)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

GUIRegisterMsg($WM_SIZE, "WM__SIZE")

Func WM__SIZE($hWnd, $Msg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm1
            $aPos=WinGetPos($hForm1)
            WinMove($Form2, '',$aPos[0],$aPos[1]+0,$aPos[2],$aPos[3]-1 )
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc ;==>WM__SIZE

Func WM__MOVE($hWnd, $Msg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm1
            $aPos=WinGetPos($hForm1)
            WinMove($Form2, '',$aPos[0],$aPos[0]+0 )
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc ;==>WM__SIZE

_1() ; Вызов функции
Func  _1()
    Local $i
    While 1
       $text = ControlGetText ( '', '', '; :]')
Sleep(100)
;~ GUICtrlSetData(-1, $text)
     Sleep(1000)
    WEnd
EndFunc

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

    EndSwitch
 WEnd
 
Верх