从 DATETIMEPICK_CLASS win32(非 mfc)中获取选定的日期

get selected date from DATETIMEPICK_CLASS win32 (NOT 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  
        }
}               

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

您可以使用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);
    }
    }
}

对我有用: