【问题标题】:Getting and setting date in DATETIMEPICK_CLASS element在 DATETIMEPICK_CLASS 元素中获取和设置日期
【发布时间】:2014-04-08 13:23:01
【问题描述】:

我正在创建时间选择器元素,描述为here。我正在使用简单的 winapi 调用在 C++ 中编写代码

我找不到任何关于如何以编程方式在此元素中实际获取和设置时间的示例。

首先,元素在程序启动时使用一些随机时间进行初始化(甚至与系统时间不匹配),我希望它使用00:00 进行初始化。我该怎么做?

第二个问题是我应该使用什么方法从控制元素中获取时间值。我尝试GetWindowText() 取得了一些成功,但我不确定这是否是正确的解决方案。

下面提供了我用来初始化的代码示例

    /* TIMER2*/
    dtmTimer2 = CreateWindowEx( //
            /* Extended Style   */0, //
            /* Class Name       */DATETIMEPICK_CLASS, //
            /* Element Name     */GUI_TIMER2_LABEL, //
            /* Style            */(WS_BORDER | WS_CHILD |WS_VISIBLE | DTS_TIMEFORMAT), //
            /* X Position       */GUI_TIMER2_POS_X, //
            /* Y Position       */GUI_TIMER2_POS_Y, //
            /* Width            */GUI_TIMER2_WIDTH, //
            /* Height           */GUI_TIMER2_HEIGHT, //
            /* Parent Window    */hwnd, //
            /* Menu             */NULL, //
            /* Instance         */NULL, //
            /* Parameter        */NULL);
    SendMessage(dtmTimer2, WM_SETFONT, (WPARAM) hFont, MAKELPARAM(TRUE, 0));
    SendMessage(dtmTimer2, DTM_SETFORMAT, 0, (LPARAM) "HH:MM");

似乎我在这里遗漏了一些非常明显的东西。任何帮助将不胜感激。

【问题讨论】:

    标签: c++ winapi time


    【解决方案1】:

    您需要的消息是DTM_GETSYSTEMTIMEDTM_SETSYSTEMTIME(或它们对应的宏),它们使用SYSTEMTIME 结构进行操作。

    【讨论】:

    • 太棒了。正是我需要的。 系统这个词最初让我感到困惑。我虽然这会弄乱实际的系统时间。现在我明白了。谢谢
    猜你喜欢
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多