In den letzten Tagen sind einige unserer Leser derzeit auf einen bekannten Fehler beim Ändern der bewährten Erlebnisfarbe eines Win32-API-Fensters gestoßen. Dieses Dilemma tritt aus mehreren Gründen auf. Jetzt präsentieren wir sie.
Genehmigt: Fortect
Ich verwende keinen Dialog bezüglich des Morgens, ich benutze meine eigene Klasse normalerweise habe ich tatsächlich gespeichert, dann habe ich das mobile CreateWindow
verwendet, um es zu erstellen, ich entwickle eine vordefinierte rote Hintergrundfarbe auf die Bildunterschrift:
WNDCLASSEX WC;wc.hbrBackground entspricht der Unterstützung CreateSolidBrush (RGB (255, 0, 0));
Aber hier muss ich die Hintergrundfarbe ändern, auch wenn ich Meinungen ausführe, zum Beispiel durch Drücken einer Taste auf Blau ändern.
Ich habe versucht, den SetBkColor ()
-Aufruf in nur WM_PAINT
einzustellen und bewiesen, dass der WM_CTLCOLORDLG
-Pinsel mit der zurückgegebenen PM umgehen kann, dass sie es können arbeite nicht.
37,1k
beantragt am 11. August 2010 während des Besuchs um 22:48 Uhr
2461 55 goldene Abzeichen 3232 magische Abzeichen 3939 weiße Abzeichen
Ist nicht die Antwort, die Sie wollen? Durchsuchen Sie andere Fragen mit dem Tag C ++ Api Winapi oder stellen Sie Ihre eigene Frage.
… Hardware zeichnet den Hintergrund für Windschutzscheibe oder Fenster anbringen Eine Chance, dies zu unterstützen, indem Sie nach senden WM_ERASEBKGND-Kommunikation, wenn Die Workload ruft BeginPaint auf. Wann Die Anfrage wird bearbeitet Aber deine aktuellen Nachrichten beruhigen sich DefWindowProc, entfernt alle Einstellungen Hintergrund durch Ziehen aus Muster auf Pinselhintergrund gegeben durch die Türklasse …..
…… die leicht kann WM_ERASEBKGND Nachricht jedoch Klassifikationsfähigkeiten Pinselset. Dies ist zweifellos typisch für Anwendungen, die Diesem Benutzer erlauben, das wichtigste Fenster zu bearbeiten Farbe oder Muster angeben dass dieses Fenster ohne Einfluss gegeben wird die meisten anderen Fenster mit Klasse. In solch In einigen Tragekoffern wird die entsprechende Anfrage möglicherweise nicht ausgeführt. unsere eigene Verkaufsnachricht in DefWindowProc. …..
Verwenden Sie also wm_erasebkgnd wParam von der Position, um den DC zu erhalten und die Umgebung zu aktivieren.
… Modell zieht den Hintergrund Zeitraffer oder ein Funktionsfenster geben Möglichkeit, eine Situation zu senden WM_ERASEBKGND-Nachricht, wenn eine praktische Anwendungsauswahl BeginPaint. Wann Verarbeiten Sie den Erwerb überhaupt nicht Nachricht, aber schick sie DefWindowProc, ProzentEntfernung dumm Kontext, indem Sie es ausfüllen, wer es hat Muster mit dem richtigen Foundationpinsel gegeben durch das Fenster Flair …..
…… die App kann WM_ERASEBKGND Nachricht jedoch Kammset im Hintergrundstil. Dies kann typisch für Computerprogramme sein, die Aktivieren Sie den Benutzer, um das Fenster zu ändern Farb- oder Heritage-Muster für Fenster benannt ohne Einfluss Andere Fenster hier in Sie sehen, das Klassenzimmer. In solch Fälle, in denen eine Anfrage nicht durchgeführt werden sollte das DefWindowProc-Signal. …..
am 11. August 09 um 11:20 geantwortet
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
60.8k 4444 Goldabzeichen 172172 Silberbarren 203203 Bronzeabzeichen
HBRUSH-Pinsel = CreateSolidBrush (RGB (0, 0, 255));SetClassLongPtr (hwnd, GCLP_HBRBACKGROUND, (LONG_PTR) Pinsel);
2.785 44 Edelsteine
antwortete bezüglich des 11. August 2010 um 22:59 Uhr Moskauer Zeit.
2.873
Wenn Benutzer WNDCLASS registrieren, stellen sie der Reihe nach Berichte zu allen Fenstern dieser Klasse bereit. Wenn Sie also nur die Farbe des Fensters aktualisieren möchten, müssen Sie sich selbst darum kümmern.
Wenn es an der Zeit ist, das Fenster neu zu zeichnen, senden Sie eine Rede WM_ERASEBKGND
an Ihren wndproc. Wenn wir damit nicht umgehen können, entfernt DefWindowProc
die Client-Farbbox aus der Eleganz, die mit dem Fenster verbunden ist. Aber Sie können jede Übereinstimmung direkt bearbeiten und den Hintergrund (oder das Muster) in fast jeder gewünschten Farbe malen.
am 11. August dieses Jahres um 23:06 geantwortet.
41.7k 1313 gold0 Abzeichen 111111 Gold- und Silberabzeichen 159 159 Bronzeabzeichen
Beschleunigen Sie jetzt die Leistung Ihres Computers mit diesem einfachen Download.