Objekterstellung



  • Hi.

    Ich dachte ich mach zur Übung mal ein kleines Objektzeichenprogramm. Aber es scheitert bei mir schon am Anfang.

    Wie kann ich bei einem Tastendruck ein Objekt anzeigen lassen? Wenn die Taste wieder losgelassen wird soll das Objekt wieder verschwinden.

    Ich hab es mal so versucht:

    von der (z.B.: ) VK_LEFT anweisung schick ich ne SendMessage zu WM_PAINT und dort soll dann abgefragt werden welche Taste gedrückt worden ist.
    Aber das geht nicht. Kann mir jemand einen Tipp geben?



  • Hallo

    Warum führst du den Code zum Zeichnen nicht gleich aus wenn du eine VK_LEFT (down?) Nachricht erhältst?

    Pass bei der Funktion SendMessage auf, denn sie kehrt erst dann zurück, wenn die Window Procedure Funktion die Nachricht verarbeitet hat. Das Gegenstück dazu wäre die Funktion "PostMessage"; sie kehrt sofort zurück und fügt die Nachricht zum Nachrichten-Queue hinzu.



  • Sebastian Thalhammer schrieb:

    von der (z.B.: ) VK_LEFT anweisung schick ich ne SendMessage zu WM_PAINT

    Man darf nicht WM_PAINT senden! Mach das mit InvalidateRect().



  • Um WebFritzi's Aussage noch zu unterstreichen, hier der Auszug aus der MSDN zu WM_PAINT:

    MSDN schrieb:

    The WM_PAINT message is generated by the system and should not be sent by an application.



  • ah danke jetzt gehts.


Anmelden zum Antworten