Как установить фокус ввода на динамически созданный контрол Edit? - VB
Формулировка задачи:
Здравствуйте!
Создаю через CreateWindowEx контрол EDIT со стилем ES_MULTILINE.
Все работает нормально. Можно вводить текст, по нажатию ENTER - переход на новую строку.
НО, если добавить на форму стандартную кнопку, она получает "частичный" фокус ввода
и получается, что текст с клавиатуры вводится в EditBox, а нажатие ENTER - отправляется кнопке.
Как передать контролу EDIT полный фокус ввода при нажатии ЛКМ по нему?
Я пробовал получать оповещение WM_SETFOCUS, устанавливая затем фокус через функцию SetFocus или WM_NEXTDLGCTL, но это не помогло:
Решение задачи: «Как установить фокус ввода на динамически созданный контрол Edit?»
textual
Листинг программы
Option Explicit Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 'Private Declare Function SetFocus2 Lib "user32" Alias "SetFocus" (ByVal hWnd As Long) As Long Private Const WM_NEXTDLGCTL As Long = &H28& Private Sub Form_Load() Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer() SendMessage Me.hWnd, WM_NEXTDLGCTL, 0&, ByVal 0& Debug.Print "Worked" 'Debug.Print "Old = " & SetFocus2(Command2.hWnd) & ". New = " & Command2.hWnd End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д