|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Stéphane Fervant Étudiant Inscription : juin 2010 Messages : 43 ![]() |
salut a tous je souhaiterai savoir comment faire pour récupérer le HANDLE HWND d'une dialogbox crée a partir d'un fichier .rc car une fois dans le .Rc il a pas de handle .
j'ai voulus utilisé = GetDlItem() mais c est pas un item que je veux c est celui du dialogbox . merci bien |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Stéphane Fervant Étudiant Inscription : juin 2010 Messages : 43 ![]() |
salut a toi et merci pour ta reponse mais moi c est dans le cadre d'une programmation en C et interface du logiciel en winapi donc cdialog non c plus dans le c++ autre solution ?
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() |
Euh, sachant que tu as donc créé toi même ta boite de dialogue, tu devrais normalement avoir stocké quelque part on handle, afin de pouvoir la détruire, non ?
__________________
Si vous ne trouvez plus rien, cherchez autre chose... Chef de projet (et unique exécutant pour l'instant) pour Castor 3D |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Stéphane Fervant Étudiant Inscription : juin 2010 Messages : 43 ![]() |
oui je suis d'accord mais le probleme c est que la , lors qu'on crée en utilisant les ressource .rc on peux pas faire de handle
|
|
|
00
|
|
|
#7 | ||||
|
Candidat au titre de Membre du Club
![]() Stéphane Fervant Étudiant Inscription : juin 2010 Messages : 43 ![]() |
merci deja pour ton temps
donc dans mon .rc Code :
dans mon .c Code :
Code :
GetDlItem( je sais pas quoi mettre , ID_dialobox). |
||||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() |
La boîte de dialogue qui est créée via cette fonction est dite "modale" c'est à dire qu'elle est créée et qu'elle est bloquante, c'est à dire que la fonction DialogBox ne retournera qu'une fois la boîte de dialogue fermée et celle-ci n'existera donc plus.
Tu ne peux donc évidemment pas récupérer un handle de celle-ci. Si tu veux effectuer un traitement particulier, il te faut l'implémenter dans la fonction que tu peux passer à cette fonction (cf. ici pour un exemple) EDIT : A noter que dans ta fonction associée tu as le handle de la boîte de dialogue en premier argument.
__________________
Si vous ne trouvez plus rien, cherchez autre chose... Chef de projet (et unique exécutant pour l'instant) pour Castor 3D |
|
|
20
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Stéphane Fervant Étudiant Inscription : juin 2010 Messages : 43 ![]() |
j'ai analysé l exemple mais je pense pas avoir trop compris le probleme apart que mon dialogbox est modale dans ce sens que je dois cherché la réponse ?
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() |
A quel moment as-tu besoin de ton handle ?
Si c'est après l'appel de la fonction DialogBox, il n'existe plus et tu ne peux donc pas y accéder. Si c'est pendant l'exécution de la fonction DialogBox (et donc dans le code de la fonction associée que tu lui as donnée) alors c'est le premier paramètre de ta fonction associée. Où cherches-tu à avoir accès au handle de ta boîte de dialogue ?
__________________
Si vous ne trouvez plus rien, cherchez autre chose... Chef de projet (et unique exécutant pour l'instant) pour Castor 3D |
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Stéphane Fervant Étudiant Inscription : juin 2010 Messages : 43 ![]() |
dans la fonction de dialogbox oui j'ai pris le premier agr mais sans success pour cela j'avais crée dans ma fonction associé au dialog un wm_create et c est a que j'ai fait lappel au handle du dialog , aucune reponse et aucun action etait faite ?
j'ai essayé de faire l'appel dans le wm_create de ma fenetre principal mais toujours rien donc je sais pas quoi faire :s edit : je vais arreté de me prendre la tete je vais effacé ma dialogbox dans .rc et refaire dans mon .c avec createfile() et voila |
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() Emmanuel DelogetInscription : septembre 2007 Messages : 1 542 ![]() |
Je ne penses pas que la DialogProc soit utilisée tant que la dialogue n'est pas construite. En fait, puisque la dialog est décrite dans un fichier de ressource, Windows doit proposer un traitement très particulier, bien à lui et non modifiable dans WM_CREATE.
Par contre, WM_INITDIALOG devrait permettre toujours être exécuté (et renvoyer TRUE ou FALSE selon que la dialogue met le focus clavier sur un contrôle particlier ou non, si je ne me trompe pas). Donc pour autant que je me le rapelle, ce n'est pas WM_CREATE qu'il faut catcher, mais WM_INITIDIALOG (http://msdn.microsoft.com/en-us/library/aa931243.aspx).
__________________
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...] Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi. Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça. Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas. Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas. |
|
10
|
Copyright © 2000-2012 - www.developpez.com