[C con Clase] paso de paámetros a dialogbox
Steven Davidson
srd4121 en njit.edu
Sab Mayo 9 01:51:48 CEST 2009
Hola Adolfo,
Adolfo Cárdenas wrote:
> Hola a todos
>
>
> ¿Como puedo pasar parámetros a un cuadro de dialogo?
> Deseo pasar la siguiete estructura:
>
> struct s
> {
> int* p_i;
> };
>
Si se trata de un cuadro de diálogo modal, típicamente creado invocando
'DialogBox()', entonces podemos usar la función 'DialogBoxParam()' para
pasar un valor al cuadro de diálogo modal. Esto se explica en el
capítulo 6 de nuestro curso del API de MS-Windows. Puedes ir
directamente a:
http://winapi.conclase.net/curso/index.php?cap=006b#DIAL_PARAMETROS
Básicamente, pasamos un valor como el 'lParam' al procedimiento del
cuadro de diálogo. En tu caso, haríamos lo siguiente,
LRESULT CALLBACK WindowProcedure( ... )
{
s datos;
...
DialogBoxParam( hInst, "MiDialogo", hwnd, DlgProc,
reinterpret_cast< LPARAM >( &datos ) );
...
return 0;
}
BOOL CALLBACK DlgProc( HWND hDlg, UINT msg,
WPARAM wParam, LPARAM lParam )
{
static s *ptr;
switch( msg )
{
case WM_INITDIALOG:
ptr = reinterpret_cast< s* >( lParam );
return TRUE;
case WM_COMMAND:
EndDialog(hDlg, FALSE);
return TRUE;
}
return FALSE;
}
Espero que esto te ayude.
Steven
Más información sobre la lista de distribución Cconclase