Что нового

Снять выделение с текста в поле Edit

vovsla

Осваивающий
Сообщения
607
Репутация
36
При создании поля "Edit" с текстом весь текст получается выделенным.
Как автоматически снять выделение?
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=C:\1.kxf
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Edit1 = GUICtrlCreateEdit("", 168, 160, 185, 89)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	Sleep(100)
WEnd

Func Form1Close()

EndFunc
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Vovsla
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Edit1 = GUICtrlCreateEdit("", 168, 160, 185, 89)
GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
GUICtrlSendMsg($Edit1,$em_setsel,-1,-1)
While 1
    Sleep(100)
WEnd
Func Form1Close()
	Exit
EndFunc

GUICtrlSendMsg добавлять после вырисовки окна, а то эффекта не будет
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Так фокус переносится на поле "Edit".
Можно снять выделения без переноса фокуса?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Vovsla,
Так тоже можно.
Код:
#include <GUIConstantsEx.au3>

GUICreate('Test', 200, 100)
$nEdit = GUICtrlCreateEdit('Edit no focus', 10, 10, 180, 80)
GUICtrlSetState(GUICtrlCreateLabel('', 0, 0), BitOR($GUI_HIDE, $GUI_FOCUS))
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Мои два варианта:
1. Выслать Send (но не солидно, мой старый вариант)
2. Вставить данные после отображения элемента.

Код:
$hGui = GUICreate('My Program', 250, 260)
$Edit = GUICtrlCreateEdit("", 18, 10, 185, 89)
GUISetState()
; Send('{Home}')
GUICtrlSetData(-1, "Edit1")
Do
Until GUIGetMsg() = -3
 
Верх