Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)

Модерирует : gyra, Maz

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

madmasles

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Прозрачное окно :  

Код:
#Include <WindowsConstants.au3>
#Include <WinAPIEx.au3>
 
$hMain = GUICreate("", 800, 600, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
GUISetBkColor(0xFF0011)
    $hOk = GUICtrlCreateButton("OK", 365, 560, 70, 23)
    $hLabel = GUICtrlCreateLabel("Какая-то надпись.", 10, 100, 500, 100)
    GUICtrlSetColor($hLabel, 0xFF0000)
    GUICtrlSetFont($hLabel, 32, 800, -1, "Tahoma")
 
GUISetState(@SW_SHOW, $hMain)
 
_WinAPI_SetLayeredWindowAttributes($hMain, 0xFF0011, 0, $LWA_COLORKEY)
 
While 1
    If GUIGetMsg() = $hOk Then Exit
WEnd

 
Дополнительная секция:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <GUIImageList.au3>
;
 
Global $hImageList, $sOld_Opt_GRM = Opt("GUIResizeMode", $GUI_DOCKALL)
Global $iGUI_Height = 150
 
$Form1 = GUICreate("Form1", 550, $iGUI_Height, 192, 124)
 
$Button1 = GUICtrlCreateButton("Опции >>", 440, 112, 105, 25, $WS_GROUP)
_GUICtrlButton_SetImageEx($hImageList, $Button1, @SystemDir & "\rasdlg.dll", 14)
 
#Region Expanded controls
GUICtrlCreateButton("Some Button", 20, 240, 80)
GUICtrlCreateButton("Other Button", 120, 240, 80)
GUICtrlCreateInput("Some Input", 20, 200, 200, 20)
 
Opt("GUIResizeMode", $sOld_Opt_GRM)
#EndRegion Expanded controls
;
 
GUISetState(@SW_SHOW)
 
While 1
    $nMsg = GUIGetMsg()
 
    Switch $nMsg
        Case $Button1
            _Toggle_ExpandControls_Proc($Form1, $iGUI_Height, $iGUI_Height+150, $Button1, "Опции >>", "Опции <<")
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
 
Func
_Toggle_ExpandControls_Proc($hWnd,$iInitWndHeight,$iExpndHeight,$iExpndCtrlID,$sExpndText="Expand",$sCntrctText="Contract")
    Local $iHeight, $sButtonText, $aSysCaptMetrics, $aSysBordMetrics
 
    Local Const $SM_CYCAPTION       = 4 ;Caption (Title) heigth
    Local Const $SM_CXFIXEDFRAME    = 7 ;Window border size
 
    $aSysCaptMetrics = DllCall('user32.dll', 'int', 'GetSystemMetrics', 'int', $SM_CYCAPTION)
    $aSysBordMetrics = DllCall('user32.dll', 'int', 'GetSystemMetrics', 'int', $SM_CXFIXEDFRAME)
 
    $aGuiPos = WinGetPos($hWnd)
 
    If $aGuiPos[3] > $iExpndHeight + $aSysCaptMetrics[0] Then
        _GUICtrlButton_SetImageEx($hImageList, $iExpndCtrlID, @SystemDir & "\rasdlg.dll", 14)
 
        $iHeight = $iInitWndHeight + $aSysCaptMetrics[0] + ($aSysBordMetrics[0] * 2)
        $sButtonText = $sExpndText
    Else
        _GUICtrlButton_SetImageEx($hImageList, $iExpndCtrlID, @SystemDir & "\rasdlg.dll", 16)
 
        $iHeight = $iExpndHeight + $aSysCaptMetrics[0] + ($aSysBordMetrics[0] * 2)
        $sButtonText = $sCntrctText
    EndIf
 
    GUICtrlSetData($iExpndCtrlID, $sButtonText)
    WinMove($hWnd, "", $aGuiPos[0], $aGuiPos[1], $aGuiPos[2], $iHeight)
EndFunc
 
Func
_GUICtrlButton_SetImageEx(ByRef $hImageList, $nCtrl, $sIconFile, $nIconID=0, $nAlign=-1)
    If $hImageList Then _GUIImageList_Destroy($hImageList)
 
    $hImageList = _GUIImageList_Create(16, 16, 5, 1)
    _GUIImageList_AddIcon($hImageList, $sIconFile, $nIconID)
 
    Local $stBIL = DllStructCreate("dword;int[4];uint")
 
    DllStructSetData($stBIL, 1, $hImageList)
    DllStructSetData($stBIL, 2, 1, 1)
    DllStructSetData($stBIL, 2, 1, 2)
    DllStructSetData($stBIL, 2, 1, 3)
    DllStructSetData($stBIL, 2, 1, 4)
    DllStructSetData($stBIL, 3, $nAlign)
 
    Return GUICtrlSendMsg($nCtrl, $BCM_SETIMAGELIST, 0, DllStructGetPtr($stBIL))
EndFunc

 
Изменение размеров окна:

Код:
#include <GuiConstants.au3>
 
$GUI = GUICreate("Resize GUI", 300, 200)
 
$ResizeGUI_Button = GUICtrlCreateButton("Resize", 20, 40, 70, 20)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
 
GUISetState(@SW_SHOW, $GUI)
 
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case
$ResizeGUI_Button
            Local $aGUI_Pos = WinGetPos($GUI)
 
            ;Увеличиваем размер GUI на 5 единиц с каждой стороны (в высоту и в ширену)
            WinMove($GUI, "", $aGUI_Pos[0], $aGUI_Pos[1], $aGUI_Pos[2] + 5, $aGUI_Pos[3] + 5)
    EndSwitch
WEnd

Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 22:34 13-02-2010
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru