如何在 CDateTimeCtrl 中居中对齐文本?

Posted

技术标签:

【中文标题】如何在 CDateTimeCtrl 中居中对齐文本?【英文标题】:How to center align text in CDateTimeCtrl? 【发布时间】:2019-01-29 01:34:52 【问题描述】:

我在对话应用程序中使用CDateTimeCtrl。现在我们已经与客户商定了CDateTimeCtrl 的大小。第一个问题是,默认情况下它是左对齐的,并且非常靠近左边框。第二个问题是它在控件的右侧留下了一个非常宽的空间。因此,解决这两个问题的解决方案是居中对齐文本。

不幸的是,在“属性”窗口中,没有对齐属性(“右对齐”除外,当我尝试切换它时没有任何变化)。

现在,我尝试在 OnInitDialog() 事件中调用 CWnd::ModifyStyle。另外,这也不行。

对于实际代码,

auto timePicker = (CDateTimeCtrl*)GetDlgItem(IDC_TIME_PICKER);
timePicker->ModifyStyle(0, SS_CENTER);

return TRUE; // this function is the OnInitDialog()

如果调用此函数不会使CDateTimeCtrl 的文本居中,我会遗漏什么?

【问题讨论】:

【参考方案1】:

您不能使用适合静态控件的样式并在日期时间控件中使用该样式。

列出了所有可用的样式here。

控件本身也没有子控件。它自己绘制值。 也许有机会继承控件并覆盖WM_PAINT消息并自己进行一种所有者绘制。

我不使用日期时间选择器,我承认:我一点也不喜欢它。我编写了一个完整的自己的控件,它更加灵活。

【讨论】:

以上是关于如何在 CDateTimeCtrl 中居中对齐文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何使文本在openoffice电子表格的单元格中居中?

在文本字段中居中对齐占位符

在 svg 中居中文本无法正常工作

如何让文本在可滚动的 UILabel 中居中?

如何在具有视口单位的 div 中居中文本?

如何在 XAML 中居中​​选项卡式页面选项卡图标和/或文本?