Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Странное поведение CIPAddressCtrl

10K
02 августа 2006 года
Sonic_amiga
34 / / 19.06.2006
Знаете ли такую штуку - CGridCtrl (с The Code Project)? Так вот, решил я туда встроить CIPAddressCtrl в качестве очередного класса клетки. Вроде бы все просто, да не совсем. Глюкодром получился страшный. Исследование под микроскопом показало, что CIPAddressCtrl совершенно по-другому рассылает сообщения, в отличие скажем от CEdit.
Итак, навскидку:
1) WM_KILLFOCUS приходит всякий раз, когда внутри контрола меняется активная цифра.
2) WM_CHAR ваще не приходит.
Можно ли это как-то обойти? Имеющийся на данный момент результат напрочь неюзабелен. Как получить-таки WM_CHAR и поймать тот факт, что весь контрол потерял фокус ввода?
398
02 августа 2006 года
Alexandoros
630 / / 21.10.2005
Цитата:
Is an IP Address Control an Edit Control?
An IP address control is not an edit control and it will not respond to EM_ messages. It will, however, send the owner window the following edit control notifications through the WM_COMMAND message. Note that the IP address control will also send private IPN_ notifications through the WM_NOTIFY message.


Notification Reason for notification
EN_SETFOCUS Sent when the IP address control gains the keyboard focus.
EN_KILLFOCUS Sent when the IP address control loses the keyboard focus.
EN_CHANGE Sent when any field in the IP address control changes. Like the EN_CHANGE notification from a standard edit control, this notification is received after the screen has been updated.



MSDN & RTFM

10K
04 августа 2006 года
Sonic_amiga
34 / / 19.06.2006
Было. EN_KILLFOCIS приходит точно так же, как WM_KILLFOCUS. А именно - при каждом переходе фокуса между полями адреса.
Насколько я понял этот контрол - это четыре edit'а внутри одной рамки, между ними точки нарисованы. Ведет себя соответственно.
Так че, писать свой IPAddressControl?
398
04 августа 2006 года
Alexandoros
630 / / 21.10.2005
А че надо - то? Есть ведь еще PreTranslateMessage
10K
09 августа 2006 года
Sonic_amiga
34 / / 19.06.2006
Надо:
1. Узнать, когда фокус покинет весь контрол, а не перейдет из поля в поле.
2. Получить нажатия клавиш.
398
10 августа 2006 года
Alexandoros
630 / / 21.10.2005
Так проверяй от какого окна приходит килфокус. Если от ячейки - значит ок, если от айпи контрола - игнор.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог