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

时间:2019-01-29 01:34:53

标签: c++ mfc text-formatting

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

不幸的是,在“属性”窗口中,没有对齐属性(“右对齐”除外,在其中尝试切换时没有任何更改)。

现在,我已经尝试在CWnd::ModifyStyle事件中调用OnInitDialog()。另外,这也没有运气。

对于实际代码,

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

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

我可能会缺少调用此函数不能使CDateTimeCtrl的文本居中吗?

1 个答案:

答案 0 :(得分:0)

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

列出了所有可用的样式here

该控件本身也没有子控件。它自己绘制值。 也许有机会将控件子类化并覆盖WM_PAINT消息,并自己进行某种所有者绘图。

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