Что нового

[Элементы GUI] расположение поля ввода в inputbox

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Есть вот такой простой код
Код:
$x = InputBox("ввод параметра", "Введите количество :", 5, "",100,50)

И по нему формируется вот такое окошко

Но хочется чтобы поле ввода было расположено там, куда показывает стрелка.
Как можно такое организовать?
 
Автор
C2H5OH

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А чего ж мелочиться? Ты б уже посоветовал свой AutoIt написать. ;D

Вообще-то у меня по жизни нелады с GUI (ну не идёт и всё), так что если есть примеры в виде кода, я был бы благодарен.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,670
Репутация
2,473
Код:
$vRet = _MyInputBox("Ввод параметра", "Введите количество:")

ConsoleWrite("@error: " & @error & ", Return: " & $vRet & @LF)

Func _MyInputBox($sTitle, $sText, $sDefault = "", $hWnd = 0)
	Local $hGUI, $nInput, $nOk_Btn, $nCancel_Btn, $iErr, $vRet
	
	$hGUI = GUICreate($sTitle, 205, 80, -1, -1, -2134376448, -1, $hWnd) ;BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU)
	
	GUICtrlCreateLabel($sText, 10, 20, 110)
	$nInput = GUICtrlCreateInput($sDefault, 130, 18, 60, 20)
	$nOk_Btn = GUICtrlCreateButton("OK", 10, 50, 90, 25)
	$nCancel_Btn = GUICtrlCreateButton("Cancel", 105, 50, 90, 25)
	
	If IsHWnd($hWnd) Then WinSetState($hWnd, "", @SW_DISABLE)
	GUISetState(@SW_SHOW, $hGUI)
	
	While 1
		Switch GUIGetMsg()
			Case -3, $nCancel_Btn ;$GUI_EVENT_CLOSE
				$vRet = ""
				$iErr = 1
				ExitLoop
			Case $nOk_Btn
				$vRet = GUICtrlRead($nInput)
				ExitLoop
		EndSwitch
	WEnd
	
	If IsHWnd($hWnd) Then WinSetState($hWnd, "", @SW_ENABLE)
	GUIDelete($hGUI)
	Return SetError($iErr, 0, $vRet)
EndFunc
 
Верх