Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Fensterdesing (Style) manipulieren (https://www.delphipraxis.net/172943-fensterdesing-style-manipulieren.html)

Popov 29. Jan 2013 22:52

Fensterdesing (Style) manipulieren
 
Ich hab hier schon etwas im Forum gesucht, aber eigentlich nichts gefunden. Das kann nur zweierlei bedeuten: es gibt nichts zu dem Thema oder ich suche mit den falschen Suchbegriffen.

Was mich zurzeit etwas interessiert ist die Designmanipulation der Fenster. Ich kam da rein, weil Windows bei einem meiner Programme auf Windows 95 Grau umgeschaltet hat und ich gezwungen war den bunten Stile, also Rahmen und Titelleiste selbst zu zeichnen. Inzwischen ist alles stabil und sieht sogar gut aus.

Jetzt denke ich weiter. Nicht weil ich muss, sondern aus Interesse. Denn mich interessieren weitere Möglichkeiten. So habe ich mal eine Komponente gehabt mit der man den Style des Fensters komplett ändern konnte. Und da wurde auch die Rahmendicke, Höhe der Titelleiste, Border-Icon Größe angepaßt.

Ich will jetzt nicht gleich wissen wie das geht, sondern mein Frage ist eher ein Ansatzpunkt wo ich mit der Suche anfangen kann. Da die Komponente das konnte, muss es eigentlich möglich sein sowas mitten im Betrieb abzufangen und zu ändern.

stahli 30. Jan 2013 00:01

AW: Fensterdesing (Style) manipulieren
 
Meinst Du Skinning-Komponenten wie die AlphaControls?

Popov 30. Jan 2013 00:20

AW: Fensterdesing (Style) manipulieren
 
Nicht direkt, mich interessiert es eher wie bestimmte Eigenschaften des Fensters abgefangen werden können.

Also noch mal zu meinem Problem. Ich habe wie gesagt etwas an meinen Fenstereigenschaften verändert, was Windows mit dem Classic-Design bestraft hat, d. h. das Fenster ist jetzt Windows 95 grau. Die Änderung ist aber nötig, also bleibt sie. Dafür habe ich den Rahmen und Titelleiste neu gezeichnet. Alles ist Wunderbar, sieht sehr gut aus und funktioniert fast perfekt.

Aber nur fast, denn bei Windows XP ist der Rahmen 4 Pixel breit, bei Windows 7 das doppelte. Ich muß das also entweder abfangen, so das mein Fenster auch unter Windows 7 einen 4 Pixel breiten Rahmen hat, oder flexibel auf Fensterrahmenbreite reagieren.

Bevor ich das mache, gucke ich ob ich die Rahmenbreite manipulieren kann.

DeddyH 30. Jan 2013 07:25

AW: Fensterdesing (Style) manipulieren
 
Wie man die Rahmenbreite "mal eben" nur für das eigene Fenster ändern könnte, weiß ich nicht. Abfragen sollte sich diese aber mit GetSystemMetrics (weitere Einstellungen ggf. noch mit SystemParametersInfo) lassen.

Popov 30. Jan 2013 08:38

AW: Fensterdesing (Style) manipulieren
 
Nun ja, SystemParametersInfo könnte der Einstiegspunkt sein. Zumindest verpasste mir SystemParametersInfo(SPI_SETBORDER, 10, 0, SPIF_UPDATEINIFILE) ein dicken inneren Rahmen. Ich schätze da wird noch viel zu lesen sein.

uligerhardt 30. Jan 2013 08:51

AW: Fensterdesing (Style) manipulieren
 
Zitat:

Zitat von Popov (Beitrag 1201268)
Zumindest verpasste mir SystemParametersInfo(SPI_SETBORDER, 10, 0, SPIF_UPDATEINIFILE) ein dicken inneren Rahmen.

Nicht nur "dir", oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz