首页 > 解决方案 > 从 DATETIMEPICK_CLASS win32 获取选定日期(不是 mfc)

问题描述

我在win32 表单上放置了1 个datetimepick_class控件。我创建它如下:

HWND Date = CreateWindowEx(
    0,
    DATETIMEPICK_CLASS,
    TEXT("DateTime"),
    WS_BORDER | WS_CHILD | WS_VISIBLE ,
    10, 10
    250, 30,
    hWnd,
    (HMENU)IDC_DATE_TIME_PICK,
    hInst,
    NULL
);

我有按钮。我希望当单击此按钮时,它应该从提到的datetimepick小部件中获取选定的日期值

我处理按钮单击事件如下:

switch (message)
{
    case WM_COMMAND:
    {
        int wmId = LOWORD(wParam);
        switch (wmId)
        {
            case IDC_Calculate_Button: 
            //Button clicked so 
            //Display selected date value in msgbox  
        }
}               

我尝试了现有的答案,但它们很少见或没有很好的记录或详细说明。请指导我。

标签: c++windowswinapidatetimepicker

解决方案


您可以使用DTM_GETSYSTEMTIME消息:

case WM_COMMAND:
{
    int wmId = LOWORD(wParam);
    switch (wmId)
    {
    case IDC_Calculate_Button:
    {
        //Button clicked so 
        //Display selected date value in msgbox  
        SYSTEMTIME st{};
        DateTime_GetSystemtime(Date, &st);
        TCHAR buf[100]{};
        wsprintf(buf, L"%d-%d-%d", st.wYear, st.wMonth, st.wDay);
        MessageBox(hwnd, buf, L"Time", 0);
    }
    }
}

这个对我有用:

在此处输入图像描述


推荐阅读