DO大木 2024-09-24 15:33 采纳率: 0%
浏览 2

MFC date time picker控件通过代码设定其显示时间

可行的方法:
一种是添加CTime类型变量m_datetime_begin_ctime
给变量赋值 然后更新数据到控件
还有通过控件变量m_datetimepicker_begin的SetTime方法
SetTime有几个重载 参数是COleDateTime的重载可行

    //CTime类型变量
        m_datetime_begin_ctime = CTime(2024, 8, 28, 18, 0, 0);
    UpdateData(false);
        //SetTime
    COleDateTime oledtime;
    oledtime.ParseDateTime(_T("2024-08-28 17:18:44"));
    m_datetimepicker_begin.SetTime(oledtime);

问题:
为什么SetTime的另外一个参数是CTime的重载没有效果
还有SetWindowText也不行

  • 写回答

1条回答 默认 最新

  • 关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    您的代码中,SetTime方法中的重载参数是COleDateTime。由于CTime类型的字符串是不能直接被解析为日期和时间的,所以这个重载没有效果。

    要解决这个问题,您需要创建一个自定义的CTime类型,例如:

    class CustomTime {
    public:
        struct CDate {
            int year;
            int month;
            int day;
            int hour;
            int minute;
            int second;
        };
    
        CustomTime(int year, int month, int day, int hour, int minute, int second) : year(year), month(month), day(day), hour(hour), minute(minute), second(second) {}
    
        bool operator==(const CustomTime& other) const {
            return year == other.year && month == other.month && day == other.day &&
                   hour == other.hour && minute == other.minute && second == other.second;
        }
    
    private:
        int year;
        int month;
        int day;
        int hour;
        int minute;
        int second;
    };
    

    然后,您可以使用这个自定义的时间类型来替换oletime.ParseDateTime(_T("2024-08-28 17:18:44"));。以下是一个可能的实现:

    m_datetimepickerBegin.SetTime(CustomTime(2024, 8, 28, 18, 0, 0));
    

    这将使用自定义的时间类型来进行日期和时间的计算,并将其设置为控件的初始值。请注意,这仅适用于满足条件的情况。如果要在所有情况下都使用自定义的时间类型,请确保在程序的开始时正确地初始化它。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月24日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见