IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Recuperer le HWND d'un dialogbox crée dans un fichier ressource


Sujet :

Windows

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    82
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 82
    Points : 57
    Points
    57
    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

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    10
    Par défaut
    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...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    82
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 82
    Points : 57
    Points
    57
    Par défaut
    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 ?

  4. #4
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    10
    Par défaut
    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...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    82
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 82
    Points : 57
    Points
    57
    Par défaut
    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

  6. #6
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    10
    Par défaut
    Tu peux montrer la ligne de code qui ouvre ta boite de dialogue ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  7. #7
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    82
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 82
    Points : 57
    Points
    57
    Par défaut
    merci deja pour ton temps

    donc dans mon .rc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #define ID_dialobox 1
    
         ID_dialobox DIALOGEX .....
    ....

    dans mon .c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    GetDlItem( je sais pas quoi mettre , ID_dialobox).
    pour avoir mon handle de ID_dialobox .

  8. #8
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    10
    Par défaut
    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...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  9. #9
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    82
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 82
    Points : 57
    Points
    57
    Par défaut
    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 ?

  10. #10
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    10
    Par défaut
    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...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  11. #11
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    82
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 82
    Points : 57
    Points
    57
    Par défaut
    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)

  12. #12
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PNG dans un fichier ressource
    Par Defaite dans le forum Bibliothèques
    Réponses: 10
    Dernier message: 21/08/2007, 14h27
  2. Group dans un fichier ressources
    Par rvzip64 dans le forum Delphi
    Réponses: 1
    Dernier message: 28/06/2007, 14h18
  3. des icons dans un fichier ressource (.RES)
    Par Karim1971 dans le forum Delphi
    Réponses: 5
    Dernier message: 23/01/2007, 21h26
  4. Réponses: 2
    Dernier message: 20/11/2006, 18h37
  5. un executable dans le fichier ressource
    Par joebilou dans le forum Windows
    Réponses: 4
    Dernier message: 28/06/2005, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo