Win32中是否有消息或通知检测用户何时更改区域设置?

时间:2014-02-01 21:47:48

标签: c++ winapi locale

编辑:

根据社区的评论减少和优化问题。问题的删除部分将作为单独的问题发布。

问题:

WM_SOMETHING中是否有NM_SOMETHINGWin32 API条消息可以告诉我有关用户更改locale的消息?

您知道,我可以使用该消息/通知将我的计划locale 更改为当前locale 。< / p>

像这样的伪代码:

case WM_SOMETHING: // in my main window procedure
    _wsetlocale( LC_ALL, L"" );

另外,如果有这样的消息,我按照上面的伪代码处理它,它会调整仅主窗口 locale还是还为子对话框和控件设置locale ?。

我努力解决这个问题:

浏览互联网后,我发现的唯一内容是WM_INPUTLANGCHANGEWM_SETTINGCHANGEWM_INPUTLANGCHANGEREQUEST消息,但我从未使用它们,也不知道它们是否可以解决我的问题。

谢谢。

最好的问候。

1 个答案:

答案 0 :(得分:7)

Windows发送WM_SETTINGCHANGE消息,wParam设置为0lParam设置为包含值intl的字符串。在参数部分的<{1}}文档中对此进行了描述:

  

的wParam   ...

     

当系统通过更改区域设置发送此消息时,此参数为零。

     

lParam的   ...

     

当系统发送此消息作为区域设置更改的结果时,此参数指向字符串&#34; intl&#34;。

您的应用程序需要响应消息并在子对话框和控件中自行进行必要的更改。