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

Alw*_*uff 5 c++ winapi locale

编辑:

根据社区的意见减少和优化问题.问题的删除部分将作为单独的问题发布.

题:

是否有任何WM_SOMETHINGNM_SOMETHING消息Win32 API可以通知我有关用户更改locale

你看,我可以使用该消息/通知将我的程序更改locale当前locale.

像这样的伪代码:

case WM_SOMETHING: // in my main window procedure
    _wsetlocale( LC_ALL, L"" );
Run Code Online (Sandbox Code Playgroud)

此外,如果有这样的消息,我处理它如上面的伪代码,将其调整仅适用于主窗口的 locale还是会还设立locale了子对话框和控制

我努力解决这个问题:

通过互联网浏览后,我发现的唯一的事情是WM_INPUTLANGCHANGE,WM_SETTINGCHANGEWM_INPUTLANGCHANGEREQUEST的消息,但我从来没有使用过,不知道他们是否可以解决我的问题.

谢谢.

最好的祝福.

Ken*_*ite 7

Windows发送一条WM_SETTINGCHANGE消息,wParam设置为0,并将lParamset设置为包含该值的字符串intl.这WM_SETTINGCHANGE参数部分的文档中描述:

wParam ......

当系统因区域设置更改而发送此消息时,此参数为零.

lParam ......

当系统因区域设置更改而发送此消息时,此参数指向字符串"intl".

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