Child painten?



  • Hi,

    wie kann ich manuell ein Child eines Dialoges auffordern, sich neu zu zeichnen? Mit UpdateWindow(GetDlgItem(hDlg, IDC_ITEM)) oder 'ner direkten Message geht's scheinbar nicht!?

    Danke fuer Hilfe!

    Gruß
    Alex



  • N' Abend,

    Also eingtl. sollte UpdateWindow funktionieren oder du benutzt

    InvalidateRect(GetDlgItem(hDlg, IDC_ITEM), NULL, TRUE);
    

    😉



  • Alles klar, klappt mit InvalidateRect. Komischerweise geht UpdateWindow und direkte Message tatsächlich nicht.



  • UpdateWindow sorgt nur für eine WM_PAINT Nachricht, wenn aber zuvor nicht als ungültig markiert wurde (durchs System, oder eben über InvalidateRect), dann wird nichts gezeichnet. InvalidateRect verursacht dagegen nicht unmittelbar ein Neuzeichnen, sondern markiert nur den entsprechenden Bereich als ungültig, woraufhin das System dann zeitnah ein Neuzeichnen hervorruft. Also wenn's ganz direkt gehen soll, erst InvalidateRect und anschließend gleich noch UpdateWindow aufrufen...



  • alex. schrieb:

    Alles klar, klappt mit InvalidateRect. Komischerweise geht UpdateWindow und direkte Message tatsächlich nicht.

    Jop is klar warum, die sorgen auch nicht dafür, das das Fenster für ungültig erklärt wird 😉

    EDIT: 20 Sekunden zu spät, hrhr



  • Wieder was dazu gelernt. Danke!


Anmelden zum Antworten