【发布时间】:2017-02-24 06:39:38
【问题描述】:
我在 MFC 中创建了一个对话框,并使用CDateTimeCtrl 显示/设置时间。直到 Windows 10 Build 10240 显示正确的时间,但是一旦您进行了 Windows 的最新更新,CDateTimeCtrl 将显示空白值。
使用的字体是“MS Shell Dlg”。
我的问题是为什么CDateTimeCtrl 在 Windows 10 RS2(Build 1703)上显示空白值,即使时间已设置。 Windows 10 不支持“MS Shell Dlg”字体还是有其他原因?
以下是代码:
SYSTEMTIME systime;
long lStyle;
CFont Fontvar;
CDateTimeCtrl m_DateTimeCtrl
GetLocalTime(&systime);
lStyle = ::GetWindowLong(m_DateTimeCtrl.m_hWnd, GWL_STYLE);
lStyle |= DTS_TIMEFORMAT;
::SetWindowLong(m_DateTimeCtrl.m_hWnd, GWL_STYLE, lStyle);
Fontvar.CreatePointFont(10, _T("MS Shell Dlg"));
m_DateTimeCtrl.SetFont(&Fontvar);
m_DateTimeCtrl.SetFormat(_T("HH:mm:ss"));
m_DateTimeCtrl.SetTime(&systime);
【问题讨论】:
-
即使这对你自己来说是显而易见的,但对我来说却不是:你的问题是什么?
-
我的问题是为什么 CDateTimeCtr 在 Windows 10 RS2 上显示空白值,即使时间已设置。 Windows 10 不支持字体“MS Shell Dlg”还是有其他原因?
-
据我所知,支持 @Mrunal MS Shell Dlg 。它实际上是一种字体映射到另一种字体。 Windows 10 上的日期时间控制功能。您是否考虑过提供更多信息,例如屏幕截图和相应的代码?想想你可能需要什么来回答某人的问题。 :)
-
在上述代码中,如果字体未设置为 CDateTimeCtrl,则时间会正确显示在控件中,但如果设置了字体,则 CDateTimeCtrl 不会显示任何内容。有办法解决这个问题吗?