2016-12-11 2 views
0

Je travaille avec une application MFC. Dans certains de nos formulaires, nous avons des champs de mot de passe - commandes CEdit ordinaires avec le jeu de style ES_PASSWORD. Lorsque le focus est déplacé vers un champ de mot de passe, Windows affiche une info-bulle si l'utilisateur a activé le verrouillage des majuscules. (Voir screendump here) Ce qui est OK - le mot de passe est sensible à la casse, il est donc bon que l'utilisateur s'informe qu'il doit désactiver le verrouillage des majuscules."Le verrouillage des majuscules est activé" -tooltip ne disparaît pas (Citrix? Codejock?)

Mais parfois, l'avertissement ne disparaît pas. Même après que le contrôle CEdit (et toute la fenêtre de vue) a été supprimé/détruit. Le "bulle d'info-bulle" reste à l'écran, en plus de tout le reste. (Masque les nouveaux contrôles.) La seule façon de s'en débarrasser est de fermer l'application et de la redémarrer.

Le problème n'apparaît pas si souvent, mais est très ennuyeux pour l'utilisateur quand il le fait. Pour autant que nous le sachions, cela ne concerne que les utilisateurs qui utilisent notre application sous Citrix - pas sur un PC autonome. Notre application utilise le code XTP de Codejock, mais l'info-bulle est localisée et semble donc être générée par Windows.

(1) Est-ce que quelqu'un sait ce que cela peut causer? Nous n'avons pas été en mesure de trouver quoi que ce soit à ce sujet en ligne! Serait-ce un problème de Citrix? Ou est-ce que nous nous trompons à propos de ce truc de Windows - est-ce que ça pourrait être un bug de Codejock?

(2) Existe-t-il un moyen de résoudre ce problème? (CEdit::HideBalloonTip/EM_HIDEBALLOONTIP ne vous aide pas.)

(3) S'il n'y a pas une solution au problème, peut-on désactiver le « verrouillage des majuscules sur » -tooltip complètement pour le contrôle CEdit? Mieux vaut ne pas montrer l'info-bulle du tout, que d'avoir ce problème.

+0

Si vous pouvez recréer le problème, vous voudrez peut-être essayer d'utiliser Spy ++ pour obtenir les caractéristiques de la fenêtre de la pointe de l'outil. Cela peut vous aider à déterminer si la fenêtre est toujours affichée (à partir de votre code) et vous permettre de la fermer. – rrirower

+0

Dans la fenêtre parent de 'CEdit', remplacer' OnLButtonDown' et appeler 'CEdit :: HideBalloonTip' ou' SetFocus() ', voir si l'infobulle se ferme lorsque l'utilisateur clique dans la fenêtre parente. –

Répondre