Что нового

[Окна, Диалоги] Как сделать так, чтобы при нажатии кнопки tab отправлялся символ Chr(9)

alex33

Скриптер
Сообщения
1,457
Репутация
186
Подскажите как сделать чтобы при нажатии кнопки tab в input или в edit фокус не перемещался на следующий элемент а вставлялся символ Chr(9) ?
Например как это сделано в Блокноте или в SciTE.
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 562, 70, 192, 124)
HotKeySet("{tab}","__SetChr")
$Edit1 = GUICtrlCreateEdit("", 0, 0, 281, 57)
GUICtrlSetData(-1, "Edit1")
$Button1 = GUICtrlCreateButton("Button1", 288, 0, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
Func __SetChr()
	GUICtrlSetData($Edit1,guictrlread($Edit1)&Chr(9))
EndFunc

При нажатии на Tab произойдет вставка элемента chr(9) без потери фокуса(фокус наверное теряется но после вставки в текстовое поле возобновляется на него же, просто не заметно)
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
MnM
HotKeySet это не гуд, оно регистрирует глобально, во всех программах перестанет работать, теоретически. Использовать GUISetAccelerators и
Код:
GUICtrlSetData($iEdit, @Tab, 1)
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
AZJIO
Спасибище большое!
 
Верх