如何使对话框标题右/左对齐
Posted
技术标签:
【中文标题】如何使对话框标题右/左对齐【英文标题】:How to make a dialog title right/left aligned 【发布时间】:2015-11-18 08:54:41 【问题描述】:在CWnd::SetWindowText
方法的帮助下,我可以为基于dailog 的应用程序设置所需的标题。如何使其左/右对齐?
【问题讨论】:
【参考方案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);似乎没有工作。以上是关于如何使对话框标题右/左对齐的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Flexbox 使一个弹性项目居中对齐并右对齐另一个