[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