Form n'apparaissant que lorsque le curseur est sur un bord de l'écran
cs_lagoelle
Messages postés102Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention17 mars 2009
-
21 avril 2005 à 12:04
cs_lagoelle
Messages postés102Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention17 mars 2009
-
25 avril 2005 à 08:18
Bonjour,
Ma question est dans le sujet. Je souhaites faire une appli avec une form qui serait chargée au démarrage et cachée. Cette form n'apparaitrait que lorsque le curseur de la souris irait contre un bord de l'écran. Comme la barre des taches de windows.
Quelqu'un a une idée?
Merci d'avance
@ plus
lagoelle
A voir également:
Form n'apparaissant que lorsque le curseur est sur un bord de l'écran
if (auBord == true) // ce test n'est pas obligatoire je pense, tout dépend de ton traitement
{
Form1.Show();
}
enfin je ne suis pas certain de ce que je propose...
Enfin, pour l'information, WorkingArea c'est la zone du bureau (donc sans les barres de tâches) et tu précises pas réellement si tu veux que ta form apparaisse quand tu TOUCHE le bors ou quand t'ARRIVE dans la barre des taches...enfin autrement, au lieu de WorkingArea, t'as aussi PrimaryScreenSize qui peut peut-être te servir, ou VirtualScreen (mais je ne suis pas sûr que ça marche ça...)
"Un seul Être vous manque, et tout est dépeuplé..."
cs_lagoelle
Messages postés102Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention17 mars 2009 21 avril 2005 à 16:07
Mais, je pense à un souci: où mettre ce code ?
Le but est que cette form soit accessible dès que le curseur atteint, par exemple, le bord haut de l'écran. Et ce même si je suis sur d'autres applis...
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 21 avril 2005 à 16:14
niahahhhh!!!
. . . . j'en sais rien .. . lol
hmmm...tu voudrais que ton appli tourne en arrière plan en fait...en gros c'est ça...et qu'elle apparaisse quand tu touche un bord...un peu comme les barres outils Windows quoi...bah je sais qu'en Java y'a des Listener...J'imagine qu'il doit y'en avoir aussi en C#...si t'arrives à mettre un Listener sur l'évènement qui gère le mouvement du curseur ou peut-être sur l'événement qui gèrerait la position du curseur (du style quand il est supérieur ou égal aux limites du bureau/écran...)
Là je suis un peu dans le flou aussi, mais en tous cas ça m'intéresse par curiosité de savoir...on peut continuer à réfléchir à 2 si tu veux... :)
"Un seul Être vous manque, et tout est dépeuplé..."
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 21 avril 2005 à 16:20
Quand le mouvement de la souris se fait en dehors du form ce n'est pas si simple.
Le seul moyen que je connaisse c'est un hook global (system-wide hook).
Mais il doit bien y avoir plus simple que ça (enfin, j'espère pour toi)
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 21 avril 2005 à 16:32
. . . euh je relève pas...lol je sais même pas de quoi il parle là donc euuuhh....je pensais pas que mon idée était la meilleure c'est sûr mais je voyais vraiment pas comment faire autrement...(d'un autre côté mes connaissances sont bien limitées étant donné que je débute :-D)
"Un seul Être vous manque, et tout est dépeuplé..."
mais ça marche pas...
Par contre, coq, je suis comme sphaxslayer, je comprends pas du tout le hook
Tant pis, si c'est trop compliqué, je vais gérer différemment... :-(
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 21 avril 2005 à 16:57
pas bête...en fait je me demande si c'est réellement faisable ce chose...enfin bon...'doit bien y'avoir un moyen même détourné...et si tu joues sur le MouseLeave dans la Form, et que dans l'action tu lui demandes de boucler sur la position du pointeur justment...? nan....?
"Un seul Être vous manque, et tout est dépeuplé..."
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 21 avril 2005 à 17:01
Une solution serait d'utiliser un Timer (intervalle d'une seconde ça devrait etre suffisant) pour verifier la position du curseur et afficher ou non le form.
Ce serait même moins lourd que de traiter tout les messages de deplacement de la souris (ça en fait un paquet par secondes ^^)
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 21 avril 2005 à 17:04
Sinon si, le hook global c'est faisable, mais pas completement en managé.
Ce que je me demande c'est s'il n'y aurais pas une notification toute prete dans les APIs pour prevenir de l'arrivée du curseur sur un des bord de l'écran.
cs_lagoelle
Messages postés102Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention17 mars 2009 22 avril 2005 à 14:52
J'ai pensé à une petite astuce: mettre une form de la largeur de l'écran et d'un pixel ou 2 de haut en position "toujours au dessus des autres fenetres", et gérer ainsi avec l'évenement mouse_enter.
Le hic c'est qu'il semble que VS n'accepte pas une hauteur inférieure à 24...
Si vous avez une idée ;-)
Sinon, dans le meme esprit, il faudrait dire à l'ordi que l'espace de travail est réduit de façon à créer une autre barre style démarrer....