【问题标题】:MFC/WinApi: How detect when system language changes in windows 10?MFC/WinApi:如何检测 Windows 10 中的系统语言何时发生变化?
【发布时间】:2018-11-03 19:24:54
【问题描述】:

我正在尝试检测 Windows 10 操作系统中的系统语言何时发生变化,是否有任何我可以订阅的 Windows 消息 (DefWindowProc) 或其他方式?

提前致谢。

【问题讨论】:

  • 用户默认语言需要注销/登录才能发生更改。我认为 "system language" 仅适用于 Windows 欢迎屏幕。不清楚你在问什么。您可以在国家/语言设置中解决很多问题。
  • @Timbo:OP 改变了问题。它不再是重复的。

标签: c++ windows winapi mfc ime


【解决方案1】:

看看WM_SETTINGCHANGE。当系统的区域设置更改时,lParam 将是一个指向值为"intl" 的字符串的指针。

【讨论】:

  • 这不会报告输入语言的变化,这需要WM_INPUTLANGCHANGE
  • 对我来说,当我更改语言环境而不是“intl”时,lParam 返回 648600
  • @kittu lParamWM_SETTINGCHANGE 包含一个指向以 null 结尾的字符串的指针。您需要键入lParam 才能访问该字符串。 lParam 不会成为 "intl",它将指向 "intl" 存储在内存中的其他位置。
  • @kittu WM_INPUTLANGCHANGElParam 是一个“本地标识符”(LCID)。 648600 (0x9E598) 作为LCID 不代表标准语言环境,AFAICS。所以我假设你不是指WM_INPUTLANGCHANGE,而是WM_SETTINGCHANGE,基于你的earlier question
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 2015-10-14
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多