Sorting it all Out Michael Kaplan's random stuff of dubious value Be sure to read the disclaimer here first!
I have talked in this blog about a lot of different kind of font mapping features in various Microsoft technologies.
Like Windows Font Substitution.
And GDI's Font Linking.
And MLang's Font Linking.
And Uniscribe's Font Fallback.
And GDI/GDI+ Private Fonts.
This post is going to be about something else though. I am going to talk about logical fonts, specifically MS Shell Dlg and MS Shell Dlg 2, which are documednted in this Platform SDK post.
There are many important details documented there, for example:
And there are some really important points that are easy to miss:
The other interesting point is the way the mapping is documented as being one that will be different on other versions of Windows.
Especially since the font mappings underneath are not guaranteed to stay the same.
Add to that the fact that different ways to use them can cause different results, as Raymond pointed out in What's the deal with the DS_SHELLFONT flag?
And then it ends by reminding people that these two logical fonts, which are based in part on the default system locale, are not always the best choice for UI fonts when the system locale changes (since it is the UI language that covers the content language for Windows, any scenario that mixes different combinations of system locale and UI language may end up with unexpected results).
(This is also covered in the MSKB, article 282187 -- an article which highlights the difference between PSS and core development teams, as the latter would never say "You can manually change the font mapping if a single font will suit the needs of both the computer dialogs and the localized programs that are having display problems.")
Another good source of info is this page, which talks mopre about what is easy and what is hard (look at the section on Fonts specifically, for help here in development).
In summary, on the whole, unless you are either
you should probably at least consider using a font other than MS Shell Dlg/MS Shell Dlg 2....
This post brought to you by "‰" (U+2030, a.k.a. PER MILLE SIGN)
(Previous posts in this series can be read here and here ) There are a lot of different distribution
Today I am going to try to clear out some Contact link questions.... The next Contact link question that
Hi Mike,
You say that,
"On Windows NT 4.0/2000/XP/Server 2003/Vista, both map to Unicode-based TrueType fonts. MS Shell Dlg uses Microsoft Sans Serif (which is distinct from MS Sans Serif) for Latin, Greek, Cyrillic, Arabic, Hebrew, and Thai characters; MS UI Gothic for Japanese; Gulim for Korean; Simsun for Simplified Chinese; PMinglu for Traditional Chinese; etc."
Yet when I look at the
key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\FontSubstitutes on a Chinese XP SP2 or Win 2003 R2 SP1, I see that for Chinese these reference MS San Serif and Tahoma not Simsun or PMinglu.
Am I missing something?
Thanks,
Patrick.