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

Visual C++ Discussion :

DialogBox en release et debug


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Par d�faut DialogBox en release et debug
    Bonjour,

    Sous visual C++ 2005 express
    J'affiche une dialogue box avec :
    DialogBox(hInst, _T("INPUT_MODE_DIALOG") , hwnd_mode, (DLGPROC)Dialog1Proc);

    Le comportement est diff�rent en debug / release.
    En Debug pas de soucis. En Release la fen�tre n'est pas affich�e.
    Ai-je oubli� un message ?

    et voici pour la gestion des messages
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    BOOL APIENTRY Dialog1Proc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
    {
     
        switch (uMsg)
        {
        case WM_INITDIALOG:
            {
                if(mode.TinyTrak3 == TRUE)
                    CheckDlgButton(hDlg, ID_MODE_CB_TINITRAK, BST_CHECKED);
                if(mode.FullSerial == TRUE)
                    CheckDlgButton(hDlg, ID_MODE_CB_FULLSERIAL, BST_CHECKED);
                return TRUE;
            }
        case WM_COMMAND:
     
            if (LOWORD(wParam) == ID_MODE_CB_FULLSERIAL)
            {
                if (IsDlgButtonChecked(hDlg, ID_MODE_CB_FULLSERIAL)) 
                {
                    CheckDlgButton(hDlg, ID_MODE_CB_TINITRAK, BST_UNCHECKED);
                }
            }
            if (LOWORD(wParam) == ID_MODE_CB_TINITRAK)
            {
                if (IsDlgButtonChecked(hDlg, ID_MODE_CB_TINITRAK))
                {
                    CheckDlgButton(hDlg, ID_MODE_CB_FULLSERIAL, BST_UNCHECKED);
                }
            }
            if (LOWORD(wParam) == IDOK )
            {
                if(IsDlgButtonChecked(hDlg, ID_MODE_CB_TINITRAK) == BST_CHECKED)
                {
                    mode.FullSerial = FALSE;
                    mode.TinyTrak3 = TRUE;
                }
                else  
                {
                    mode.FullSerial = TRUE;
                    mode.TinyTrak3 = FALSE;
                }
     
                EndDialog(hDlg,0);
                return TRUE;
            }
            if (LOWORD(wParam) == IDCANCEL)
            {
                EndDialog(hDlg,0);
                return TRUE;
            }
     
        default:
            DefWindowProc(hDlg,uMsg,wParam,lParam);
            return FALSE;
        }
    }
    pense � mettre la balise de code,Merci Farscape

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    1. S'il y a un cast sur le pointeur de fonction, c'est g�n�ralement qu'il y a un soucis (sous la derni�re version une dialogproc retourne un INT_PTR et le qualificateur est g�n�ralement CALLBACK et non APIENTRY (m�me si c'est la m�me chose)).
    2. Une proc�dure de bo�te de dialogue n'appelle pas DefWindowProc(). C'est pourtant marqu� dans l'aide...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Par d�faut
    et ...
    m�me sans le cast le soucis reste.

    Ok pour DefWindowProc() mais je l'avais rajout� car je ne savais que faire

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Eh bien, je ne vois pas grand-chose d'autrr de choquant...
    Mais je te conseille d'utiliser un deuxi�me switch pour le WM_COMMAND au lieu de ces If...

    Et aussi, tu devrais voir un peu ce qui se passe avec GetLastError() et FormatMessage(), au cas o� une fonction �choue...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Par d�faut La R�ponse
    Je n'avais pas initialiser un pointeur... que je remplace par NULL.
    Je ne sais pas pourquoi cela fct en mode DEBUG...

    DialogBox(hInst, _T("INPUT_MODE_DIALOG") , NULL, (DLGPROC)DialogpersoProc);

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Donc, dor�navant �a marche?
    Tant mieux.
    Mais relis mon post au sujet du cast...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 15
    Dernier message: 25/11/2012, 11h51
  2. Compilation Release ou Debug d'une DLL
    Par mulfycrowh dans le forum Visual C++
    R�ponses: 5
    Dernier message: 25/05/2010, 22h07
  3. [Debug-Release] Informations debug en release par d�faut
    Par AsPrO dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 17/06/2009, 16h10
  4. Dll avec un nom diff�rent en release et debug
    Par julien.sagnard dans le forum C++Builder
    R�ponses: 0
    Dernier message: 23/01/2008, 12h24
  5. R�ponses: 2
    Dernier message: 20/06/2007, 10h27

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