Я работаю с приложением MFC. В некоторых наших формах у нас есть поля для пароля - обычные CEdit
элементы управления с набором ES_PASSWORD
. Когда фокус перемещается в поле пароля, Windows отображает подсказку-предупреждение, если пользователь имеет Caps Lock. (См. screendump here) Что хорошо: пароль чувствителен к регистру, поэтому хорошо, что пользователь получает информацию, что он должен отключить Caps Lock.«Caps Lock is on» -tooltip не уходит (Citrix? Codejock?)
Но иногда предупреждение не исчезает. Даже после того, как элемент управления CEdit
(и все окно просмотра) был удален/уничтожен. «Всплывающая подсказка» остается на экране, поверх всего остального. (Скрывает новые элементы управления.) Единственный способ избавиться от него - закрыть приложение и перезапустить его.
Проблема возникает не так часто, но очень неприятна для пользователя, когда она это делает. Насколько нам известно, это произошло только с пользователями, которые запускают наше приложение под Citrix, а не на отдельном ПК. Наше приложение использует XTP Codejock, но всплывающая подсказка локализована, поэтому, похоже, она создается Windows.
(1) Кто-нибудь знает, что может быть причиной этого? Мы ничего не смогли найти в Интернете! Может ли это быть проблемой Citrix? Или мы ошибаемся в отношении этой вещи Windows - может ли это быть ошибкой Codejock?
(2) Есть ли способ исправить это? (CEdit::HideBalloonTip
/EM_HIDEBALLOONTIP
не поможет.)
(3) Если это не решение проблемы, мы можем отключить «Caps Lock на» -tooltip полностью для контроля CEdit
? Лучше вообще не показывать всплывающую подсказку, чем иметь эту проблему.
Если вы можете воссоздать эту проблему, вы можете попробовать использовать Spy ++, чтобы получить характеристики окна режущей кромки инструмента. Это может помочь вам определить, будет ли окно отображаться (изнутри вашего кода) и предоставить возможность его отклонить. – rrirower
В родительском окне 'CEdit', переопределите' OnLButtonDown' и вызовите 'CEdit :: HideBalloonTip' или' SetFocus() ', посмотрите, закрывается ли подсказка при нажатии пользователем в родительском окне. –