Поле редактирования MFC изменить даже

Мне нужно событие при изменении окна MFCedit, т.е. когда я пытаюсь написать или удалить какое-либо письмо.

Я получаю событие об убийстве фокуса, но это не обязательно.

Я хочу событие при изменении содержимого поля редактирования.

2 ответа

Чтобы добавить к существующим ответам, это можно сделать, добавив обработчик событий для элемента управления. Это простая задача с использованием IDE в Visual Studio.

Есть несколько подходов к этому.


Метод 1. Щелкните правой кнопкой мыши элемент управления EDIT и добавьте обработчик событий:

Щелкните Добавить обработчик событий ... в контекстном меню, а затем найдите обработчик, чтобы добавить его:

Убедитесь, что ваш класс диалогового окна выбран и выбран тип сообщения, а затем нажмите кнопку ОК, чтобы добавить код стандартной пластины в ваш класс. Теперь вы можете делать то, что вам нужно.


Метод 2: Использование панели свойств

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

  1. Щелкните элемент управления событиями (значок молнии), и вы увидите список событий для элемента управления EDIT.
  2. Найдите и щелкните стрелку раскрывающегося списка.

Вы увидите элемент для выбора, который добавит для вас обработчик событий.


Метод 3: использование мастера классов

Щелкните правой кнопкой мыши ресурс DIALOG ( не элемент управления EDIT) и выберите Class Wizard ...

Затем вы можете добавить элемент управления с помощью мастера классов:

Сделать это:

  1. Выберите идентификатор элемента EDIT в списке слева.
  2. Выберите обработчик событий.
  3. Нажмите кнопку « Добавить обработчик ...» .

Как видите, есть несколько способов добавить EN_CHANGE обработчик события.

Об изменениях содержимого элемента управления для редактирования сообщается клиентам через EN_CHANGEуведомление. В CEdit в документации объясняется, как подключить членов класса к обратным вызовам уведомлений. В этом случае вы захотите добавить ON_EN_CHANGE запись на карту сообщений.

Другие вопросы по тегам