And*_*ine 3 c++ winapi internationalization
我们开发了Windows API应用程序,其中有一个带有嵌套子菜单的上下文菜单。我们以多种语言本地化该应用程序,包括希伯来语。
由于键盘支持对我们来说是必须的,因此我们需要知道是在按向右箭头(LTR)还是向左箭头(RTL)时打开子菜单。
我们的开发人员确实使用了MSDN上TrackPopupMenu()描述的功能,但是他需要知道何时设置标志。
因此,问题是:如何定义当前系统区域设置是LTR还是RTL才能正确处理菜单?TPM_LAYOUTRTL
我正在回答,因为我们已经找到了解决方案(并且评论确认我们在正确的道路上)。
为了确定当前系统的语言环境是否是RTL或LTR,我们应该使用GetLocaleInfoEx带LOCALE_IREADINGLAYOUT。MSDN对此发表了以下看法:
Windows 7和更高版本:文本的阅读布局。下表中定义了可能的值。
可能的值实际上是:
0 —从左到右(英语);1 —从右到左(希伯来语或阿拉伯语);2 —或者从上到下垂直阅读,列从右到左,或者从左到右阅读水平行(如日语);3 —从上到下垂直阅读,列从左到右(如蒙古语)。| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |