【问题标题】:How to make a dialog title right/left aligned如何使对话框标题右/左对齐
【发布时间】:2015-11-18 08:54:41
【问题描述】:

CWnd::SetWindowText 方法的帮助下,我可以为基于dailog 的应用程序设置所需的标题。如何使其左/右对齐?

【问题讨论】:

    标签: mfc cwnd


    【解决方案1】:

    要右对齐对话框标题,需要在资源编辑器中为对话框设置“右对齐文本”(对应的扩展样式为WS_EX_RIGHT)。

    WS_EX_LAYOUTRT 样式实际上会翻转对话框,因此所有控件的布局都是从右到左。标题确实向右移动,但关闭按钮向左移动。不是原始问题中所问的。

    【讨论】:

      【解决方案2】:

      很少有像WS_EX_RIGHT 这样的扩展窗口样式可以做到这一点。

      这是一个示例:

      int CTestAlignDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
      {
          if (CDialogEx::OnCreate(lpCreateStruct) == -1)
              return -1;
      
          ModifyStyleEx(0, WS_EX_LAYOUTRTL | WS_EX_RTLREADING);
      
          return 0;
      }
      

      【讨论】:

      • 我需要编辑 .rc 文件吗?还是使用我需要更改样式的方法?
      • 您可以为此窗口致电ModifyStyleEx
      • 我在 rc 文件中尝试了这种类型的东西:STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU |WS_EX_LEFT 并尝试过: ModifyStyleEx(0,WS_EX_LEFT);两者都是徒劳的
      • 您可能对 WS_EX_RTLREADING 和 WS_EX_LTRREADING 样式感兴趣。
      • 只是想要一个关于如何使用它的示例,因为 ModifyStyleEx(0,WS_EX_LEFT) 或 ModifyStyleEx(0,WS_EX_LTRREADING);似乎没有工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      相关资源
      最近更新 更多