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

MFC Discussion :

Probl�me avec la m�thode OnInitDialog


Sujet :

MFC

  1. #1
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut Probl�me avec la m�thode OnInitDialog
    Bonjour,

    j'ai un petit soucis avec une CDialog : lors d'un appel du type madialog.DoModal() sa m�thode OnInitDialog n'est pas appel�e ... je ne comprends vraiment pas pourquoi ...

    Si quelqu'un vois comment s'en sortir merci d'avance

    PS : quand je fais la d�claration CDialog madialog (juste avant le MoModal() ) l'appel au constructeur se fait bien

  2. #2
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    Ta classe madialog d�rive bien d'un CDialog. Tu dois cr�er ta propre classe CMadialog afin de pouvoir surcharger cette m�thode OnInitDialog

    L'orthographe de ta fonction est correct ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    	virtual BOOL OnInitDialog();
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Oui ne t'inqui�tes pas c'est bien une surcharge de CDialog, mais pour que tlm comprennes bien j'ai "simplifi�"

    Mon code exact :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
        CAddNoteDlg win(true, NULL, this);
        win.DoModal();
    La syntaxe est quant � elle exacte.

  4. #4
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    On peut voir le .h et le .cpp car pour l'instant, cela � l'air bon
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    On peut voir le .h et le .cpp car pour l'instant, cela � l'air bon
    mon .cpp fait plus de 1600 lignes donc �a va �tre un peu dur

    Je vais juste te copier les r�f�rences au OnInitDialog :
    dans le .h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    virtual BOOL OnInitDialog();
    dans le .cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    BOOL CAddNoteDlg::OnInitDialog()
    {
        CDialog::OnInitDialog();
     
        .......
    }
    Le soucis est que je ne rentre jamais dans le OnInitDialog ... pour info cette classe marchait tr�s bien dans un autre projet

    Mon IDD est bien d�finit, mais je pense que le probl�me doit venir de l�, car pour "importer" ma classe ainsi que ces ressources j'ai fait pas mal de modifications "� la main". Apr�s je ne vois pas comment le r�soudre

  6. #6
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    rebuild all ?
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  7. #7
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Si par l� tu veux dire "rebuild solution" oui test�, mais sans effet.
    J'ai m�me supprim� le .ncb, sans effet non plus.

  8. #8
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    OnInitDialog est appel�e suite � un message WM_INITDIALOG.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    INT_PTR CALLBACK AfxDlgProc(HWND hWnd, UINT message, WPARAM, LPARAM)
    {
        if (message == WM_INITDIALOG)
        {
            // special case for WM_INITDIALOG
            CDialog* pDlg = DYNAMIC_DOWNCAST(CDialog, CWnd::FromHandlePermanent(hWnd));
            if (pDlg != NULL)
                return pDlg->OnInitDialog();
            else
                return 1;
        }
        return 0;
    }
    alors si il ne passe pas dedans c'est peut �tre parce qu'il y a un probl�me d'initialisation graphique de ta fen�tre.
    met un point d'arr�t dans dodataexchange.
    trace pas � pas .
    et surtout surveille bien le panneau de sortie pour voir si il n' y a pas de message d'erreur signal�....

  9. #9
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    �a ne passe pas dans DoDataExchange, cependant je pense que c'est normal vu que DoDataExchange est sens� �tre lanc�e par la m�thode OnInitDialog de CDialog, non ?

    Pas de message d'erreur dans Output

  10. #10
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    trace domodal , tu dois forcement avoir une erreur sur l'appel de CreateDlgIndirect par exemple.

  11. #11
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    En effet l'appel de CreateDlgIndirect renvoie false : que faire ?

  12. #12
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    probablement un probl�me dans les identifiants et les valeurs des ressources.

    Il croit que l'identifiant du dialogue est 1052 alors que dans les ressources, c'est 4154 par exemple.

    V�rifie bien bien tes ressources et leurs identifiants et quand tu as fini, rev�rifie encore
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  13. #13
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Le truc c est que je ne vois pas comment c est possible :
    dans mon .h j'ai :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
        enum { IDD = IDD_ADDNOTE };
    et dans le fichier des ressources :

  14. #14
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    il est possible que la section dans le fichier .rc soit v�rol�e ,tu n'as pas transf�r� cette dialogue d'un projet � l'autre ?
    d'une version de Visual � une autre ?
    j'ai d�j� eu un probl�me de ce genre avec une section utilisant DIALOGEX � la place DIALOG.
    ce que tu peux faire c'est cr�er une autre dialogue et copier les contr�les un par un dans la nouvelle bo�te et tu testes apr�s chaque copie .
    n'oublie pas de changer l'identifiant de ta dialogue dans le .h de ta classe ...

  15. #15
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Oui je dois avouer que j'ai �dit� le .rc � la main pour r�cup�rer tous les contr�les et sur l'�diter graphique le r�sultat est celui escompt�.

    J'ai suivi le d�roulement de CreateDlgIndirect et je suis arriv� � la ligne qui pose probl�me :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
            hWnd = ::CreateDialogIndirect(hInst, lpDialogTemplate, pParentWnd->GetSafeHwnd(), AfxDlgProcEx);
    cette ligne renvoie NULL et GetLastError() nous signale une erreur 120, c'est-�-dire :
    ERROR_CALL_NOT_IMPLEMENTED120 (0x78) This function is not supported on this system.
    Il doit falloir signaler que ma classe � besoin des ressources pour Windows Mobile, mais j'ai beau v�rifier avec d'autres qui fonctionnent bien, je ne vois pas que rajouter

  16. #16
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    pour copier une dialogue d'un projet a l'autre on ne touche pas au fichier .rc...
    on ouvre dans le projet de destination le fichier .rc d'origine et on utilise copier coller pour r�cup�rer la fen�tre...

  17. #17
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    J'ai copier-coller les sections correspondant � la dialog qui m'int�resse, car m�me si j'ouvre le .rc d'origine dans mon projet de destination il n'y a pas moyen de coller la dialog une fois copi�e ...

    ce que tu peux faire c'est cr�er une autre dialogue et copier les contr�les un par un dans la nouvelle bo�te et tu testes apr�s chaque copie .
    �a n'a rien chang�

  18. #18
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    tu peux citer les diff�rents types de contr�le que tu as plac� sur cette fen�tre ? (CEdit etc..)

  19. #19
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    IDD_ADDNOTE DIALOG  0, 0, 256, 329
    STYLE DS_SETFONT | WS_POPUP | WS_CAPTION
    FONT 8, "MS Sans Serif"
    BEGIN
        COMBOBOX        IDC_HORAIRE,8,16,83,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
        EDITTEXT        IDC_LIBELLE,27,165,168,25,ES_CENTER | NOT WS_BORDER
        CONTROL         "",IDC_NOTE,"RichEdit20W",WS_VSCROLL | WS_TABSTOP | 0x1044,30,204,168,72
        COMBOBOX        IDC_HEURE,23,60,42,12,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
        COMBOBOX        IDC_HEURE2,22,90,42,12,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
        COMBOBOX        IDC_CATEGORIE,27,145,66,12,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
        PUSHBUTTON      "Valider",IDC_VALIDER,152,279,84,12,NOT WS_TABSTOP
        LTEXT           "Heure de début : ",IDC_TEXTHEURE,19,47,59,8
        LTEXT           "Heure de fin : ",IDC_TEXTHEURE2,18,79,59,8
        PUSHBUTTON      "Supprimer",IDC_SUPPRIMER,67,279,84,12,NOT WS_TABSTOP
        GROUPBOX        "         Modifier les heures ",IDC_MODEHEURES,8,38,123,101,WS_DISABLED
        LTEXT           "Période :",IDC_TEXTPERIODE,8,8,30,8
        CONTROL         "",IDC_LECTURE,"Button",BS_OWNERDRAW,176,7,30,24
        CONTROL         "",IDC_LECTURE2,"Button",BS_OWNERDRAW,176,38,30,24
        CONTROL         "",IDC_STOP,"Button",BS_OWNERDRAW,206,7,30,24
        CONTROL         "",IDC_STOP2,"Button",BS_OWNERDRAW,206,38,30,24
        LTEXT           "Rappel : ",IDC_TEXTTIMER,35,108,59,8
        COMBOBOX        IDC_TIMER,24,118,42,12,CBS_DROPDOWNLIST | WS_VSCROLL
        CONTROL         "",IDC_CHECKTIMER,"Button",BS_AUTOCHECKBOX,17,107,16,10
        CONTROL         "",IDC_CHECKMODE,"Button",BS_AUTOCHECKBOX,15,38,8,10
    END
    Pour en revenir � ta m�thode pour importer une ressource dialog, mon soucis est que VS plante d�s que j'essaye (avec cette dialog ou n'importe quelle autre ) d�s que je fais "Insert copy ..."

  20. #20
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    h� bien d�j� je dirais qu'il n'y a pas de richedit sous windows mobile.
    la liste des contr�les autoris�s est celle de la boite d'outils dans l'�diteur de ressources.
    Tu constateras que la liste n'est pas la m�me qu'un projet Windows.

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. [Runtime] Probl�me avec la m�thode 'exec'
    Par regisba dans le forum API standards et tierces
    R�ponses: 1
    Dernier message: 25/08/2006, 13h36
  2. Probl�me avec la m�thode request.form()
    Par sam.fet dans le forum ASP
    R�ponses: 2
    Dernier message: 11/08/2006, 17h11
  3. [POO] Probl�me avec setInterval/m�thodes d'�criture
    Par Lpu8er dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 18/07/2006, 15h37
  4. probl�me avec la m�thode getElementById() dans Firefox
    Par matrouba dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 19/12/2005, 08h55
  5. Probl�me avec la m�thode pack()
    Par tomca dans le forum Langage
    R�ponses: 5
    Dernier message: 15/09/2005, 10h58

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