Win32 API. Функции и сообщения ввода информации с клавиатуры
Страница 2. Функция ActivateKeyboardLayout


Функция ActivateKeyboardLayout

(АктивизацияРаскладкиКлавиатуры)

Выполнение функции < b>в среде Windows 95 и Windows NT существенно различается. Чтобы выявить эти различия, эта страница справочника первые представляет ее реализацию в среде Windows 95 во всей полноте, в соответствии с версией Windows NT.

Windows 95:

Функция ActivateKeyboardLayout устанавливает язык ввода для текущего потока. Эта функция принимает дескриптор раскладки символов на клавиатуре, который идентифицирует регион также как и физическую раскладку клавиатуры.

Синтаксис

HKL ActivateKeyboardLayout
(
HKL hkl,// дескриптор раскладки клавиатуры
UINT Flags// флажки раскладки клавиатуры
);

Параметры
hkl
Дескриптор раскладки символов на клавиатуре или дополненный нулями идентификатор региона. Этот параметр может быть любой допустимый дескриптор раскладки символов на клавиатуре, полученный при помощи использования функции LoadKeyboardLayout или GetKeyboardLayoutList или одного из следующих значений:

  • HKL_NEXT - Выбирает следующую раскладку в списке раскладок символов на клавиатуре, поддерживаемых системой.
  • HKL_PREV - Выбирает предыдущую раскладку в списке раскладок символов на клавиатуре, поддерживаемых системой.

Flags
Определяет флажки раскладки символов на клавиатуре. Значение этого параметра может быть:

  • KLF_REORDER - Переупорядочивает список раскладок символов на клавиатуре, перемещая данный дескриптор раскладки в начало списка. Если это значение не дается, список пролистывается без изменения порядка. Например, если пользователь имеет активной Английскую раскладку, а также имеет загруженные Французскую, Немецкую и Испанскую раскладки (вот в таком порядке), то активизация Немецкой раскладки с установленным битом KLF_REORDER создаст следующий порядок: Немецкая, Английская, Французская, Испанская раскладки. Активизация Немецкой раскладки без установки значения KLF_REORDER создала бы следующий порядок: Немецкая, Испанская, Английская, Французская раскладки.

Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - дескриптор предыдущей раскладки символов на клавиатуре. Иначе, оно нулевое. Чтобы получить расширенные данные об ошибках, используйте функцию GetLastError.

Замечания
Несколько раскладок символов на клавиатуре могут быть загруженными в любой момент, но в каждый отдельный момент, активной - может быть только одна. Загрузка многочисленных раскладок клавиатуры делает возможным быстро переключаться между ними.
Прикладная программа может создать правильный дескриптор раскладки, при помощи установки в старшем слове нулей, а младшем слове идентификатора региона. Использование таких дескрипторов раскладки символов на клавиатуре изменяет язык ввода данных без воздействия на физическую раскладку.
Когда для каждого региона предусмотрены многочисленные редакторы метода ввода данных (IME), передающийся дескриптор раскладки символов на клавиатуре, в котором старшее слово (дескриптор устройства) является нулевым, приводит в действие первый IME в списке "принадлежащем" региону.

Смотри также
LoadKeyboardLayout, GetKeyboardLayoutName, UnloadKeyboardLayout

Windows NT:

Функция ActivateKeyboardLayout активизирует другую раскладку символов на клавиатуре и устанавливает активную раскладку символов в целом для системы, а не для вызывающего потока.

Синтаксис

BOOL ActivateKeyboardLayout(
HKL hkl,// дескриптор раскладки клавиатуры
UINT Flags// флажки раскладки клавиатуры
);

Параметры
hkl
Идентифицирует раскладку символов на клавиатуре, которая будет активизирована. Раскладка должна быть загружена предыдущим вызовом функции LoadKeyboardLayout. Этот параметр должен быть или дескриптор раскладки символов на клавиатуре или одно из следующих значений:

  • HKL_NEXT - Выбирает следующую раскладку в списке раскладок символов на клавиатуре, поддерживаемых системой.
  • HKL_PREV - Выбирает предыдущую раскладку в списке раскладок символов на клавиатуре, поддерживаемых системой.

Flags
Определяет, какая раскладка символов на клавиатуре должна быть активизирована. Этот параметр может быть одним из следующих значений:

  • KLF_REORDER - Если этот бит установлен, кольцевой список системы загруженных раскладок символов на клавиатуре переупорядычевается. Если этот бит не установлен, список чередуется без изменения порядка. Например, если пользователь имел активной Английскую раскладку, а также имеет загруженные Французскую, Немецкую и Испанскую раскладки (вот в таком порядке), то активизация Немецкой раскладки с установленным битом KLF_REORDER создаст следующий порядок: Немецкая, Английская, Французская, Испанская раскладки. Активизация Немецкой раскладки без установки значения KLF_REORDER создала бы следующий порядок: Немецкая, Испанская, Английская, Французская раскладки.Если загружены меньше чем три раскладки символов на клавиатуре, значение этого флажка не применяется.
  • KLF_UNLOADPREVIOUS - Предварительно загружает активную раскладку клавиатуры.

Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - ИСТИНА (TRUE).
Если функция не выполняет задачу, величина возвращаемого значения - ЛОЖЬ(FALSE). Чтобы получить расширенные данные об ошибках, вызовите GetLastError.

Замечания
Несколько раскладок символов на клавиатуре могут быть загруженными в любой момент, но в каждый момент времени активной может быть только одна. Загрузка многочисленных раскладок символов на клавиатуре делает возможным быстро переключиться между раскладками.

Смотри также
LoadKeyboardLayout, GetKeyboardLayoutName, UnloadKeyboardLayout

Размещение и совместимость ActivateKeyboardLayout

Windows NTДа 
Win95Да
Win32sНет
Импортируемая библиотекаuser32.lib
Заголовочный файлwinuser.h
UnicodeНет
Замечания по платформеНе имеется

 
« Предыдущая статья   Следующая статья »