Dialogue procedure dans une classe

Résolu
bioopovega Messages postés 22 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 18 août 2009 - 11 févr. 2007 à 20:30
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 12 févr. 2007 à 00:35
Bonjour,

D'abord, je ne sais pas si cela correspond bien au thème, mais je ne sais pas ou le mettre.

J'ai un probleme, je crée une boite de dialogue a partir d'une classe personnalisée, je réussi à la créer et à l'afficher, mais je ne peux pas coder mes message, ni wm_create, ni wm_command. Je vous met le code, je pense que le probleme viens de l'appel à la fonction ObjectDlgProc. 

voici le code :

fichier object.cpp :

/**********************************
Fonction CreateDialogBox
Fonction de creation de la boite de dialogue objet
**********************************/
void cObject::CreateDialogBox(HWND hDlg, HINSTANCE hinst, UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    DialogBox(hinst, "OBJECTDLG" , hDlg, (DLGPROC)ObjectDlgProc(hDlg,uMsg,wParam,lParam));
}


/**********************************
Fonction ObjectDlgProc
Fonction de gestion des messages de la boite de dialogue objet
**********************************/
BOOL APIENTRY cObject::ObjectDlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    switch (uMsg)
    {


        case WM_INITDIALOG:
            ObjDlg.OnInitDialog(hDlg);
            return TRUE;
        break;


        case WM_COMMAND:
            if (LOWORD(wParam) == ID_OBJECT_BUTTON_QUITTER)
            {
                EndDialog(hDlg,0);
                return TRUE;
            }
            if (LOWORD(wParam) == ID_OBJECT_BUTTON_SAVE)
            {
                //ObjDlg.SaveObject(hDlg);
            }


        default:
            return FALSE;
    }
}

merci

bioopo

1 réponse

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
12 févr. 2007 à 00:35
Il faut 2 proc, une statique (globale de classe) qui sauve le ptr this et une autre d'instance pour gérer les events.


Exemple commenté sur ce problème :

http://www.cppfrance.com/codes/PIECHART-SUR-DIALOG-SANS-RESSOURCE_41380.aspx
3
Rejoignez-nous