Урок 2. Обработка пользовательского ввода. Начальный уровень

Для ввода данных в приложение используется элемент управления «EditBox» (поле ввода). Пользователь может изменять содержимое этого элемента управления путем ввода символов с клавиатуры, либо из буфера обмена.

Для добавления поля ввода на главное окно приложения добавьте указатель на вставляемый элемент в начало программы, и измените обработчики сообщений «WM_CREATE» и «WM_COMMAND», как показано на рис.5. Изменения в исходном коде приложения выделены красным.

Рисунок 5 – изменения в коде приложения для добавления поля ввода.

Обратите внимание на изменения в коде обработки сообщения «WM_COMMAND» - ввиду того, что данное сообщение генерируется каждым элементом управления, во избежание ложных срабатываний оповещения о введенном тексте, необходимо идентифицировать отправителя сообщения. Сообщения, отправляемые ОС в приложение, передаются тремя переменными – код сообщения, и два аргумента этого сообщения. Код сообщения хранится в переменной «Message», а аргументы – в «wParam» и «lParam». Аргумент «wParam» представляет собой 4-хбайтовое целое без знака, и каждые два байта хранят отдельное значение. Младшая пара байтов хранит числовой идентификатор отправителя сообщения, а функция «LOWORD» позволяет этот идентификатор извлечь.

Для хранения введенной строки текста используется переменная «szInput» типа «char[MAX_PATH]» - это массив символов фиксированной длины. Функция «GetWindowText» используется для чтения, введенного пользователем значения. Эта функция считывает текст, помещенный в окно элемента управления, и записывает его в переменную «szInput», которая затем подставляется в качестве аргумента функции «MessageBox».

Соберите и протестируйте работу приложения. По каждому нажатию на кнопку «Нажми меня» должно появляться уведомление с текстом, соответствующим тексту в поле ввода.

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: