ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
390
390
EMPFEHLEN
-
Ich habe ein globales Flag, anhand dem mein Fenster seine Hintergrundgrafik aussucht
Im WM_PAINT steht also:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
case WM_PAINT: { int ABC = IDB_MYBACKGROUND2; if(bgsetting == 1) { ABC = IDB_MYBACKGROUND1; } HDC hdc; HBITMAP g_hbmBG = NULL; BITMAP bm; PAINTSTRUCT ps; g_hbmBG = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(ABC)); ... ... ... } break;
Das funktioniert so weit prima, habe ich schon in diversen Anwendungen benutzt
Aber jetzt habe ich ein Problem, das verstehe ich nicht
Mache ich:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
case WM_LBUTTONDOWN: { if(bgsetting == 1) { bgsetting = 0; SendMessage(myWindow, WM_PAINT, 0, 0); return 0; } if(bgsetting == 0) { bgsetting = 1; SendMessage(myWindow, WM_PAINT, 0, 0); return 0; } } break;
dann macht er gar nichts, bzw. er macht schon, aber die Grafik im Fenster ändert sich nicht
Ich habe mir ein dutzend MessageBoxen quer über den Code verteilt, er kommt auf klick schön brav zum paint, wählt dort auch die richtige Grafik aus, läuft quer durch den WM_PAINT, aber im Fenster sehe ich keine Änderung, sprich die Grafik bleibt immer die Gleiche
Mache ich dagegen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
case WM_LBUTTONDOWN: { if(bgsetting == 1) { bgsetting = 0; ShowWindow(myWindow, SW_HIDE); ShowWindow(myWindow, SW_SHOW); return 0; } if(bgsetting == 0) { bgsetting = 1; ShowWindow(myWindow, SW_HIDE); ShowWindow(myWindow, SW_SHOW); return 0; } } break;
dann wechselt er schön brav bei jedem Klick die Grafik aus
Man berichtige mich wenn ich etwas übersehen habe, aber HIDE / SHOW macht doch auch nur einen WM_PAINT hinterher
Warum funktioniert WM_PAINT direkt bei mir nicht?
-
06.06.07 14:32 #2jsendrow Tutorials.de Gastzugang
Es ist nicht unbedingt eine gute Idee Systemmessages "von hand" zu verschicken. Ich könnte jetzt auch nicht sagen was man alles beachten muß dazu.
Besser ist es wenn Du Invalidate() bzw InvalidateRect() benutzt. damit gibst du der Window-Engine an welche Bereich neu gezeichnet werden sollen udn die kann dann entsprechende WM_PAINT messages mti den passenden Parametern selbst erzeugen.
Ähnliche Themen
-
Teile von *.Bmp paint
Von Neu1234567890 im Forum C/C++Antworten: 10Letzter Beitrag: 16.08.10, 21:35 -
Paint.NET
Von SNOOK99 im Forum Sonstige Grafik-ProgrammeAntworten: 1Letzter Beitrag: 30.03.08, 19:30 -
Paint() und ist zu langsam
Von BabyMitSchnully im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 11.11.06, 12:54 -
ink 'n paint
Von big hero im Forum 3D Studio MaxAntworten: 19Letzter Beitrag: 31.12.04, 16:04 -
paint() im Frame
Von vaporizer im Forum JavaAntworten: 3Letzter Beitrag: 26.04.04, 15:49





Zitieren
Login






