[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