[C con Clase] 2 Ventanas
Juan Antonio
jalr43 en hotmail.com
Mie Sep 5 22:19:34 CEST 2007
Hola.
Este link te puede ayudar: http://msdn2.microsoft.com/en-us/library/ms632598.aspx
La idea es definirte una nueva clase para la nueva ventana (puede tener otra función para procesar los mensajes, otro color de fondo, cursor, etc.) con la variable WNDCLASSEX y registrarla, tal y como se hace para la ventana principal. Usar la función CreateWindowEx para crear la nueva ventana y sólo necesitas también la instancia de la aplicación. Tienes dos opciones:
1.- Usa una variable global y asignala en la función WinMain. Poco recomendable.
2.- Dentro del CALLBACK de la ventana principal añade el mensaje WM_CREATE y almacenalá en una variable estática. De esta manera dentro de ese CALLBACK podrás crear una ventana nueva, por ejemplo al procesar el mensaje WM_COMMAND de un botón.
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HINSTANCE hInstance;
HWND hBoton;
switch (message) /* handle the messages */
{
case WM_CREATE:
hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
hBoton = CreateWindowEx( 0, "BUTTON", "Crear otra ventana", WS_CHILD | WS_BORDER | WS_VISIBLE,
100, 100, 80, 30, hwnd, (HMENU)CM_BUTTON, hInstance, NULL );
break;
case WM_COMMAND:
if( LOWORD( wParam ) == CM_BUTTON )
MessageBox( hwnd, "Se ha pulsado el botón", "Aviso", MB_OK );
break;
case WM_DESTROY:
PostQuitMessage (0); /* send a WM_QUIT to the message queue */
break;
default: /* for messages that we don't deal with */
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
Un saludo.
----- Original Message -----
From: sebastianoldani
To: Lista de correo sobre C y C++
Sent: Wednesday, September 05, 2007 2:54 PM
Subject: Re: [C con Clase] 2 Ventanas
Hola, estoy usando windows, estoy programando con el api de windows directamente. Mi proximo paso es entrar calculo que con QT, no me decidi aun.
Pero si podes pasarme como seria para definir una nueva ventana me ayudas bastante, gracias igual.
bye!!!
Ro escribió:
Hola!
¿Qué librería gráfica estás usando?, ¿wxWidgets?, ¿QT?. Y, ¿sobre qué plataforma?, ¿GNU/Linux?, ¿Windows?, ¿Mac OSX?
Si no nos dás mas datos, es complicado...
Salud!
Ro
El día 5/09/07, sebastianoldani <sebastianoldani en gmail.com> escribió:
Hola, tengo una duda, como puedo hacer para que mi programita de una
sola ventana, me abra otra ventana al hacer por ejemplo un clic en un
control?
Tengo un programita, y quiero que al hacer clic en un boton me cree otra
ventana, donde pueda poner otros controles y otras cosas, tengo que
hacerlo si o si con un dialogbox?. No quiero crear frames, sino ventanas
y preferentemente modals.
Bueno, espero me hayan entendido y me puedan ayudar, gracias.
Bye
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
----------------------------------------------------------------------------
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------------------------------------------------------------------------
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070905/1d4c8120/attachment.html>
Más información sobre la lista de distribución Cconclase