Button Style
-
Hallo,
Ich möchte gerne, dass meine Buttons den Windows 8 Style haben.
Derzeit ist der Style auf XP und Windows 7 ausgelegt, sieht aber nicht sehr gut aus.
Kann man das ganz einfach mit einer Funktion erledigen?
-
hikclimber schrieb:
Hallo,
Ich möchte gerne, dass meine Buttons den Windows 8 Style haben.
Derzeit ist der Style auf XP und Windows 7 ausgelegt, sieht aber nicht sehr gut aus.
Kann man das ganz einfach mit einer Funktion erledigen?Beim WinAPI programmieren oder auf deinem PC ?
-
Bei der WinApi.
-
Soweit ich weiß verwendet Windows 8 garnicht mehr die WinAPI.
mfg
HarteWare
-
Soweit ich weiß verwendet Windows 8 garnicht mehr die WinAPI.
Was dann?
-
HarteWare schrieb:
Soweit ich weiß verwendet Windows 8 garnicht mehr die WinAPI.
Stimmt nicht und wird niemals stimmen. Für Windows 8 wurde WinRT entwickelt, was ähnlich wie MFC auf der WinAPI aufbaut, um die Nutzung zu vereinfachen. Für C Programmierer bleibt die WinAPI das einzig wahre.
-
Also heißt das, dass man den Style auch nicht bei den erstellten Buttons einstellen kann?
-
Was für einen Style meinst Du. Denn bei den Desktop Programmen oder dem im Kachelbereich?
Drücken wir es mal so aus:
Wenn ein Common Control 6 Manifest vorhanden ist, dann sehen alle Desktop Programme entsprechende dem Vista/Windows7/Windows8 Stil entsprechend aus.
Sofern es sich eben um ein Desktop Programm handelt!Unter RT ist alles anders... aber warum sollte ich im Desktop Bereich etwas darstellen wie im Kachelbereich? So was will ich doch gar nicht...
-
Ich mein jetzt nicht nur den Button Style, sondern auch im allgemeinen.
Schau dir dort mal die Bilder an, dann verstehst du vllt auch was ich meine.
Was auch sehr komisch ist, dass die vordefinierten MessageBoxes (z.B. MB_ICONINFORMATION) auch keinen Windows 8 Style haben, sondern Windows 7.
-
Hoppla, hab den Link vergessen: http://imageshack.us/g/842/c9fd.png/
-
Habs jetzt hinbekommen.
Einfach den Code im Quellcode einfügen und dann siehts schön aus.
http://msdn.microsoft.com/de-de/library/windows/desktop/bb773175%28v=vs.85%29.aspx#pragma comment(linker,"\"/manifestdependency:type='win32' \ name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \ processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
-
Hast ein Commnon Control 6 Manifest in Deiner Anwendung?
Hast Du das Supported OS gesetzt im Manifest?Siehe:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh404286(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb773175(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/hh848036(v=vs.85).aspx
-
Hab es ja bereits hinbekommen, siehe meinen Post zuvor.
Das einzige was mich jetzt noch ein bisschen stört ist, dass die Schriftart nicht so schön aussieht wie bei anderen Anwendungen.
-
Siehe Shell Dialog...
-
Hab jetzt zu Shell Dialog nichts wirklich hilfreiches gefunden, aber dafür das hier:
Ich muss nach jedem erstellten Window diesen Code einfügen:::SendMessage(hWnd, WM_SETFONT, (WPARAM)::GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(FALSE, 0));
-
Window? Ich denke Du redest von Dialogen.
Ansonsten ist dies falsch.
Siehe:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd374112(v=vs.85).aspxSiehe auch SPI_GETNONCLIENTMETRICS
http://msdn.microsoft.com/en-us/library/windows/desktop/ff729175(v=vs.85).aspx
-
Ich meinte bei jedem Child-Window. Also zB. ein Text oder Eingabefeld.
-
Das musst Du selber machen. Nur der richtige Font für das OS wird anders ermittelt.
-
Heißt dass dan also, dass es für alle übernommen wird, ohne dass ich etwas extra angeben muss?
-
Bei einem Dialog: klar!
Bei allen anderen Fensterarten musst Du WM_SETFONT verwenden.