SetThreadUILanguage 函数 (winnls.h)
设置当前线程的用户界面语言。
Windows Vista 及更高版本: 此函数无法清除线程首选 UI 语言列表。 MUI 应用程序应调用 SetThreadPreferredUILanguages 以清除语言列表。
Windowsxp: 此函数仅限于允许操作系统标识和设置可在 Windows 主机上安全使用的值。
语法
LANGID SetThreadUILanguage(
[in] LANGID LangId
);
参数
[in] LangId
线程用户界面语言的语言标识符。
Windows Vista 及更高版本: 应用程序可以指定语言标识符 0 或非零标识符。 有关详细信息,请参见“备注”部分。
Windowsxp: 应用程序只能将此参数设置为 0。 此设置会导致函数选择最支持控制台显示的语言。 有关详细信息,请参见“备注”部分。
返回值
如果成功,则返回输入语言标识符。 如果输入标识符为非零值,则函数将返回该值。 如果语言标识符为 0,则函数始终成功并返回最支持 Windows 控制台的语言的标识符。 请参阅“备注”部分。
如果输入语言标识符为非零且函数失败,则返回值与输入语言标识符不同。 若要获取扩展错误信息,应用程序可以调用 GetLastError。
注解
创建线程时,线程用户界面语言设置为空,线程的用户界面以用户选择的语言显示。 此函数使应用程序能够更改当前正在运行的线程的用户界面语言。
Windows Vista 及更高版本: 调用此函数并为语言标识符指定 0 与使用设置MUI_CONSOLE_FILTER标志调用 SetThreadPreferredUILanguages 相同。 如果应用程序指定有效的非零语言标识符,则函数会为线程设置特定的用户界面语言。 为语言标识符指定 0 后,应用程序不能使用以下任何常量来对应于语言标识符:
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
C# 签名
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.UInt16 SetThreadUILanguage(
System.UInt16 LangId
);
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |