solidsnake88
Messages postés27Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention13 novembre 2006
-
26 oct. 2006 à 21:17
solidsnake88
Messages postés27Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention13 novembre 2006
-
29 oct. 2006 à 14:48
Bonjour à tous,
juste une question a propos de l'interception de WM_KEYDOWN par une boite de dialogue qui possede des controles a l'interieur. J'ai vu l'anbondante litterature qu'il y a dessus sur ccpFrance mais pas de reponse claire. Normalement le focus va sur le premier bouton. Donc il recupere tout les evenement et je ne peux pas les trouver dans ma fenetre. Mais c'est precisement ce que je voudrais faire. Je voudrais recuperer tout les KEYDOWN qui arrive sur ma fenetre en entier. J'essaye de tout faire avec le fabuleux visual studio .NET pour faire style que je sais me servir de cette belle interface graphique mais si ca continue je retourne sous GTK. Alors si vous ave une solution... ca serais bien d'exploiter cette belle interface! Comment le faire avec les bouton de visuals, a la souris comme les jeunes. Je vous serais tres reconnaissant.
solidsnake88
Messages postés27Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention13 novembre 2006 27 oct. 2006 à 18:20
En fait ou doit on mettre tout ce dont parle racpp. Il faut bien le mettre dans la classe du controle que l'on desire modifie. Et ou trouve t on cette classe? La ca va beaucoup m'aider. Je suis coince la dessus en fait.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 28 oct. 2006 à 01:57
vecchio56 >> Il est vrai que la solution du GetClassName() ne convient pas bien si on a beaucoup de types de controles. En général, les seules controles qu'on a besoin de sous-classer sont les Edits et les Boutons. Ainsi, un simple test de la chaine retournée par GetClassName() permet d'appeller l'une ou l'autre OldProc.
J'utilise souvent l'association de valeurs aux controles avec SetWindowLong() surtout quand il s'agit d'une fonction de sous-classement pour plusieurs controles du même type mais avec des traitements spéciaux pour certains d'entre eux. Avec un switch et un case pour chacune des valeurs les choses vont parfaitement. Je trouve l'idée d'associer la WNDPROC comme valeur excellente.
solidsnake >> Il parait que tu travailles avec les MFC. Pour utiliser mon exemple, tu dois faire un projet win32 sans MFC. Tu créeras ta boite de dialogue avec l'éditeur de ressource qui te donnera le fichier .rc. Chaque controle aura un identificateur unique. La fonction GetDlgItem() te permet de retrouver les HWND de tes boutons et edits pour pouvoir les utiliser avec SetWindowLong().
solidsnake88
Messages postés27Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention13 novembre 2006 28 oct. 2006 à 10:51
Impec, tout fonctionne comme sur des roulette et je suis plus oblige d'utiliser ces sales MFC. Je vais retourner sous Qt. Mon boss m'a donne le choix apres cette periode d'essai mais je prefere Qt. Et vous vous seriez plutot Qt ou GTK tant qu'a faire je demande.