Komplettes GUI Design neu entwerfen - WinAPI
-
Hallo Community!
Ich möchte gerne die GUIs ein wenig grafisch verändern, da mir die normale Standard Oberfläche für meine Zwecke nicht so gefällt. Dabei würde ich gerne bei der WinAPI bleiben und auf andere Bibliotheken verzichten. Diese grafischen Veränderungen betrifft den Rahmen der GUI (der Border sowie Title Bar) sowie auch alle Controls. Wie ich die einzelnen Controls aufpimpe weiß ich bereits, dass ist das kleinste Problem, wo ich halt Schwierigkeiten habe ist bei dem Window.Ich nutze nur den WS_POPUP Style. Dadurch bekomme ich eine schöne leere Zeichenfläche. Bei jeder WM_PAINT Message zeichne ich mit GDI+ meine eigene Oberfläche hinein. Im Grunde habe ich bisher nur den Border und die Title Bar umgesetzt. Nun soll das Fenster aber auch größenveränderbar sowie verschiebbar sein. Dazu fehlen mir Ansatzpunkte wie man dies am besten löst. Den WS_SIZEBOX Style würde ich ungerne verwenden da dann so ein häßlicher Rahmen um meine GUI gezeichnet wird.
Hauptptoblem ist also das verschieben sowie resizen der GUI. Hat für mich vielleicht irgendwer einige Ansatzpunkte um das Problem zu lösen? Den Code würde ich gerne bereitstellen, jedoch ist meine Anwendung nicht in C++, C oder ähnliches geschrieben. Dachte aber dass ich hier mit meiner Frage noch besser aufgehoben bin.
LG. Make-Grafik ^^
-
Und was ist nun Dein Problem?
Das Resizen übernimmt auch Windows für Dich. Du musst nur WM_NCHITTEST implementieren und die entsprechenden Codes zurückgeben, die für Deinen Fenster Bereich zutreffen.
Du solltest Dir grundsätzlich die ganzen WM_NC.... also Non Client Nachrichten ansehen.
-
Dankeschön! Ich kenne mich noch nicht so gut mit den Windows Messages aus. Aber ich arbeite daran.
-
Dankeschön! Ich kenne mich noch nicht so gut mit den Windows Messages aus. Aber ich arbeite daran.
-
Martin Richter schrieb:
Das Resizen übernimmt auch Windows für Dich.
Ich gehe davon aus, dass der Fragesteller sowas wie "Layouts" gemeint hat. Das Hauptfenster kann man zwar resizen, aber um das Anpassen der Child Controls muss man sich selber kümmern.
-
Make-Grafik schrieb:
Ich kenne mich noch nicht so gut mit den Windows Messages aus. Aber ich arbeite daran.
Vielleicht ist es sinnvoller statt mit der schon in die Jahre gekommenen WinApi mit einer ereignisorientierten
GUI wie C#/.Net zu arbeiten? Spart das Nachdenken über Messages!
-
....für anfang sollte reichen:
http://www.codeproject.com/Articles/27819/Style-Toolkit-Use-advanced-graphics-techniques-to
http://www.codeproject.com/Articles/28336/StyleDialog-A-transparent-dialog-class-with-an-opt
http://www.codeproject.com/Articles/34158/Cool-Semi-transparent-and-Shaped-Dialogs-with-Stan
.....ansonsten WPF [NET]