[C con Clase] Controles de Windows API 32

Daniel de Dios El Ignorado daniel.dedios en hotmail.com
Sab Feb 1 18:41:04 CET 2020


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"

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20200201/1a9e07bc/attachment.html>


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