activateKeyboardLayout 函数 (winuser.h)

设置调用线程或当前进程的输入区域设置标识符(以前称为键盘布局句柄)。 输入区域设置标识符指定区域设置以及键盘的物理布局。

语法

HKL ActivateKeyboardLayout(
  [in] HKL  hkl,
  [in] UINT Flags
);

参数

[in] hkl

类型: HKL

要激活的输入区域设置标识符。

输入区域设置标识符必须已通过先前对 LoadKeyboardLayout 函数的调用加载。 此参数必须是键盘布局的句柄或以下值之一。

含义
HKL_NEXT
1
选择系统维护的已加载区域设置标识符循环列表中的下一个区域设置标识符。
HKL_PREV
0
选择系统维护的已加载区域设置标识符循环列表中的上一个区域设置标识符。

[in] Flags

类型: UINT

指定如何激活输入区域设置标识符。 此参数的取值可为下列值之一:

含义
KLF_REORDER
0x00000008
如果设置了此位,则会通过将区域设置标识符移动到列表的头来重新排列系统已加载的区域设置标识符的循环列表。 如果未设置此位,则无需更改顺序即可旋转列表。

例如,如果用户有一个处于活动状态的英语区域设置标识符,并且将法语、德语和西班牙语区域设置标识符加载 () 顺序,则激活具有 KLF_REORDER 位集的德语区域设置标识符将生成以下顺序:德语、英语、法语、西班牙语。 在未设置 KLF_REORDER 位的情况下激活德语区域设置标识符将生成以下顺序:德语、西班牙语、英语、法语。

如果加载的区域设置标识符少于三个,则此标志的值无关紧要。

KLF_RESET
0x40000000
如果已设置 但未设置KLF_SHIFTLOCK ,则再次按 Caps Lock 键关闭 Caps Lock 状态。 如果同时 设置了 KLF_SHIFTLOCK, 则通过按任一 SHIFT 键关闭 Caps Lock 状态。

这两种方法是互斥的,设置在注册表中作为用户配置文件的一部分保留。

KLF_SETFORPROCESS
0x00000100
激活整个进程的指定区域设置标识符,并将 WM_INPUTLANGCHANGE 消息发送到当前线程的焦点或活动窗口。
KLF_SHIFTLOCK
0x00010000
这与 KLF_RESET 一起使用。 有关说明 ,请参阅KLF_RESET
KLF_UNLOADPREVIOUS
不支持此标志。 请改用 UnloadKeyboardLayout 函数。

返回值

类型: HKL

返回值的类型为 HKL。 如果函数成功,则返回值为上一个输入区域设置标识符。 否则为零。

若要获取扩展的错误信息,请使用 GetLastError 函数。

注解

此函数仅影响当前进程或线程的布局。

此函数不限于键盘布局。 hkl 参数实际上是输入区域设置标识符。 这是一个比键盘布局更广泛的概念,因为它还可以包含语音转文本转换器、输入法编辑器 (输入法编辑器) 或任何其他形式的输入。 一次可以加载多个输入区域设置标识符,但一次只有一个处于活动状态。 加载多个输入区域设置标识符可以在它们之间快速切换。

如果每个区域设置允许多个 IME,则传递输入区域设置标识符,其中高字 (设备句柄) 为零,将激活属于该区域设置的列表中的第一个 IME。

KLF_RESETKLF_SHIFTLOCK标志会更改关闭 Caps Lock 状态的方法。 默认情况下,通过再次点击 Caps Lock 键关闭 Caps Lock 状态。 如果仅设置 KLF_RESET ,则重新建立默认状态。 如果设置了 KLF_RESETKLF_SHIFTLOCK ,则通过按任一 Caps Lock 键关闭 Caps Lock 状态。 此功能用于符合本地键盘行为标准以及个人首选项。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll

请参阅

概念性

GetKeyboardLayoutName

键盘输入

LoadKeyboardLayout

引用

UnloadKeyboardLayout