En clair lorsque je clique sur "ouvrire..." dans mon menu cela éxécute
ces instructions. Cela devrait ouvrire une boit de dialogue ( ça
fonctionne) et je doit pouvoir choisir dans les fichiers filtré (ça
fonctionne) et lorsque je clic sur ouvrire, cela devrait m'afficher le
texte contenu dans fichier dans mon controle ici hEdit (ça fonctionne
pas). J'ai cherché dans tous les sens et je trouve pas la réponse.
Avez vous une idée?
Et j'ai une deuxième question. Lorsque j'ai deux contro de type button
et que j'intercèpte l'évènement MN_CLICKED les instructions sont
éxécuté par tous les controle clicable (logique). Comment je fait pour
les identifier? exemple :
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 déc. 2005 à 15:03
if(D_bResult==TRUE){ //Si on a ouvert un fichier.
Ou est-ce que tu modifies D_bResult?
J'aurais plutot vu D_bResult = GetOpenFileName...
Ensuite regarde si le CreateFile et ReadFile n'echouent pas
Pour la deuxieme question, LOWORD(wParam) contient l'ID du bouton. BN_CLICKED n'est pas dans LOWORD(wParam) mais HIWORD(wParam)
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 29 déc. 2005 à 15:08
Tu à bien cerné le problème, mais cela ne fonctionne pas. J'ai testé ça
aussi tantot. Mais aucun résultat, j'ai beau cliqué sur l'un des 2
boutons mais aucune msgbox ne s'affiche.
Vous n’avez pas trouvé la réponse que vous recherchez ?
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 29 déc. 2005 à 15:11
Je n'ai pas précisé, mais ca vient peut-etre de la, je me suis tellement fait avoir...
Il faut que tes variables Button1 et Button2 soient définis en static ou en variables globales.
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 29 déc. 2005 à 15:21
vecchio :
if(D_bResult==TRUE) est modififé en faisant D+bResult=GetOpenFileName(&OpenFile)
et pour la deuxième question LOWORD(wParam) contient l'ID du bouton je
suis daccord mais mm à quoi veut tu que je le compare, a la création du
bouton il n'y avait un identificateur, du moin je le connai pas.
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 29 déc. 2005 à 15:24
Savon tu est un ange
cela venai bien du fait que je n'avait pas déclaré en static, mais
pourquoi faut t il déclarer en static? Tant que n'on change pas la
valeur de ces variables il n'y a pas de raison qu'elle change.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 déc. 2005 à 15:24
Eh ben tu lui en mets un (a la création, c'est le param hMenu (ne pas tenir compte du nom du paramètre)). Par exemple (HMENU)1 pour le premier et (HMENU)2 pour l'autre
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 29 déc. 2005 à 15:24
C pour ca qu'il faut que tu compares avec les handles de tes boutons.
Mais il faut que ceux-ci restent identique au cours de ton prog (d'ou le static HWND Button1 dans ta fonction de traitement des messages).
Sinon, il y a un moyen d'assigner un identifiant a tes boutons: la fonction SetWindowLong
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 29 déc. 2005 à 16:28
Je ne savait pas combien d'octet était allouer pour le type HWND. :D je ne mourrai pas imbécile aujourd'hui.
J'ai testé ta solution en mettant un id lors de la création des bouton.
je met donc par exemple (HMENU)11 , jusque la tout va bien, mais après
je fait un if((int)HIWORD(wParam)==11 mais cela ne fonctionne pas.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 déc. 2005 à 16:32
C'est quand même pas compiqué. Dans WM_COMMAND:
HIWORD(wParam) contient la notification (par exemple BN_CLICKED)
LOWORD(wParam) contient l'ID du controle (11 ici)
lParam contient le HWND du controle
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 déc. 2005 à 16:37
L'ID on l'a dans LOWORD(wParam), on va quand même pas appeler GetWindowLong pour faire joli... S'il faut vérifier que CreateWindowEx fait bien son boulot, ou va-t-on?
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 29 déc. 2005 à 16:39
Vérification de debug.
Jamais associé un identifiant de la sorte, je découvre avec ce que tu dis (et j'en suis ravi, c'est tellement simple).
Donc comme pas sur, ben je proposais de vérifier.
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 29 déc. 2005 à 16:41
Et pis faut dire que je pensais evident la remrque que t'as fait en meme temps que mon post.
Donc ben je cherchais d'ou pouvais provenir l'erreur.
Et comme la seule chose dont je n'étais pas sur était cette nouvelle façon (pour moi) d'associer un identifiant à un controle, ben j'ai logiquement proposé de vérifier.
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]