Поле редактирования MFC изменить даже
Мне нужно событие при изменении окна MFCedit, т.е. когда я пытаюсь написать или удалить какое-либо письмо.
Я получаю событие об убийстве фокуса, но это не обязательно.
Я хочу событие при изменении содержимого поля редактирования.
2 ответа
Чтобы добавить к существующим ответам, это можно сделать, добавив обработчик событий для элемента управления. Это простая задача с использованием IDE в Visual Studio.
Есть несколько подходов к этому.
Метод 1. Щелкните правой кнопкой мыши элемент управления EDIT и добавьте обработчик событий:
Щелкните Добавить обработчик событий ... в контекстном меню, а затем найдите обработчик, чтобы добавить его:
Убедитесь, что ваш класс диалогового окна выбран и выбран тип сообщения, а затем нажмите кнопку ОК, чтобы добавить код стандартной пластины в ваш класс. Теперь вы можете делать то, что вам нужно.
Метод 2: Использование панели свойств
Убедитесь, что элемент управления выбран и панель свойств видна на экране.
- Щелкните элемент управления событиями (значок молнии), и вы увидите список событий для элемента управления EDIT.
- Найдите и щелкните стрелку раскрывающегося списка.
Вы увидите элемент для выбора, который добавит для вас обработчик событий.
Метод 3: использование мастера классов
Щелкните правой кнопкой мыши ресурс DIALOG ( не элемент управления EDIT) и выберите Class Wizard ...
Затем вы можете добавить элемент управления с помощью мастера классов:
Сделать это:
- Выберите идентификатор элемента EDIT в списке слева.
- Выберите обработчик событий.
- Нажмите кнопку « Добавить обработчик ...» .
Как видите, есть несколько способов добавить
EN_CHANGE
обработчик события.
Об изменениях содержимого элемента управления для редактирования сообщается клиентам через EN_CHANGE
уведомление. В
CEdit
в документации объясняется, как подключить членов класса к обратным вызовам уведомлений. В этом случае вы захотите добавить
ON_EN_CHANGE
запись на карту сообщений.