Unterschiedliche Fenstereinstellungen
-
Guten Abend,
gibt es eine Möglichkeit, dass ich nur eine Fensterklasse (WNDCLASSEX) erstelle, und davon mehrere Fenster erstellen kann, die jedoch unterschiedliche Einstellungen haben? Also bspw. ich habe die Class registriert und anschließend möchte ich für ein Fenster die Hintergrundfarbe ändern (ich benutze dafür SetClassLong mit den Parameter GCL_HBRBACKGROUND). Dies funktioniert auch soweit, jedoch für alle Fenster der Klasse. Gibt es eine Möglichkeit solche grundlegenden Eigenschaften nur für ein Fenster zu definieren? Wenn nein, welchen Weg würdet ihr gehen? Schließlich muss es ja irgendwie möglich sein, sonst könnte man mit wxWidgets oder diversen Bibliotheken auch keine Hintergrundfarbe pro Fenster ändern.
Viele Grüße.
-
Hallo
Was deine konkrete Frage bezüglich der Hintergrundfarbe anbelangt: WM_PAINT bzw. WM_ERASEBKGND selbst in der WndProc implementieren.
Den Mousecursor kann man in WM_SETCURSOR mit SetCursor abändern und das Fenstericon mit WM_SETICON.
Für andere Klasseneigenschaften wie die Styles kenne ich keine direkte Möglichkeit diese für die Fensterinstanzen zu überschreiben. Aber auch dafür kann es Workarounds geben.
cu
XOR
-
Die Fenstereigenschaften sollten sich nachträglich mit SetWindowLong bzw. SetWindowLongPtr ändern lassen.
-
_Luckie schrieb:
Die Fenstereigenschaften sollten sich nachträglich mit SetWindowLong bzw. SetWindowLongPtr ändern lassen.
Nein! Nicht wenn es um die Klasseneigenschaften geht, die skNiNe hier anspricht. Die sind eben für die ganze Klasse gleich!
xor hat den richtigen Hinweis gegeben.
-
Oh, OK.