谁有支持毫秒的时间控件

大家好! 请问谁有支持毫秒的时间控件,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 ?

不是计时器,是支持毫秒的时间控件

img

使用GetTickCount可以精确到毫秒

std::chrono::milliseconds。此外,您还可以使用第三方库,如Boost库,来获取毫秒级的时间。