CreateFont()

Thomasio

Erfahrenes Mitglied
Nachdem ich nun meine Probleme mit wstring gelöst habe, und mein Programm voll in unicode läuft, habe ich das nächste Problem mit der Ausgabe.
Windows default font kommt mit unicode nicht klar, ich muss also vor jedem TextOutW() einen font selecten, der die ganzen nötigen Zeichen in allen möglichen Sprachen enthält und nach Möglichkeit auch noch bei allen Usern von Haus aus installiert ist, damit ich nicht auch noch fonts installieren muss.

Erste Frage also: Welcher font eignet sich da?
Zuerst dachte ich "Arial Unicode MS" wäre nicht so schlecht, mit 22MB Grösse sollte der ja wohl reichen, aber (man glaubt es kaum) der macht schon bei einigen polnischen Zeichen schlapp.
"Courier new" scheint schon besser zu sein, zumindest in den Sprachen die ich bisher im Programm habe, aber damit habe ich ein heftiges Problem im CreateFont().

Ich habe mir bei MSDN die Werte angeschaut, die CreateFont() braucht, aber ich werde nicht schlau daraus.
Auch mit ausprobieren finde ich einfach keine guten Einstellungen, mal zu gross, mal zu klein, mal zu fett, mal zu dünn, usw.
Dabei machen verschiedene Werte oft gar keinen Unterschied, oder ergeben völlig unerwartete Ergebnisse, vor allem Werte für fnWeight scheinen eher nach Zufallsprinzip mal fetter und mal dünner zu sein und manche Kombinationen von nHeight und nWidth ergeben die unmöglichsten Ergebnisse, wobei ich nicht mal verstehe, wieso ein anderer Wert für nHeight auch nWidth beeinflussen sollte.

Kann mich jemand aufklären, was das soll?
Mal angenommen ich habe

Code:
HFONT MyFont = CreateFont(16, 6, 0, 0, 600, 0, 0, 0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Courier new");

was muss ich daran ändern, dass die Schrift
- breiter wird, ohne die Höhe zu ändern
- höher wird, ohne die Breite zu ändern
- fetter wird, ohne Breite und Höhe zu ändern
usw.

Nachdem ich Courier new nicht besonders mag, wäre ich auch dankbar, wenn mir jemand noch einen font nennen könnte, der unicode kann und etwas besser aussieht.
 
Zurück