KeybFont.exe - Input Language and Font Matching (152753)
The information in this article applies to:
- Microsoft Platform Software Development Kit (SDK) 1.0
This article was previously published under Q152753 SUMMARY
In Windows 95 and Windows NT 4.0 non-Unicode applications, when the input
language changes and, as a result, the default character set supported by
this language also changes, the script of the current font should also be
changed, such as changing the input language from English to Russian. By
the same token, when the character set (script) of the font changes, the
input language should be changed to match the new script, such as changing
from Times New Roman Western script to Times New Roman Cyrillic script.
Note that in Windows NT 4.0 Unicode applications, changing the font is not
necessary because of support for multicharset fonts. For these
applications, the methods described here can be used to detect if a given
language is supported by a given font.
The KEYBFONT sample demonstrates the use of WM_INPUTLANGCHANGEREQUEST and
WM_INPUTLANGCHANGE messages to match the current font to the input
language. If the current font is changed, the list of loaded keyboard
drivers is scanned for a match and, if one is found, the font is allowed to
change. Otherwise, an error message is displayed and the font does not
change. If the input language changes, the scripts of the current font are
scanned for a match and, if none is found, an error message is displayed
and the input language does not change.
MORE INFORMATIONThe following file is available for download from the Microsoft Download Center:
For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:
119591 How to Obtain Microsoft Support Files from Online Services
Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.
Note Use the -d option when running Keybfont.exe to decompress the file and recreate the proper directory structure.
The WM_INPUTLANGCHANGEREQUEST message is sent when the user chooses an
input language, either with an input language change hotkey (see Control
Panel.Keyboard.Language.Switch Languages) or from the language indicator on
the system taskbar. This indicator will only be present if more than one
keyboard layout has been installed and the indicator is enabled. An
application can accept the change by passing the message to the
DefWindowProc function, or reject the change, preventing it from taking
place, by returning immediately.
In this sample, during WM_INPUTLANGCHANGEREQUEST, the character set of the
requested language is compared to the default character set of each
font script in the current font family through EnumFontFamilies(). If the font is not supported, the function returns immediately, disallowing any
language change request.
The WM_INPUTLANGCHANGE message is sent to the top-most affected window
after a task's locale has been changed. It should be used to make any
application-specific settings, such as changing the current font script,
and passed on to the DefWindowProc function to be passed on to any
children.
In this sample, during WM_INPUTLANGCHANGE, the script of the current font
is changed to match the character set of the language the user has switched
to.
REFERENCES
For more information on font scripts and multilanguage keyboard support,
please see the Chapter "Accommodating Multilingual I/O on Microsoft
Windows" in "Developing International Software", by Nadine Kano (MS Press
ISBN: 1-55615-840-8).
Modification Type: | Minor | Last Reviewed: | 7/11/2005 |
---|
Keywords: | kbdownload kbfile kbinfo kbIntlDev kbSample KB152753 kbAudDeveloper |
---|
|