2009-06-09 8 views
0

Comment puis-je implémenter une barre de notification glissante non modale, telle que Firefox, Beyond Compare et VMware Workstation 6.5, dans les applications Windows côté client?Barres de notification non modales?

N'importe quel langage ou cadre est bon pour l'instant; mon application actuelle est en Delphi/C++ Builder, mais je suis également intéressé par la comparaison des frameworks et le prototypage de certaines interfaces utilisateur.

Question connexe: This question demande de le faire en Java.

Répondre

1

La barre de notification de Beyond Compare ne glisse pas, elle s'ouvre simplement, donc je ne peux pas offrir d'aide à ce sujet. La barre de notification elle-même est juste un TPanel avec un TImage et TLabel pour l'image/texte. Il est placé sur la fenêtre principale au moment du design et il est réglé pour aligner le fond. Normalement, il est caché, et quand il y a un message à afficher, nous définissons la propriété Visible sur true.

Il existe différentes manières de masquer la notification, selon la manière dont vous souhaitez qu'elle se comporte. En Colombie-Britannique, nous installons les crochets du clavier et de la souris (SetWindowsHookEx avec WH_KEYBOARD ou WH_MOUSE) et le cachons lors des événements de la touche et de la souris. Alternativement, comme Mark l'a dit, vous pouvez le cacher après un délai, ajouter un bouton de fermeture sur le côté, ou juste regarder des événements spécifiques dans votre application et le masquer manuellement alors.

0

Dans Delphi, je crois que vous pouvez modifier une propriété sur la boîte de dialogue lui-même (changer la fenêtre de type loin de « dialogue » et sélectionnez l'alternative fenêtré standard). Désolé, je ne peux pas être plus précis, cela fait environ deux ans que j'ai travaillé sur une application Delphi.

+0

Faire un dialogue non-modal est facile; Je suis plutôt intéressé par un moyen facile de créer des barres de notification qui font partie de la fenêtre parent. –

+0

Oups, désolé. Vous ne pouvez pas simplement mettre une barre d'état en bas et modifier la propriété de texte de la barre d'état? Alternativement, un panneau dont la hauteur est changée pour "l'ouvrir" et, après un délai, est revenu à zéro? –