Multi fenetre win32

malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 - 25 août 2004 à 14:01
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 - 25 août 2004 à 14:45
Hello,

J'ai un prog qui commence avec une image qui s'affiche, ensuite vient une console:

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR szCmdLine,int nCmdShow)
{
DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOGDEM), NULL, (DLGPROC) Demarrage);
return (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_MAIN),NULL,MainDlgProc);

}
<table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0><tr><td class=code>

Mon but est d'ajouter une étape intermédiaire avec des boutons radio, pour choisir quelle partie du programme on va charger. J'ai essayé ça:

<table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0><tr><td class=code>
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR szCmdLine,int nCmdShow)
{
DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOGDEM), NULL, (DLGPROC) Demarrage);
return (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),NULL,tentative);
}

...

BOOL CALLBACK tentative(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch((UINT)wParam)
{
case IDOK_RADIO:
if(SendMessage(GetDlgItem(hWnd,IDC_RADIO1),BM_GETCHECK,0,0) == BST_CHECKED)
return (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_MAIN),NULL,MainDlgProc);
if(SendMessage(GetDlgItem(hWnd,IDC_RADIO5),BM_GETCHECK,0,0) == BST_CHECKED)
return EndDialog(hWnd,0);
...


Ca foire: hInst n'est pas visible dans "tentative"....

Quelqu'un me sort de là??? Thanx!

Malik7934

3 réponses

DevGizmo Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 27 février 2007 1
25 août 2004 à 14:23
il faut que l'insatnce soit mise en var globale,
si tu as visual studio, inspire toi du
project hello word
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
25 août 2004 à 14:32
j'vais greuber ça, thanx...
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
25 août 2004 à 14:45
Ok, la variable global, ça a pour effet que ça tourne. Par contre, mon menu (Tentative2) apparaît en transparent quoi que je lui mette comme propriétés dans VC++6!!!
Une idée?

Voici un fragment de code:

...
HWND hdlgdem;
HINSTANCE hInst;

LRESULT CALLBACK Demarrage (HWND hdlgdem, UINT msg, WPARAM wParam, LPARAM lParam)
{...}

LRESULT CALLBACK Tentative2 (HWND hWndtent, UINT msg, WPARAM wParam, LPARAM lParam)
{

switch(msg)
{
case WM_INITDIALOG:
 		break;

        case WM_COMMAND:
switch((UINT)wParam)
{
case IDOK_RADIO:
if(SendMessage(GetDlgItem(hWndtent,IDC_RADIO5),BM_GETCHECK,0,0) == BST_CHECKED)
return EndDialog(hWndtent,0);
if(SendMessage(GetDlgItem(hWndtent,IDC_RADIO1),BM_GETCHECK,0,0) == BST_CHECKED)
{EndDialog(hWndtent,0);
return (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_MAIN),NULL,MainDlgProc);
}default:
return FALSE;
}
break;
}
return TRUE; 
}

...

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR szCmdLine,int nCmdShow)
{
DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOGDEM), NULL, (DLGPROC) Demarrage);
return DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC) Tentative2);

}

BOOL CALLBACK MainDlgProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{...}

0
Rejoignez-nous