Эту программку я попробовал сделать для более легкого создания кнопок!
Код:
;~ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;~ Program Name: Producer button v.1.5
;~ Author: GUIMish
;~ Version: 1.5
;~ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WinAPI.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <ProgressConstants.au3>
Opt('MustDeclareVars', 1)
Global $Window, $Msg, $ButtonChild
Global $TITLE, $L, $R, $NdSv, $Nno, $NdSn, $NSz, $Ndno, $NSl, $NSr, $OFile, $Open
Global $BTNPREVIEW, $BTNCOPY, $BTNEXIT
Global $LRC, $NStro, $hid, $mCOPY
Global $Button, $optFirst, $iFlag, $iCo, $iCod, $nad, $nnb, $nnt, $raz, $xy, $NSm, $NSp
Global $filemenu, $mExit, $Set, $lang, $lrus, $leng, $help, $info
Global $other, $clk, $ctk, $CC, $CL, $hChild
$Window = GUICreate("Producer button v.1.5", 350, 280, -1, -1, BitOR($WS_SYSMENU, $DS_CONTEXTHELP))
;~ -- Меню --------------------------------------------------
$filemenu = GUICtrlCreateMenu ("Файл")
$mCOPY = GUICtrlCreateMenuitem ("Получить код", $filemenu)
$mExit = GUICtrlCreateMenuitem ( "Выход", $filemenu)
$Set = GUICtrlCreateMenu ("Настройки")
$lang = GUICtrlCreateMenu ( "Язык", $Set)
$lrus = GUICtrlCreateMenuitem ( "Русский", $lang)
$leng = GUICtrlCreateMenuitem ( "English", $lang)
$help = GUICtrlCreateMenu ("Помощь")
$info = GUICtrlCreateMenuitem ( "О Программе", $help)
;~ ----------------------------------------------------------
$nad = GUICtrlCreateLabel("Надпись:", 10, 7, 60)
$TITLE = GUICtrlCreateInput("", 70, 5, 100, 20)
GUICtrlSetState(-1, $GUI_FOCUS)
$nnt = GUICtrlCreateGroup("Положение текста X", 180, 5, 150, 80)
$Ndno = GUICtrlCreateRadio("Стандартно", 185, 20, 120, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$NSl = GUICtrlCreateRadio("Надпись Влево", 185, 40, 120, 20)
$NSr = GUICtrlCreateRadio("Надпись Вправо", 185, 60, 120, 20)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$nnb = GUICtrlCreateGroup("Положение текста Y", 180, 90, 150, 80)
$Nno = GUICtrlCreateRadio("Стандартно", 185, 105, 80, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$NdSv = GUICtrlCreateRadio("Надпись вверху", 185, 125, 110, 20)
$NdSn = GUICtrlCreateRadio("Надпись внизу", 185, 145, 100, 20)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$other = GUICtrlCreateGroup("Остальное", 10, 35, 160, 57)
$NStro = GUICtrlCreateCheckbox("Текст в несколько строк", 15, 46, 150, 25)
$NSz = GUICtrlCreateCheckbox("Кнопка по умолчанию", 15, 67)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$raz = GUICtrlCreateGroup("Размер:", 180, 175, 150, 50)
GUISetFont(6, 300, 0)
GUICtrlCreateLabel("X", 215, 187, 5)
GUICtrlCreateLabel("Y", 270, 187)
GUISetFont(8.5, 300, 0)
$L = GUICtrlCreateInput("", 215, 195, 50, 20)
$R = GUICtrlCreateInput("", 269, 195, 50, 20)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$BTNPREVIEW = GUICtrlCreateButton("Пред... просмотр", 10, 140, 100)
$BTNCOPY = GUICtrlCreateButton("Получить код", 10, 170, 100)
$BTNEXIT = GUICtrlCreateButton("Выход", 10, 200, 100)
GUISetState()
While 1
$MSG = GUIGetMsg()
Select
Case $MSG = $GUI_EVENT_CLOSE Or $MSG = $BTNEXIT Or $MSG = $mExit ; Пораметры выхода
ExitLoop
Case $MSG = $BTNPREVIEW ; Кнопка Превью
_ChildDlg($Window)
Case $MSG = $BTNCOPY
_CopyCode($Window)
Case $MSG = $mCOPY
_CopyCode($Window)
;~ - Остальное ---------------------------------
Case $MSG = $NStro ; В неколько строчек
GUICtrlSetState($optFirst, $BS_MULTILINE)
;~ ---------------------------------------------
Case $MSG = $lrus
_LenRusCode($iCo)
Case $MSG = $leng
_LenEngCode($iCod)
Case $MSG = $info
_infoCode($Window)
EndSelect
WEnd
Func _ChildDlg($hWnd = 0)
Local $hChild, $Msg
GUISetState(@SW_DISABLE, $hWnd)
$hChild = GUICreate('Preview', 450, 400, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME), BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE), $hWnd)
GUICtrlCreateButton("&X", -50, 0, 20)
GUICtrlCreateButton(GUICtrlRead($TITLE), 100, 100, GUICtrlRead($L), GUICtrlRead($R), _SetFlag($iFlag))
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUISetState(@SW_ENABLE, $hWnd)
GUIDelete($hChild)
EndFunc
Func _CopyCode($hWnd = 0)
Local $hChild, $Msg, $ButtonExit, $Code, $iCode, $clk, $ctk, $iLa, $iLo, $CC, $CL
GUISetState(@SW_DISABLE, $hWnd)
$hChild = GUICreate('Generating code', 430, 110, -1, -1, -1, -1, $hWnd)
$Code = GUICtrlCreateEdit (_Code($iCode), 5, 5, 420, 100)
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUISetState(@SW_ENABLE, $hWnd)
GUIDelete($hChild)
EndFunc
Func _infoCode($hWnd = 0)
Local $hChild, $Msg, $ButtonExit, $Code, $Ex
GUISetState(@SW_DISABLE, $hWnd)
$hChild = GUICreate('About', 210, 120, -1, -1, BitOR($WS_EX_MDICHILD, $WS_EX_APPWINDOW), -1, $hWnd)
GUISetFont(15)
GUICtrlCreateLabel ("Producer button", 5, 12)
GUISetFont(8.5)
$Ex = GUICtrlCreateButton("Button", 150, 10, 50, 30)
GUISetFont(8)
GUICtrlCreateLabel ("Program Name: Producer button v.1.5", 5, 60, 200, 100)
GUICtrlCreateLabel ("Author: GUIMish", 5, 70, 200, 100)
GUICtrlCreateLabel ("Version: 1.5", 5, 80, 200, 100)
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE, $Ex
ExitLoop
EndSwitch
WEnd
GUISetState(@SW_ENABLE, $hWnd)
GUIDelete($hChild)
EndFunc
Func _SetFlag($iFlag)
$iFlag = 0
Select
Case GUICtrlRead ($NdSv) = $GUI_CHECKED
$iFlag = $iFlag + $BS_TOP
Case GUICtrlRead ($NdSn) = $GUI_CHECKED
$iFlag = $iFlag + $BS_BOTTOM
EndSelect
Select
Case GUICtrlRead ($NSl) = $GUI_CHECKED
$iFlag = $iFlag + $BS_LEFT
Case GUICtrlRead ($NSr) = $GUI_CHECKED
$iFlag = $iFlag + $BS_RIGHT
EndSelect
Select
Case GUICtrlRead ($NStro) = $GUI_CHECKED
$iFlag = $iFlag + $BS_MULTILINE
Case GUICtrlRead ($NSz) = $GUI_CHECKED
$iFlag = $iFlag + $GUI_CHECKED
Case GUICtrlRead ($NSm) = $GUI_CHECKED
$iFlag = $iFlag + $WS_DLGFRAME
Case GUICtrlRead ($NSp) = $GUI_CHECKED
$iFlag = $iFlag + $BS_NOTIFY & $BS_DEFPUSHBUTTON
EndSelect
Return $iFlag
EndFunc
Func _LenEngCode($iCod)
$iCod = 0
GUICtrlSetData($filemenu, "File")
GUICtrlSetData($mExit, "Exit")
GUICtrlSetData($Set, "Settings")
GUICtrlSetData($lang, "Language")
GUICtrlSetData($help, "Help")
GUICtrlSetData($info, "About")
GUICtrlSetData($nad, "Inscription:")
GUICtrlSetData($other, "Other")
GUICtrlSetData($NStro, "Text in multiple lines")
GUICtrlSetData($nnb, "Text position X")
GUICtrlSetData($nnt, "Text position Y")
GUICtrlSetData($Ndno, "Standard")
GUICtrlSetData($Nno, "Standard")
GUICtrlSetData($NSl, "Inscription Left")
GUICtrlSetData($NSr, "Inscription Right")
GUICtrlSetData($NdSv, "Inscription Top")
GUICtrlSetData($NdSn, "Inscription bottom")
GUICtrlSetData($NSz, "Button default")
GUICtrlSetData($NSm, "With a convex contour")
GUICtrlSetData($raz, "Size:")
GUICtrlSetData($BTNPREVIEW, "Preview")
GUICtrlSetData($BTNCOPY, "Get the code")
GUICtrlSetData($mCOPY, "Get the code")
GUICtrlSetData($BTNEXIT, "Exit")
Return $iCod
EndFunc
Func _LenRusCode($iCo)
$iCo = 0
GUICtrlSetData($filemenu, "Файл")
GUICtrlSetData($mExit, "Выход")
GUICtrlSetData($Set, "Настройки")
GUICtrlSetData($lang, "Язык")
GUICtrlSetData($help, "Помощь")
GUICtrlSetData($info, "О программе")
GUICtrlSetData($nad, "Надпись:")
GUICtrlSetData($other, "Остальное")
GUICtrlSetData($NStro, "Текст в несколько строк")
GUICtrlSetData($nnb, "Положение текста X")
GUICtrlSetData($nnt, "Положение текста Y")
GUICtrlSetData($Ndno, "Стандартно")
GUICtrlSetData($Nno, "Стандартно")
GUICtrlSetData($NSl, "Надпись Влево")
GUICtrlSetData($NSr, "Надпись Вправо")
GUICtrlSetData($NdSv, "Надпись Вверху")
GUICtrlSetData($NdSn, "Надпись Внизу")
GUICtrlSetData($NSz, "Кнопка по умолчанию")
GUICtrlSetData($NSm, "C выпуклым контуром")
GUICtrlSetData($raz, "Размер:")
GUICtrlSetData($BTNPREVIEW, "Пред... просмотр")
GUICtrlSetData($BTNCOPY, "Получить код")
GUICtrlSetData($mCOPY, "Получить код")
GUICtrlSetData($BTNEXIT, "Выход")
Return $iCo
EndFunc
Func _Code($iCode)
$iCode = "GUICtrlCreateButton(" & '"' & GUICtrlRead($TITLE) & '"' & ", " & "left" & ", " & "top" & ", " & GUICtrlRead($L) & ", " & GUICtrlRead($R) & ", " & _SetFlag($iFlag) & ")"& @CRLF & _
"; ''left'' Координаты от левого края = coordinates from the left edge" & @CRLF & _
"; ''top'' Координаты от верхнего края = coordinates from the top edge"
Return $iCode
EndFunc
;~ P.S.
;~ Это мой первый генератор