Chris Becke
2009-10-19 08:32:15 UTC
Given a win32 application that needs to display text, in dialog boxes
and user created controls - what is the best way to ensure that the most
capable font is selected?
My first problem is, dialog resources - dialog resources only allow the
typeface of the font to be selected. "MS Shell Dlg" is supposed to be
the 'best' font choice. Other devs on the team argue that we need to
choose 'Arial Unicode' or something otherwise we wont be able to display
chinese text on an english system.
I'm arguing that "MS Shell Dlg" is the only sane choice as we can't know
that 'Arial Unicode' is going to exist on all systems.
Because dialog resources don't even let you choose a charset, we can't
argue about that.
However, the main app itself needs to create fonts capable of displaying
characters from arbitrary languages. And now things get more hairy. How
does one rationally choose a CHARSET_* value for the LOGFONT struct?
What typefaces is it ligitimate to ask for? Should I just ask for
'Arial' or some common-on-english-systems typeface and hope that all
international users get a good experience? Because we do put the
application out in several languages, I can configure a default typeface
name appropriate to the language setting of the app - but, because users
are allowed to chat, I still need the fonts to be capable if displaying
multiple languages.
Im relly hoping font-linking steps in to save the day. But I'd like to
be sure Im doing as much as I can to give the right hints to everything
such that even users on Windows 2000 don't get a crappy ui experience
(and im pretty sure that font linking wasn't so hot in win2k).
and user created controls - what is the best way to ensure that the most
capable font is selected?
My first problem is, dialog resources - dialog resources only allow the
typeface of the font to be selected. "MS Shell Dlg" is supposed to be
the 'best' font choice. Other devs on the team argue that we need to
choose 'Arial Unicode' or something otherwise we wont be able to display
chinese text on an english system.
I'm arguing that "MS Shell Dlg" is the only sane choice as we can't know
that 'Arial Unicode' is going to exist on all systems.
Because dialog resources don't even let you choose a charset, we can't
argue about that.
However, the main app itself needs to create fonts capable of displaying
characters from arbitrary languages. And now things get more hairy. How
does one rationally choose a CHARSET_* value for the LOGFONT struct?
What typefaces is it ligitimate to ask for? Should I just ask for
'Arial' or some common-on-english-systems typeface and hope that all
international users get a good experience? Because we do put the
application out in several languages, I can configure a default typeface
name appropriate to the language setting of the app - but, because users
are allowed to chat, I still need the fonts to be capable if displaying
multiple languages.
Im relly hoping font-linking steps in to save the day. But I'd like to
be sure Im doing as much as I can to give the right hints to everything
such that even users on Windows 2000 don't get a crappy ui experience
(and im pretty sure that font linking wasn't so hot in win2k).