Visualizzazione dei risultati da 1 a 9 su 9

Discussione: SendMessage e WM_PAINT

  1. #1

    SendMessage e WM_PAINT

    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!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    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;

  3. #3
    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!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    eh si in realta UpdateWindow aggiorna la finestra se è veramente necessario...

    prova con InvalidateRect(hWnd_da_ridisegnare, NULL, TRUE)

  5. #5
    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!


  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    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

  7. #7
    Grazie infinite, più chiaro di così non potevi spiegarti!



  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    x info esiste anche validateRect che fa la cosa opposta

  9. #9
    Buono a sapersi!

    Ciao e grazie ancora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.