Button Style
-
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.
-
Ich bin jetzt ein bisschen verwirrt.
Ich hab einen Dialog und erstelle dort dann Child-Windows mit einem Text.
Dieser soll dann ganz einfach die Standard-Systemschrift sein. Auch bei Eingabe Feldern, Radio Buttons, Chechboxes, usw. sollte es sein.Ich muss jetzt ein paar Structuren erstellen, damit ich die Systemschrift bekomme? Ist sehr fragwürdig, denn beim Style ging es um einiges Leichter.
-
Dialoge werden normalerweise mit Ressource-Templates erzeugt.
Wenn Du mit CreateWindow ein Child erzeugst dann musst Du auch WM_SETFONT verwenden. Aber auch dann ist es einfacher vom Parent (Dialog), mit WM_GETFONT den font zu holen.
-
Ich erstelle mein Fenster nicht mit einer .rc Datei, sondern ich habe ein .cpp in der ich dann den Code schreibe und von dem aus wird dann alles erstellt.