XP Visual Styles + Eigene Controls
-
Dann hast du entweder kein WindowsXP oder "visuelle Designs" deaktiviert...
-
Mit WM_NCPAINT und möglicherweise WM_NCCALSIZE sollte es eigentlich gehen.
Auf jeden Fall würde ich versuchen mit GetClassInfo(Ex) die Adresse der WindowProc von dem Control, das den Rahmen richtig zeichnet (z.B. ListView, ListBox, Edit) holen und bei allen WM_NC* Nachrichten diese Prozedur mittels CallWindowProc aufrufen. Theoretisch sollte sowas gehen. 
-
Hallo. Meines Programms GUI habe ich unter XP mit deaktivierten
'Design Feautures' erstellt. Sieht auhc ganz nett aus und alles klappt bestens......es sei denn: Die verspielten, unnötigen XP-Designs sind an. Kann ich die nciht unterdrücken, sodass mein Programm im alten Stil gezeichnet wird, auch wenn der XP-Stil an ist??
Ich fürchte das mimtm Unterdrücken wird cniht klappen. So also meine zweite Frage: Wie kann ich auslesen, ob XP-Styles aktiv sind oder nicht??
-
1. keine Manifest-Datei benutzen
2. IsThemeActive
-
Hallo. Die GUI von meinem Programm habe ich unter XP mit deaktivierten
'Design Feautures' erstellt. Sieht auhc ganz nett aus und alles klappt bestens......es sei denn: Die verspielten, unnötigen XP-Designs sind an. Kann ich die nciht unterdrücken, sodass mein Programm im alten Stil gezeichnet wird, auch wenn der XP-Stil an ist??
Ich fürchte das mimtm Unterdrücken wird nicht klappen. So also meine zweite Frage: Wie kann ich auslesen, ob XP-Styles aktiv sind oder nicht??
Bei XP-Styles nämlich sind die Maßen von fenterelementen wie Titelleiste / Menus / Ränder usw. dicker. Damit sind meine Koordinaten für die Steuerelemente nicht mehr richtig..
Muss ich unbedingt Mit GetSystemMetrics() jeden Mist einzeln auslesen und errechnen oder gibts ne Alternative?

Ich überlege shcon ernsthaft, ob ich nicht lieber das gesamte Fenster inklusive Titelleiste, Ränder etc. selber zeichne...
Was würdet ihr tun??
-
Hallo. Die GUI von meinem Programm habe ich unter XP mit deaktivierten
'Design Feautures' erstellt. Sieht auhc ganz nett aus und alles klappt bestens......es sei denn: Die verspielten, unnötigen XP-Designs sind an. Kann ich die nciht unterdrücken, sodass mein Programm im alten Stil gezeichnet wird, auch wenn der XP-Stil an ist??
Ich fürchte das mimtm Unterdrücken wird nicht klappen. So also meine zweite Frage: Wie kann ich auslesen, ob XP-Styles aktiv sind oder nicht??
Bei XP-Styles nämlich sind die Maßen von fenterelementen wie Titelleiste / Menus / Ränder usw. dicker. Damit sind meine Koordinaten für die Steuerelemente nicht mehr richtig..
Muss ich unbedingt Mit GetSystemMetrics() jeden Mist einzeln auslesen und errechnen oder gibts ne Alternative?

Ich überlege shcon ernsthaft, ob ich nicht lieber das gesamte Fenster inklusive Titelleiste, Ränder etc. selber zeichne...
Was würdet ihr tun??
-
Hallo. Die GUI von meinem Programm habe ich unter XP mit deaktivierten
'Design Feautures' erstellt. Sieht auhc ganz nett aus und alles klappt bestens......es sei denn: Die verspielten, unnötigen XP-Designs sind an. Kann ich die nciht unterdrücken, sodass mein Programm im alten Stil gezeichnet wird, auch wenn der XP-Stil an ist??
Ich fürchte das mimtm Unterdrücken wird nicht klappen. So also meine zweite Frage: Wie kann ich auslesen, ob XP-Styles aktiv sind oder nicht??
Bei XP-Styles nämlich sind die Maßen von fenterelementen wie Titelleiste / Menus / Ränder usw. dicker. Damit sind meine Koordinaten für die Steuerelemente nicht mehr richtig..
Muss ich unbedingt Mit GetSystemMetrics() jeden Mist einzeln auslesen und errechnen oder gibts ne Alternative?

Ich überlege shcon ernsthaft, ob ich nicht lieber das gesamte Fenster inklusive Titelleiste, Ränder etc. selber zeichne...
Was würdet ihr tun??
-
Hallo. Die GUI von meinem Programm habe ich unter XP mit deaktivierten
'Design Feautures' erstellt. Sieht auhc ganz nett aus und alles klappt bestens......es sei denn: Die verspielten, unnötigen XP-Designs sind an. Kann ich die nciht unterdrücken, sodass mein Programm im alten Stil gezeichnet wird, auch wenn der XP-Stil an ist??
Ich fürchte das mimtm Unterdrücken wird nicht klappen. So also meine zweite Frage: Wie kann ich auslesen, ob XP-Styles aktiv sind oder nicht??
Bei XP-Styles nämlich sind die Maßen von fenterelementen wie Titelleiste / Menus / Ränder usw. dicker. Damit sind meine Koordinaten für die Steuerelemente nicht mehr richtig..
Muss ich unbedingt Mit GetSystemMetrics() jeden Mist einzeln auslesen und errechnen oder gibts ne Alternative?

Ich überlege shcon ernsthaft, ob ich nicht lieber das gesamte Fenster inklusive Titelleiste, Ränder etc. selber zeichne...
Was würdet ihr tun??
-
Die Koordinaten für Steuerelemente sollte man eigentlich eher vom Client und nicht vom Window abhängig machen. Und mit AdjustWindowRect() lässt der sich ja egal ob nun Themes benutzt werden oder nicht gleich groß halten...
-
geeky schrieb:
Die Koordinaten für Steuerelemente sollte man eigentlich eher vom Client und nicht vom Window abhängig machen. Und mit AdjustWindowRect() lässt der sich ja egal ob nun Themes benutzt werden oder nicht gleich groß halten...
Hallo. Sorry für das wiederholte Posten aber das Forum hat gelaggt.
Ich ahbe sicher alle Koordinaten dem Clientbereich relativ gesetzt.
Und die Funktion AdjustWindowRect() sagt mir noch nichts ;~)
werde mich gleich schlau machen..Danke.
-
geeky schrieb:
Die Koordinaten für Steuerelemente sollte man eigentlich eher vom Client und nicht vom Window abhängig machen. Und mit AdjustWindowRect() lässt der sich ja egal ob nun Themes benutzt werden oder nicht gleich groß halten...
Hallo. Sorry für das wiederholte Posten aber das Forum hat gelaggt.
Ich ahbe sicher alle Koordinaten dem Clientbereich relativ gesetzt.
Und die Funktion AdjustWindowRect() sagt mir noch nichts ;~)
werde mich gleich schlau machen..Danke.
-
geeky schrieb:
Die Koordinaten für Steuerelemente sollte man eigentlich eher vom Client und nicht vom Window abhängig machen. Und mit AdjustWindowRect() lässt der sich ja egal ob nun Themes benutzt werden oder nicht gleich groß halten...
Hallo. Sorry für das wiederholte Posten aber das Forum hat gelaggt.
Ich ahbe sicher alle Koordinaten dem Clientbereich relativ gesetzt.
Und die Funktion AdjustWindowRect() sagt mir noch nichts ;~)
werde mich gleich schlau machen..Danke.