Programación General > C/C++
Usar funciones GDI tras pulsar un comando
(1/1)
maxstepin:
Hola.
Quiero que el programa responda y dibuje una linea como resultado de presionar un elemento de menu.
De momento solo puedo dibujar procesando los mensajes WM_PAINT:
{
--- Código: C ---HDC hdc;PAINTSTRUCT est; switch(mensaje){ hdc = BeginPaint(hwnd, &est); Ellipse(hdc, 10, 10, 100, 100); EndPaint(hwnd, &est); break;
Pero esto lo dibuja al principio cuando la ventana es mostrada por 1 vez, yo lo que quiero que la ventana no muestre nada hasta que pulse el boton de menu correspondiente. Porque si proceso el comando WM_COMMAND como puedo hacer que envie un mensaje WM_PAINT y que identifique el comando pulsado?
GRacias por adelantado.
diego.martinez:
pues en el WM_COMMAND, si se dan las condiciones, puedes llamar a :
UpdateWindow
o
RedrawWindow
son sutilmente diferentes miratelas en msdn.
Deberias mirar tambien InvalidateRect...
PD:
a ese switch le faltan cases...
EI: juntando mensajes.
--- Cita de: "maxstepin" ---WM_COMMAND como puedo hacer que envie un mensaje WM_PAINT y que identifique el comando pulsado?
--- Fin de la cita ---
te vendran en los lparam y wparam.
maxstepin:
--- Código: C ---case WM_COMMAND: comando = LOWORD(wParam); InvalidateRect(hwnd, NULL, TRUE); //UpdateWindow(hwnd);
updatewindow por si solo no funciona, lo he visto en algun ejemplo justo despues de showwindow, pero jamas he entendido su funcionamiento (¿no esta dentro del procedimiento de ventana sino dentro de main).
InvalidateRect se que envia el mensaje WM_PAINT a la ventana de nuevo.
Navegación
Ir a la versión completa