ON_EN_KILLFOCUS вызывается несколько раз - PullRequest
0 голосов
/ 07 октября 2010

Я использую элемент управления CEdit.И я назначил обработчик событий для сообщения ON_EN_KILLFOCUS.Он вызывается правильно.Но проблема в том, что когда я закрываю диалоговое окно, этот обработчик событий вызывается четыре раза.Как я могу предотвратить это?

Ответы [ 2 ]

0 голосов
/ 28 октября 2015

Просто столкнулся с подобной проблемой и решил путем разделения на разные обработчики.

Я использовал:

ON_EN_KILLFOCUS(IDE_THRESHOLD, OnKillFocusOnEdit)
ON_EN_KILLFOCUS(IDE_AUTODENY_THRESHOLD, OnKillFocusOnEdit)

OnKillFocusOnEdit будет получать два сообщения каждый раз, когда любое из этих двух правок теряетсяфокус.

Теперь, переходя к следующему, каждая функция получает только одно сообщение, как и ожидалось:

ON_EN_KILLFOCUS(IDE_THRESHOLD, OnKillFocusOnEdit)
ON_EN_KILLFOCUS(IDE_AUTODENY_THRESHOLD, OnKillFocusOnAutoDenyEdit)
0 голосов
/ 08 октября 2010

Зачем пытаться это предотвратить? Просто убедитесь, что ваш обработчик игнорирует те, которые не имеют значения -

...