Share via


Using MS Shell Dlg and MS Shell Dlg 2

The MS Shell Dlg and MS Shell Dlg 2 logical fonts allow your application to implement dialog boxes, menus, etc., that display well on all supported Windows operating systems and across all languages. For example, if your application uses MS Shell Dlg or MS Shell Dlg 2 for its dialog boxes, a localization team creating Greek-language resources for your application can focus on translating text. They don't have to be concerned with issues like the distinction between MS Sans Serif and MS Sans Serif Greek.

Note: Because the font generated using MS Shell Dlg is different on different versions of Windows, you should ensure that your application dialog boxes display well on all platforms.

Map the Logical Fonts

On Windows 95, Windows 98, and Windows Me, both of the logical fonts map to code page-based bitmap fonts. MS Shell Dlg generally maps to a code page-specific version of MS Sans Serif. MS Shell Dlg 2 maps to a code page-specific bitmap Tahoma font.

On Windows NT 4.0, Windows 2000 or XP, Windows Server 2003, and Windows Vista, both of the logical fonts 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. MS Shell Dlg 2 simply uses the Tahoma font, and characters that are not implemented in Tahoma are available through font linking. The main advantage of Tahoma over Microsoft Sans Serif is that Tahoma has a native bold font face. Its main disadvantage is that older operating systems might not have it installed, and might substitute a less attractive font.

Windows 2000 and later: MS Shell Dlg 2 maps to Tahoma, which is the default font used throughout the operating system. An application that runs only on this operating system can specify DS_SHELLFONT with MS Shell Dlg 2 to map to Tahoma. However, an application that also runs on Windows NT 4.0, Windows 95, Windows 98, or Windows Me should specify DS_SHELLFONT with MS Shell Dlg instead of MS Shell Dlg 2.

Applications that never run on Windows 95, Windows 98, or Windows Me can use either Microsoft Sans Serif or Tahoma explicitly, and save the level of indirection involved in using MS Shell Dlg or MS Shell Dlg 2. Because of font linking, specifying Microsoft Sans Serif or Tahoma provides appropriate glyphs for all languages.

Use MS Shell Dlg for a Non-English Application on Windows 95/98/Me

On Windows 95, Windows 98, and Windows Me, MS Shell Dlg is not intended for use with a static, non-English user interface application that runs when the user has chosen a locale with a different Windows base character set. In this case, the application user interface language might not be supported with the font that is substituted for MS Shell Dlg. For example, if the user is using a German-language version of Windows and wants to install a non-Unicode Greek-language application, the user attempts to change the locale to Greek (Greece). This action resets MS Shell Dlg to a Greek font, but this font does not contain all the glyphs necessary to display in German. Therefore, any non-ASCII characters in the German-language user interface will not display properly. To support this scenario, an application has to set MS Shell Dlg to a font that contains both the Western European and the Greek glyphs.

Using National Language Support, Localization and the Shell Font