属性表 (MFC) 的 RTL 布局问题

发布于 2024-10-12 15:23:53 字数 376 浏览 1 评论 0原文

我正在阿拉伯语 Windows 中运行我的英语应用程序。它包含一个属性表 UI (MFC)。一切似乎都很好(从左到右或 LTR),除了按钮(确定、取消、应用和帮助)是从右到左或 RTL。但是如何让按钮LTR呢?

  • 我尝试了 MSDN 上提到的标志 PSH_RTLREADING,但它只处理窗口标题,而不处理按钮。

  • 此外,我注意到 这个讨论但没有一个好的解决方案。

I am running my English application in Arabic Windows. It contains a property sheet UI (MFC). Everything seems to be fine (Left-To-Right or LTR), except the buttons (OK, Cancel, Apply, and Help) which are Right-To-Left or RTL. But how to make the buttons LTR?

  • I played around with the flag PSH_RTLREADING mentioned on MSDN but it only deals with the window caption, not the buttons.

  • Besides, I noticed this dicussion but there is not a good solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁的新欢旧爱 2024-10-19 15:23:53

Raymond Chen [1] 和另一位微软员工 [2] 给出了答案;您必须从 CDialog(又名 CPropertySheet)创建的窗口中的按钮中删除 WS_EX_LAYOUTRTL 样式。您可以在创建 CMainFrame 并将其继承到所有子窗口时全局执行此操作,也可以通过从 GWL_EXSTYLE 更改窗口样式来本地执行此操作。

[1] http://blogs.msdn.com/ b/oldnewthing/archive/2010/06/11/10023274.aspx

[2] http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/057612e7-6cd4-44cf-a746-6370ace5de09

The answer is given by Raymond Chen [1] and another Microsoft employee [2]; you have to remove the WS_EX_LAYOUTRTL style from the buttons in the window created by your CDialog (aka CPropertySheet). You can either do this globally when you create your CMainFrame and inherit it to all child windows, or locally by changing the window style from GWL_EXSTYLE.

[1] http://blogs.msdn.com/b/oldnewthing/archive/2010/06/11/10023274.aspx

[2] http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/057612e7-6cd4-44cf-a746-6370ace5de09

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文