Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WindowsConstants.au3>
- #include <GUIConstantsEx.au3>
- ; En
- $LngCheck = 'Not to ask any more'
- $LngYes = 'Yes'
- $LngNo = 'No'
- $sTitle = 'Message'
- $sText = 'Use as default?'
- ; Ru
- ; если русская локализация, то русский язык
- If @OSLang = 0419 Then
- $LngCheck = 'Больше не спрашивать'
- $LngYes = 'OK'
- $LngNo = 'Отмена'
- $sTitle = 'Сообщение'
- $sText = 'Использовать по умолчанию?'
- EndIf
- $hGUI = GUICreate('My program', 420, 250)
- $MsgBox = GUICtrlCreateButton("Button", 20, 20, 90, 30)
- $StatusBar = GUICtrlCreateLabel('', 20, 60, 330, 150)
- GUISetState()
- While 1
- Switch GUIGetMsg()
- Case $MsgBox
- $iAnswer = _InputBox($sTitle, $sText, 'Text', 200, 100, $LngYes, $LngNo, $hGUI)
- GUICtrlSetData($StatusBar, 'input field = ' & $iAnswer & @CRLF & 'button = ' & @extended & @CRLF & 'Error = ' & @error)
- Case $GUI_EVENT_CLOSE
- Exit
- EndSwitch
- WEnd
- ; функция создаёт диалог с полемм ввода.
- ; Функция позволяет установить тексты всех элементов окна, размеры окна, чтобы вместить текст вопроса и умолчальное состояние чекбокса.
- ; Параметры:
- ; $sTitle - Заголовок окна
- ; $sText - Текст окна
- ; $iSizeX - Ширина окна, по умолчанию 270
- ; $iSizeY - Высота окна, по умолчанию 170
- ; $sDefault - текст по умолчанию
- ; $LngYes - текст кнопки "Да", по умолчанию "Да"
- ; $LngNo - текст кнопки, "Нет", по умолчанию "Нет"
- ; $hWnd - дескриптор родительского окна
- ; Возвращает: Текст поля ввода, @extended:
- ; 0 - Нет, Отмена или закрытие окна
- ; 1 - Да, OK
- ; в случае, если потребуется отличать закрытие окна от кнопки "Нет" используйте проверку @error
- Func _InputBox($sTitle, $sText, $sDefault = '', $iSizeX = 270, $iSizeY = 170, $LngYes = 'OK', $LngNo = 'Cancel', $hWnd = 0)
- Local $hGUIChild, $iYes, $iNo, $iInput, $iMode, $iAnswer = 0, $iError = 0, $iTrWnd = 0
- If $iSizeX < 170 Then $iSizeX = 170
- $iMode = Opt('GUIOnEventMode', 0)
- If IsHWnd($hWnd) Then
- GUISetState(@SW_DISABLE, $hWnd)
- $iTrWnd = 1
- Else
- $hWnd = 0
- EndIf
- $hGUIChild = GUICreate($sTitle, $iSizeX, $iSizeY, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU, $WS_POPUP), $WS_EX_TOPMOST, $hWnd)
- GUICtrlCreateLabel($sText, 10, 10, $iSizeX - 20, $iSizeY - 75)
- $iInput = GUICtrlCreateInput($sDefault, 10, $iSizeY - 65, $iSizeX - 20, 20)
- $iYes = GUICtrlCreateButton($LngYes, ($iSizeX - 150) / 2, $iSizeY - 40, 70, 28)
- $iNo = GUICtrlCreateButton($LngNo, ($iSizeX - 150) / 2 + 80, $iSizeY - 40, 70, 28)
- GUISetState(@SW_SHOW, $hGUIChild)
- While 1
- Switch GUIGetMsg()
- Case $iYes
- $iAnswer = 1
- ExitLoop
- Case $iNo
- ExitLoop
- Case $GUI_EVENT_CLOSE
- $iError = 1
- ExitLoop
- EndSwitch
- WEnd
- $iInput = GUICtrlRead($iInput)
- If $iTrWnd Then GUISetState(@SW_ENABLE, $hWnd)
- GUIDelete($hGUIChild)
- Opt('GUIOnEventMode', $iMode)
- Return SetError($iError, $iAnswer, $iInput)
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement