Описание: вопросы о том, как автоматизировать загрузку новых шрифтов и новой раскладки клавиатуры |
Поиск в теме | Версия для печати |
Жанызак |
Отправлено: 14 Мая, 2006 - 16:12:47
|
Newbie
![](./im/images/pips1.gif)
Покинул форум
Сообщений всего: 34
Дата рег-ции: Сент. 2005
Карма 0
![](./templates/InvisionExBB/im/spacer.gif)
|
http://www.firststeps.ru :
10.16.1.14 - Функция LoadKeyboardLayout
Windows NT:
Функция LoadKeyboardLayout загружает раскладку символов на клавиатуре.
Синтаксис
HKL LoadKeyboardLayout(
LPCTSTR pwszKLID, // адрес буфера с названием раскладки
UINT Flags // флажки раскладки клавиатуры
);
Параметры
pwszKLID
Указывает на буфер, который определяет название раскладки символов на клавиатуре. Название должно быть получено из шестнадцатеричного значения идентификатора языка, соответствующего раскладке. Например, Американский Английский язык имеет идентификатор языка 0x0409, так что первичная Американская Английского языка раскладка называется "00000409". Варианты Американской Английского языка раскладки, типа раскладки Дворака, названы "00010409", "00020409", и так далее. За списком первичных идентификаторов языка и идентификаторов подмножества языка, которые составляют идентификатор языка, следит макрокоманда MAKELANGID.
Flags
Устанавливает, как раскладка символов на клавиатуре должна быть загружена. Этот параметр может быть одним из следующих значений:
* KLF_ACTIVATE - Функция загружает раскладку, если она ещё не загружена, и активизирует её. Это значение активизирует раскладку для системы, взятой в целом, а не только для вызывающего потока.
* KLF_REORDER - Этот флажок значим, только тогда, если установлен флажок KLF_ACTIVATE, а раскладка уже загружена. Если эти условия выполнены и бит KLF_REORDER установлен, функция удаляет заданную раскладку из её позиции в круговом списке системы загруженных раскладок и перемещает её в голову списка как активную раскладку.Если бит KLF_ACTIVATE установлен и раскладка загружена, но бит KLF_REORDER не установлен, функция просто вращает круговой список загруженных раскладок в системе.Если флажок KLF_ACTIVATE установлен, а раскладка ещё не загружена, она загружается как активная раскладка и вставляется в системный круговой список раскладок клавиатуры впереди активной предыдущей раскладки.
* KLF_SUBSTITUTE_OK - Заданная раскладка ищет в конфигурации пользователя (в системном реестре под ключом HKEY_CURRENT_USER\Keyboard Layout\Substitutes) раскладку замены, предпочитаемую пользователем. Например, если в этом разделе имелось значение названия "00000409" равное "00010409", загружается Американская Английского языка раскладка ("00000409" с установкой флажка KLF_SUBSTITUTE_OK, который заставит быть загруженной раскладку США Английского языка Дворака ("00010409"![Подмигивание Подмигивание](./im/emoticons/ironical1.gif)
* KLF_UNLOADPREVIOUS - Если флажок KLF_ACTIVATE установлен, а раскладка успешно загружена и активизирована, функция выгружает активную предыдущую раскладку. Иначе, функция игнорирует этот флажок.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - дескриптор раскладки символов на клавиатуре.
Если функция не выполняет задачу, величина возвращаемого значения - ПУСТО (NULL). Чтобы получить расширенные данные об ошибках, вызовите GetLastError.
Замечания
Одновременно могут быть загруженными несколько раскладок символов на клавиатуре, но активной может быть только одна. Загрузка многочисленных раскладок символов на клавиатуре делает возможным быстро переключаться между ними.
Смотри также
ActivateKeyboardLayout, GetKeyboardLayoutName, UnloadKeyboardLayout
Размещение и совместимость LoadKeyboardLayout
Windows NT Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Windows 95: В одно и то же время загружается только 1 клавиатура
|
|
|
|
Поиск в теме | Версия для печати |
Страниц (6): « 1 2 3 4 [5] 6 » |
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0, скрытых: 0) |
« Ваш компьютер » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
![](./templates/InvisionExBB/im/russian/newpoll.gif) ![](./templates/InvisionExBB/im/russian/newthread.gif) |
|