Как избежать уведомлений EN _CHANGE при отправке WM _SETTEXT?

У меня есть элемент управления, производный от CEdit, который отображает строку «N/A», когда неопределенные данные равны нулю. Недавно я добавил код для очистки элемента управления (SetWindowText ("" ); )когда он получает фокус и возвращается к "N/A" (SetWindowText ("N/A" ))когда фокус теряется, если пользователь оставил элемент управления пустым.

Единственная проблема заключается в том, что установка текста окна на "" или "N/A" запускает EN _CHANGE, поэтому мой диалог считает, что данные изменились.

Как избежать срабатывания EN _CHANGE при вызове SetWindowText (WM _SETTEXT )?

ПРИМЕЧАНИЯ

-Я знаю, что могу установить элемент управления редактированием в Multiline=TRUE, но это неприемлемо для меня.

-Мое приложение — MBCS, поэтому я не могу использовать SetCueBanner

-Я хочу элегантное решение. Временная установка родительского окна в NULL не является элегантным решением.

РЕДАКТИРОВАТЬ:

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

Спасибо

6
задан Goldorak84 6 July 2012 в 15:08
поделиться