大家好! 请问谁有支持毫秒的时间控件,CDateTimePicker不支持毫秒啊! VS2008 + MFC
谢谢!发我一份 442357047@qq.com
参考GPT和自己的思路,CDateTimePicker 控件确实不支持毫秒,不过您可以使用 CDateTimeCtrl 控件来实现带毫秒的时间选择器。
CDateTimeCtrl 控件是 MFC 中的日期时间控件,支持自定义格式和日期范围。您可以使用它来实现带毫秒的时间控件。
下面是一个简单的示例代码,展示如何使用 CDateTimeCtrl 控件来实现带毫秒的时间选择器:
// 在对话框类的头文件中添加 CDateTimeCtrl 成员变量
class CMyDialog : public CDialog
{
public:
CDateTimeCtrl m_TimePicker;
};
// 在对话框类的 OnInitDialog 函数中创建 CDateTimeCtrl 控件
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// 获取控件的位置和大小
CRect rect;
GetDlgItem(IDC_MY_DATETIMEPICKER)->GetWindowRect(&rect);
ScreenToClient(&rect);
// 创建 CDateTimeCtrl 控件
m_TimePicker.Create(
WS_VISIBLE | WS_CHILD | DTS_TIMEFORMAT | DTS_UPDOWN,
rect, this, IDC_MY_DATETIMEPICKER);
// 设置控件的时间格式和范围
m_TimePicker.SetFormat(_T("HH':'mm':'ss'.'fff"));
m_TimePicker.SetRange(&COleDateTime(1900, 1, 1, 0, 0, 0),
&COleDateTime(9999, 12, 31, 23, 59, 59, 999));
m_TimePicker.SetTime(COleDateTime::GetCurrentTime()); // 设置默认时间
return TRUE;
}
在上面的代码中,我们首先在对话框类的头文件中添加了一个 CDateTimeCtrl 类型的成员变量 m_TimePicker。然后,在 OnInitDialog 函数中,我们获取了带有 ID IDC_MY_DATETIMEPICKER 的控件的位置和大小,并使用 Create 函数创建了一个 CDateTimeCtrl 控件。
接着,我们使用 SetFormat 函数设置了控件的时间格式,使用 SetRange 函数设置了控件的时间范围,最后使用 SetTime 函数设置了控件的默认时间。
这样,我们就可以在对话框中使用带有毫秒的时间选择器了。如果对您有帮助,请给与采纳,谢谢。
你说的是计时器吗,测程序耗时多少ms ?
不是计时器,是支持毫秒的时间控件
使用GetTickCount可以精确到毫秒
std::chrono::milliseconds。此外,您还可以使用第三方库,如Boost库,来获取毫秒级的时间。