Allgemeine Verständnisfrage
-
hallo,
ich versteh zwar, wie ich nachrichten VOM fenster empfange und sie verarbeite, aber nicht, wie ich etwas AN das fenster schicke, damit sich das fenster irgendwie verändert.
wie funktioniert das?
-
Oder meinst du wie das Nachrichtensystem unter Windows funktioniert? Bitte stell deine Frage genauer.
-
z.b.: folgendes beispiel:
ich habe ein fenster mit einem button. bis hier kann ich alles. dann wird der button geklickt, die "nachricht" des buttons kann ich auch verarbeiten.
jetzt will ich aber, dass ein text unter dem button erscheint. genau das meine ich, nämlich dass ich das fenster irgendwie verändern kann.
-
<space> schrieb:
jetzt will ich aber, dass ein text unter dem button erscheint. genau das meine ich, nämlich dass ich das fenster irgendwie verändern kann.
Wenn du die Button-Nachricht bearbeitest, kannst du ja eine BOOL-Variable o.ä. setzen, die angibt, ob der Text angezeigt werden soll. Zeichnen tust du ganz normal in
WM_PAINT
, über GDI halt. DieWM_PAINT
sendest du dir selber am besten durch InvalidateRect und ggf.UpdateWindow.
-
Mach unter den Button ein Static-Text Control.
Wenn da erstmal kein Text stehen soll, dann trag einfach "" als Text ein.Wenn dann der Button geklickt wird kannst du mit SetWindowText() den Text des Static-Text Controls ändern.
(SetWindowText() funktioniert übrigens auch mit Buttons sowie den meisten anderen Controls)Intern verwendet SetWindowText() auch Messages, d.h. es schickt mittels SendMessage() eine WM_SETTEXT Nachricht an das Control. Das ist aber ein Detail das man normalerweise ignorieren kann.
Ja nach Control gibt es dann noch weitere WinAPI Funktionen, bzw. andere Nachrichten die man an diese Controls schicken kann, um bestimmte Dinge zu ändern. Beispielsweise die Cursorposition in einem Edit-Control, den Zustand einer Checkbox etc.