Come si invia un messaggio del tipo WM_...?
Vorrei che in corrispondenza del case WM_KEYUP della funzione WndProc venga inviato il messeggio WM_PAINT per ridisegnare la finestra!
Come si invia un messaggio del tipo WM_...?
Vorrei che in corrispondenza del case WM_KEYUP della funzione WndProc venga inviato il messeggio WM_PAINT per ridisegnare la finestra!
se non vuoi complicarti la vita (se vuoi ti posto il codice) usa l'api "UpdateWindow" che manda WM_PAINT all'handle della finestra specificata dal parametro 0 - che è un DWORD/HWND;
Avevo già provato con updatewindow ma forse non lo uso correttamente; nel clico while della winmain ho il seguente frammento:
if (keys['D'])
{
x=200;//sposta a destra il testo
}
if (keys['S'])
{
x=50;//sposta a sinistra il testo
}
if (keys['Q']){
PostQuitMessage(0);
}
Se premo Q mi funzione e termina il programma ma se uso UpdateWindow non mi aggiorna la finestra!
Il case WM_PAINT è questo:
case WM_PAINT: // Occorre aggiornare la finestra
hDC = BeginPaint(hwnd, &StrutturaPaint);
SetTextColor(hDC, COLORREF(0x00FF0000)); // setta il testo col colore blue
TextOut(hDC, x, y, testo, sizeof(testo)-1); // visualizza il testo al centro
EndPaint(hwnd, &StrutturaPaint);
return 0;
break;
Se gentilmente vuoi postarmi la soluzione l'email è selvin@cplusplus.it
GRAZIE in anticipo!![]()
eh si in realta UpdateWindow aggiorna la finestra se è veramente necessario...
prova con InvalidateRect(hWnd_da_ridisegnare, NULL, TRUE)
Funziona! Un'ultima cosa, mi dici che fa praticamente questa invalidateRect? Cosa sono i parametri di ingresso?
Se non puoi risp a questo domande grazie mille lo stesso!
![]()
InvalidateRect rende l'area "non valida" ovvero OBBLIGATORIAMENTE da ridisegnare anche se tutto va a meraviglia...
i paramatri so
1) HWND - finestta da ridisegnare
2) *RECT - area dove è necessario ridisegnare (NULL se x rtutto)
3) BOOL - ridisegna sfondo
Grazie infinite, più chiaro di così non potevi spiegarti!
![]()
![]()
x info esiste anche validateRect che fa la cosa opposta![]()
Buono a sapersi!
Ciao e grazie ancora!