Précédent   Forum des professionnels en informatique > Général Développement > Programmation système > Windows
Windows Forum d'entraide sur la programmation Windows. Tutoriel API Windows
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 10h02   #1
Candidat au titre de Membre du Club
 
Stéphane Fervant
Étudiant
Inscription : juin 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Stéphane Fervant

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 43
Points : 13
Points : 13
Par défaut Recuperer le HWND d'un dialogbox crée dans un fichier ressource

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
Shark9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 10h49   #2
Membre Expert
 
Homme Sylvain DOREMUS
Ingénieur - Développeur
Inscription : juin 2005
Messages : 534
Détails du profil
Informations personnelles :
Nom : Homme Sylvain DOREMUS
Âge : 30
Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur - Développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 534
Points : 1 066
Points : 1 066
Envoyer un message via MSN à dragonjoker59
Si tu es bien dans le code de ta CDialog, un GetSafeHwnd devrait faire ton affaire
__________________
Si vous ne trouvez plus rien, cherchez autre chose...

Chef de projet (et unique exécutant pour l'instant) pour Castor 3D
dragonjoker59 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/01/2012, 11h02   #3
Candidat au titre de Membre du Club
 
Stéphane Fervant
Étudiant
Inscription : juin 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Stéphane Fervant

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 43
Points : 13
Points : 13
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 ?
Shark9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 12h24   #4
Membre Expert
 
Homme Sylvain DOREMUS
Ingénieur - Développeur
Inscription : juin 2005
Messages : 534
Détails du profil
Informations personnelles :
Nom : Homme Sylvain DOREMUS
Âge : 30
Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur - Développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 534
Points : 1 066
Points : 1 066
Envoyer un message via MSN à dragonjoker59
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
dragonjoker59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 12h34   #5
Candidat au titre de Membre du Club
 
Stéphane Fervant
Étudiant
Inscription : juin 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Stéphane Fervant

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 43
Points : 13
Points : 13
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
Shark9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 13h28   #6
Membre Expert
 
Homme Sylvain DOREMUS
Ingénieur - Développeur
Inscription : juin 2005
Messages : 534
Détails du profil
Informations personnelles :
Nom : Homme Sylvain DOREMUS
Âge : 30
Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur - Développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 534
Points : 1 066
Points : 1 066
Envoyer un message via MSN à dragonjoker59
Tu peux montrer la ligne de code qui ouvre ta boite de dialogue ?
__________________
Si vous ne trouvez plus rien, cherchez autre chose...

Chef de projet (et unique exécutant pour l'instant) pour Castor 3D
dragonjoker59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 13h55   #7
Candidat au titre de Membre du Club
 
Stéphane Fervant
Étudiant
Inscription : juin 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Stéphane Fervant

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 43
Points : 13
Points : 13
merci deja pour ton temps

donc dans mon .rc
Code :
1
2
3
4
#define ID_dialobox 1

     ID_dialobox DIALOGEX .....
....

dans mon .c
Code :
1
2
3
4
5
6
j'ai le handle qui correspond a un bouton qui appel le dialog puis
    dans case wm_command:
      swicht(loword(wparam)
{
dialogbox (hinst, makeintresource(ID_dialobox), fenetrePrincipal , ma fonction associé);
et pour ma fonction
Code :
GetDlItem( je sais pas quoi mettre , ID_dialobox).
pour avoir mon handle de ID_dialobox .
Shark9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 14h29   #8
Membre Expert
 
Homme Sylvain DOREMUS
Ingénieur - Développeur
Inscription : juin 2005
Messages : 534
Détails du profil
Informations personnelles :
Nom : Homme Sylvain DOREMUS
Âge : 30
Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur - Développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 534
Points : 1 066
Points : 1 066
Envoyer un message via MSN à dragonjoker59
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
dragonjoker59 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 09/01/2012, 14h57   #9
Candidat au titre de Membre du Club
 
Stéphane Fervant
Étudiant
Inscription : juin 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Stéphane Fervant

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 43
Points : 13
Points : 13
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 ?
Shark9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 15h57   #10
Membre Expert
 
Homme Sylvain DOREMUS
Ingénieur - Développeur
Inscription : juin 2005
Messages : 534
Détails du profil
Informations personnelles :
Nom : Homme Sylvain DOREMUS
Âge : 30
Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur - Développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 534
Points : 1 066
Points : 1 066
Envoyer un message via MSN à dragonjoker59
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
dragonjoker59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 16h10   #11
Candidat au titre de Membre du Club
 
Stéphane Fervant
Étudiant
Inscription : juin 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Stéphane Fervant

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 43
Points : 13
Points : 13
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 merci de l'aide (y)
Shark9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h45   #12
Expert Confirmé
 
Emmanuel Deloget
Inscription : septembre 2007
Messages : 1 542
Détails du profil
Informations personnelles :
Nom : Emmanuel Deloget
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : septembre 2007
Messages : 1 542
Points : 2 905
Points : 2 905
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.
Emmanuel Deloget est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h04.


 
 
 
 
Partenaires

Hébergement Web