Usuario: anónimo

Usuarios en línea: 1
Invitados: 1

FAQ

Hilo

10m
Controles de Windows API 32
U(Daniel de Dios) 2020-02-01 17:41:04

Hola:

   Me he bajado todo el curso de WinApi23, los primeros ejemplos han funcionado correctamente, pero yo a lo mio, así que he ido directamente al ejemplo 49 que me interesaba.  Compila bien, pero a la hora del Link, todas las funciones de fuentes y colores, dan problemas y no se genera el ejecutable.

He quitado todo lo referente a ellas, y funciona.  Luego he añadido otro EDIT, y al ejecutarse el programa entra en el primer EDIT, y ya no sale de allí a no ser que uses el ratón.  Ni el ENTER ni el TAB pasan de un control a otro.  Llevo 3 días pegándome con este problema.  He intentado añadir el WM_KEYDOWN<http://winapi.conclase.net/curso/?winmsg=WM_KEYDOWN#inicio> pero por mucho que teclees en el control, no pasa por él.  ¿Qué me podéis decir al respecto?

/*  Esta función es invocada por la función DispatchMessage()  */

LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

    static HINSTANCE hInstance;

    /* Variables para diálogo */

    static DATOS Datos;

    HWND hctrl;

    HWND hctr2;

    switch (msg)                  /* manipulador del mensaje */

    {

        case WM_CREATE:

           hInstance = ((LPCREATESTRUCT)lParam)-> hInstance;

           /* Insertar control Edit */

           hctrl = CreateWindowEx(

              0,

              "EDIT",          /* Nombre de la clase */

              "",              /* Texto del título, no tiene */

              ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, /* Estilo */

              36, 20,          /* Posición */

              120, 25,         /* Tamaño */

              hwnd,            /* Ventana padre */

              (HMENU)ID_TEXTO, /* Identificador del control */

              hInstance,       /* Instancia */

              NULL);           /* Sin datos de creación de ventana */

           /* Inicialización de los datos de la aplicación */

           SendMessage(hctrl, EM_SETLIMITTEXT, 10, 0L);

           strcpy(Datos.Texto, "Inicial");

           SendMessage(hctrl, WM_SETTEXT, 0, (LPARAM)Datos.Texto);

           /* Insertar control Edit */

           hctr2 = CreateWindowEx(

              0,

              "EDIT",          /* Nombre de la clase */

              "",              /* Texto del título, no tiene */

              ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, /* Estilo */

              200, 20,          /* Posición */

              120, 25,         /* Tamaño */

              hwnd,            /* Ventana padre */

              (HMENU)ID_TEXTO2, /* Identificador del control */

              hInstance,       /* Instancia */

              NULL);           /* Sin datos de creación de ventana */

           /* Inicialización de los datos de la aplicación */

           SendMessage(hctr2, EM_SETLIMITTEXT, 10, 0L);

           SendMessage(hctr2, WM_SETTEXT, 0, (LPARAM) "Gutierrez" );

           SetFocus(hctrl);

           return 0;

        case WM_COMMAND:

           switch(LOWORD(wParam)) {

              case CM_SALIR:

                DestroyWindow(hwnd);

                break;

           }

           break;

        case WM_DESTROY:

           PostQuitMessage(0);    /* envía un mensaje WM_QUIT a la cola de mensajes */

           break;

        default:                  /* para los mensajes de los que no nos ocupamos */

           return DefWindowProc(hwnd, msg, wParam, lParam);

    }

    return 0;

}

Saludos

Daniel de Dios "El Ignorado"

_______________________________________________

Lista de correo Cconclase Cconclase@listas.conclase.net

http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net

Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ