Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

25.03.2008, 20:55

Winapi und Standardschriften

Ich hab da ein kleines Problem mit dem WINAPI und den Systemschrifttyp.

Wenn ich mit dem WINAPI einen Button erstelle oder irgend einen Text in mein Fenster zeichne, bekomme ich immer diese hässliche fette 0815 Schrift zu gesicht.
Dabei hat Windows doch so eine Schöne Standardschrift.
Um mein Programm nun doch an mein Betriebssystem anzupassen setze ich über sendmessage() und WM_SETFONT die Schriftart meiner Elemente, zuvor erstelle ich mir über createfont() einen Font(Besser gesagt ein Handle zu einem Font) mit den Daten welche ich mir aus der Systemsteuerung per Hand notiert habe.

Nun meine Frage gibt es da noch andere Möglichkeiten den Font zu ändern. Bzw. Wo kann ich den Font auslesen?

2

25.03.2008, 21:03

EnumFontFamiliesEx ist wahrscheinlich das, wonach du suchst.

3

25.03.2008, 22:32

Ui! da hab ich mich aber schleißig ausgedrückt.

Was ich sagen wollte ist dass ich wenn ich für meine Schriftart das Makro SYSTEM_FONT verwende, entspricht die Schrift nacher keineswegs der in der Systemstuerung eingestelleten Systemschrift. Was ich jetzt ist herausfinden will, ist wie ich am ehesten zu meiner Systemschrift komme.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

25.03.2008, 22:58

Der korrekte Weg ist keineswegs über diese veralteten Macros sondern über SystemParametersInfo und SPI_GETNONCLIENTMETRICS. Damit erhältst du eine Struktor vom Typ NONCLIENTMETRICS welche die die gewünschten Informationen bereitstellt.
@D13_Dreinig

5

25.03.2008, 23:26

Ahhh! Danke! Genau das hab ich gesucht. Also es tut mir leid dass ich mich am Anfang so unbeholfen ausgedrückt habe, aber jetzt Funktionierts.

Übrigens: Nach einem Neustart funktionierts auch mit SYSTEM_FONT.

Was ist den noch so alles veraltet? Ich hab gar nicht mitbekommen wann GetStockObject im zusammenhang mit diesen Makros veraltet worden ist.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

25.03.2008, 23:30

Zitat von »"Nomis3000"«

Ahhh! Danke! Genau das hab ich gesucht. Also es tut mir leid dass ich mich am Anfang so unbeholfen ausgedrückt habe, aber jetzt Funktionierts.

Übrigens: Nach einem Neustart funktionierts auch mit SYSTEM_FONT.

Was ist den noch so alles veraltet? Ich hab gar nicht mitbekommen wann GetStockObject im zusammenhang mit diesen Makros worden ist.


In der Windows API residieren viele Fragmente längst vergangener Zeiten. So z.B. eben SYSTEM_FONT (das seit Windows95 nicht mehr aktuell ist) oder auch diverse memorymanagement Funktionen für GlobalAlloc/Free und LocalAlloc/Free, um nur ein paar Beispiele zu nennen! ;)
@D13_Dreinig

7

25.03.2008, 23:41

Naja, die Frage war nur: Woher erkenn ich veraltete Funktionen und Elemente?
Ich habs aber jetzt selbst gerade gesehen dass über dem Artikel mit meinen Makros ein rotes Gsatzl(hab mich nicht verschrieben) steht, welches mir weißmachen wollte dass ich die Funktion nicht mehr verwenden sollte. (Ich wollt es halt nur nicht hören)

Apropos: Währendessen mein mein Programm nicht richtig funktioniert hat, hat man bei vielen anderen Anwendungen(außer natürlich bei den Vistazugehörigen) gesehen wie die Schrift, genauso wie in meinem Programm, zu einer 0,8,15 Schrift mutiert ist.

Beispiele:
Microsoft Virtual PC2007
Netbeans

8

26.03.2008, 11:25

Wenn ich mir meine besherigen Beiträge ansehe muss ich feststellen dass ich wie ein Analphabet wirke. Allso: Danke für eure Geduld!


Ich hab aber noch eine Frage:
Die Buttons, ComboBoxen usw. sehen in selbst geschriebenen Programmen nie so aus wie es bei dem jeweiligen Betriebssystem üblich ist. Da wollte ich einmal fragen ob es irgend einen Weg gibt den Buttons usw. das Betriebssystemübliche Aussehen zu verleihen.

Also Frage: Wie kann ich das Aussehen meiner Buttons an das Betriebssystem anpassen?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

26.03.2008, 11:46

Unter Tutorials gibts eine Anleitung dazu: https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=6222
@D13_Dreinig

10

26.03.2008, 11:55

Hab ich versucht, habs aber irgendwie nicht hinbekommen.

Werbeanzeige