[C con Clase] Parámetro lParam en un DialogBoxParam

Juan Pedro Mermoz jpmermoz en hotmail.com
Lun Nov 30 14:40:23 CET 2009


Hola! Tengo el sig problema enviando como parámetro una variable.
La variable que estoy enviando es "id" y es un entero, se envia desde el main de la sig forma:

DialogBoxParam(GetModuleHandle(NULL), "MODIFICARCONTACTO", hDlg, DlgProcModificar, (LPARAM) id);

El problema es que la variable es utilizable dentro de la función solo en el case WM_INITDIALOG, si la quiero reutilizar en WM_COMMAND, la variable ya tiene otro contenido, lo raro es que en ningún momento la modifico.
También probé crear otra variable e igualarla a "id" para poder usarla pero ocurre lo mismo. Sólo es utilizable en WM_INITDIALOG.

Para que se entienda un poco mejor, la funcion seria asi:

BOOL CALLBACK DlgProcModificar(HWND hDlg, UINT mensaje, WPARAM wParam, LPARAM id)
{
    switch (mensaje)
    {
        case WM_INITDIALOG:
        /////
        //En este punto, id muestra bien su contenido
        return TRUE;

        case WM_COMMAND:
        switch (LOWORD(wParam))
        {
            case ID_BUTTON:
            /////
            //Ahora si uso un MessageBox para mostrar id, muestra otra cosa
            break;
        }
        return TRUE;
     }
     return FALSE;
}

Aclaro tambien que intenté realizar casteos de la variable para convertirla a int y despues usarla, pero tampoco sirvio, y tambien utilicé sprintf para convertirla a un texto estático y tampoco..

Espero que puedan darme una mano
Saludos y gracias!

Juan Pedro


Más información sobre la lista de distribución Cconclase