拥有 C++/CX 项目时,有没有办法为 CalendarDatePicker 设置默认日期?
When having a C++/CX project, is there a way to set the default Date for a CalendarDatePicker?
我有一个 C++/CX UWP 项目,希望用户从我使用 Windows.UI.Xaml.Controls 创建的 CalendarDatePicker 中选择一个日期。但是,在初始化时,我希望将 CalendarDatePicker 选择到特定日期(当前没有选择日期,它只是说 "select a date")。
我知道这在 C# 中很容易实现,而且我很确定 C++ 也有办法,但我还没有找到解决方案。
有人知道如何实现吗?
您可以将具体的日期传递给datePicker->Date。完整的步骤如下。
document解释了DateTime在C++中的相关使用/CX.So我们可以通过SYSTEMTIME->FILETIME->_ULARGE_INTEGER->DateTime获取DateTime。首先,我们使用COleDateTimeclass来解析特定的日期字符串(使用前包括ATLComTime.h)然后转换.
#include <ATLComTime.h>
//parse date string
COleDateTime coDT;
coDT.ParseDateTime(L"2012-11-10", 0, 0);
//get system time struct
SYSTEMTIME st;
coDT.GetAsSystemTime(st);
//COleDateTime is in local timezone, DateTime is in UTC, so we need to convert
SYSTEMTIME st_utc;
TzSpecificLocalTimeToSystemTime(nullptr, &st, &st_utc);
//get filetime struct to get a time format compatible with DateTime
FILETIME fileTime;
SystemTimeToFileTime(&st_utc, &ft);
//use _ULARGE_INTEGER to get a int64 to set the DateTime struct to
_ULARGE_INTEGER ulint = { fileTime.dwLowDateTime, fileTime.dwHighDateTime };
Windows::Foundation::DateTime myDateTime;
wfdt.UniversalTime = ulint.QuadPart;
//set date
MyDatePicker->Date = myDateTime;
我终于有更多时间来调查这个了。
解决此问题的更简单方法是使用以下代码:
Windows::Globalization::Calendar calendar;
Myguidatepicker->Date = calendar.GetDateTime();
我有一个 C++/CX UWP 项目,希望用户从我使用 Windows.UI.Xaml.Controls 创建的 CalendarDatePicker 中选择一个日期。但是,在初始化时,我希望将 CalendarDatePicker 选择到特定日期(当前没有选择日期,它只是说 "select a date")。 我知道这在 C# 中很容易实现,而且我很确定 C++ 也有办法,但我还没有找到解决方案。
有人知道如何实现吗?
您可以将具体的日期传递给datePicker->Date。完整的步骤如下。 document解释了DateTime在C++中的相关使用/CX.So我们可以通过SYSTEMTIME->FILETIME->_ULARGE_INTEGER->DateTime获取DateTime。首先,我们使用COleDateTimeclass来解析特定的日期字符串(使用前包括ATLComTime.h)然后转换.
#include <ATLComTime.h>
//parse date string
COleDateTime coDT;
coDT.ParseDateTime(L"2012-11-10", 0, 0);
//get system time struct
SYSTEMTIME st;
coDT.GetAsSystemTime(st);
//COleDateTime is in local timezone, DateTime is in UTC, so we need to convert
SYSTEMTIME st_utc;
TzSpecificLocalTimeToSystemTime(nullptr, &st, &st_utc);
//get filetime struct to get a time format compatible with DateTime
FILETIME fileTime;
SystemTimeToFileTime(&st_utc, &ft);
//use _ULARGE_INTEGER to get a int64 to set the DateTime struct to
_ULARGE_INTEGER ulint = { fileTime.dwLowDateTime, fileTime.dwHighDateTime };
Windows::Foundation::DateTime myDateTime;
wfdt.UniversalTime = ulint.QuadPart;
//set date
MyDatePicker->Date = myDateTime;
我终于有更多时间来调查这个了。
解决此问题的更简单方法是使用以下代码:
Windows::Globalization::Calendar calendar;
Myguidatepicker->Date = calendar.GetDateTime();