ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 2014
-
15 juin 2007 à 22:12
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 2014
-
18 juin 2007 à 00:44
Bonjour,
Comment faire pour qu'une fenêtre parent (hwnd dans l'exemple ci-dessous) sache lorsque la souris de l'utilisateur passe sur un de ces contrôles (static,edit...) ?
Mes contrôles sont déclarés ainsi :
Wnd01 = CreateWindowEx(0, "STATIC", "", WS_VISIBLE|WS_CHILD, 10, 10, 400, 20, hwnd, 0, NULL, NULL );
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 15 juin 2007 à 23:18
Salut,
Une solution consiste à sous-classer les controles. Dans la procédure de sous-classement tu interceptes le message WM_MOUSEMOVE (pour les EDITs) ou WM_NCHITTEST (pour les STATICs) avant de les renvoyer à la fenêtre mère sous forme de message personnalisé. Tout dépendra ensuite de ce que tu veux faire exactement.
Si je comprend bien votre réponse, il faudrait que je crée une procédure pour chaque type de contrôles.
Est-ce celà?
Je voulais seulement intercepter ces messages pour afficher, dans la barre de status de la fenêtre principale, l'action des boutons, le contenu des champs...
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 15 juin 2007 à 23:52
Si tu veux intercepter WM_NCHITTEST tu peux utiliser une seule procédure pour tous les controles. Via ton message personnalisé, la fenêtre mère recevra le HWND du controle survolé par le curseur de la souris. Avec GetWindowText(), tu récupères le texte du controle avant de l'afficher dans la StatusBar. Si tu veux afficher le role des boutons, tu peux utiliser un switch() sur les identificateurs des boutons pour ensuite afficher dans la StatusBar le texte correspondant dans chaque case.
ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 20144 17 juin 2007 à 22:39
Bonjour,
Enxore merci pour votre aide.
J'essaierai d'exploiter cette technique plus tard mais n'y aurait-il pas un moyen pour que la fenêtre parent recoive immédiatement un message lorsque la souris survolle un de ses controles?
<hr />
Merci d'avance et à bientôt.
Nico
Vous n’avez pas trouvé la réponse que vous recherchez ?