DialogBox qui appelle une DialogBox
Bonjour,
Dans mon appli je fais appel à une boite de dialogue dans laquelle je suis amené à rechercher des élément via une seconde boite de dialogue.
Pour passer l'information j'utilise "SetWindowLong ()" mais au retour une fois récupéré par "GetWindowLong()", l'application plante.
http://www.photosreflex.net/temp/erreur_visualc.jpg
Pourtant j'affiche bien le bon resultat par MessageBox() ...
Il a sûrement quelque chose ...
Comment passer une structure d'un dialogue à un autre ...
Si quelqu'un a une idée
Merci d'avance
DialogBox appelante :
Code:
1 2 3 4 5 6 7
| case BN_CLICKED:
DialogBox(hInst, MAKEINTRESOURCE(Libpredef), hDlg, LibpredefDlgProc);
lbpdef = (LIBPREDEF *)GetWindowLong(hDlg, DWL_USER);
strcpy(szBuffer, lbpdef->LibPredef);
MessageBox (hDlg, szBuffer, szAppName, MB_OK | MB_ICONEXCLAMATION);
SetDlgItemText (hDlg, IDC_OBJET, szBuffer, strlen(szBuffer));
break; |
DialogBox appelée :
Code:
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
| BOOL CALLBACK LibpredefDlgProc (HWND hDlg, UINT message, UINT wParam, LONG lParam)
{
HGLOBAL hglb;
LIBPREDEF *lbpdef;
switch (message)
{
case WM_INITDIALOG:
if (hglb = GlobalAlloc(GPTR,sizeof(LIBPREDEF))) {
if (lbpdef = (LIBPREDEF *)GlobalLock(hglb)) {
SetWindowLong(GetParent(hDlg),DWL_USER,(LONG)lbpdef);
lbpdef->hglb = hglb;
strcpy(lbpdef->LibPredef, "Test transition de données");
return(0L);
}
GlobalFree(hglb);
}
return TRUE;
case WM_COMMAND:
switch (wParam)
{
case IDOK :
case IDCANCEL :
EndDialog (hDlg, 0) ;
return TRUE ;
}
break ;
}
return FALSE ;
} |