Как проверить, нажал ли пользователь клавишу внутри элемента управления Edit

0

У меня есть Edit Controll (где вы можете писать вещи) в моем коде, и я хочу, чтобы при вводе пользователя введите (например, в формах - имя пользователя/пароль), он что-то сделает..

например, когда вы заходите на сайт и вы вводите имя пользователя и пароль, если вы нажмете кнопку "Enter", он автоматически запустится для вас, вместо нажатия кнопки "connect"...

У меня есть следующий код:

ChatHwnd = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", NULL, WS_CHILD | WS_VSCROLL | WS_HSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_LEFT | ES_MULTILINE | ES_WANTRETURN , 15, 15, 550, 300, hwnd, NULL, 
(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL); // Creat chat log

Он написан в Win API...

Благодарю!

Теги:
winapi

2 ответа

2
Лучший ответ

Удалите стиль ES_WANTRETURN из элемента управления, чтобы возвращаемый ключ переместился в родительский диалог. В родительском диалоговом окне обработайте уведомление EN_KILLFOCUS (в WM_COMMAND). WParam, который поставляется с уведомлением, скажет вам, был ли элемент управления редактирования, который вас интересует.

  • 0
    Я никогда не делал ничего подобного раньше ... не могли бы вы показать мне немного кода? потому что я не уверен, как использовать EN_KILLFOCUS и что положить в WM_COMMAND тоже ... Спасибо!
  • 0
    Обработка сообщений от элементов управления является очень простой вещью. Найти книгу или онлайн-учебник.
0

Если у вас есть диалоговое окно, клавиша Enter автоматически обрабатывается отдельно.

Если у вас есть свой собственный элемент управления рамкой и вы хотите, чтобы в деталях была отдельная обработка ввода, у вас есть два варианта:

  1. Используйте сообщение Loop и PreTranslate (я использую это слово из MFC) входных сообщений.
  2. Подкласс вашего контроля, чтобы получить доступ ко всем сообщениям, которые получает элемент управления.
  3. Вы можете использовать крючок (но это Overkill)
  • 0
    У меня есть диалог, как вы можете видеть, я использовал уже встроенный в "Edit" класс

Ещё вопросы

Сообщество Overcoder
Наверх
Меню