При наличии проекта C ++ / CX, есть ли способ установить дату по умолчанию для CalendarDatePicker? - PullRequest
2 голосов
/ 08 июля 2019

У меня есть проект C ++ / CX UWP, и я хочу, чтобы пользователь выбрал дату из CalendarDatePicker, который я создал с помощью Windows.UI.Xaml.Controls. Тем не менее, во время инициализации я бы хотел, чтобы CalendarDatePicker был привязан к определенной дате (в настоящее время дата не выбрана, а просто говорит «выберите дату»). Я знаю, что это легко возможно с C #, и я вполне уверен, что есть способ и с C ++, но я пока не нашел решения.

У кого-нибудь есть идеи, как этого добиться?

1 Ответ

0 голосов
/ 09 июля 2019

Вы можете передать конкретную дату в datePicker-> Date . Полные шаги приведены ниже.Документ объясняет соответствующее использование DateTime в C ++ / CX. Поэтому мы можем получить DateTime с помощью SYSTEMTIME-> FILETIME -> _ ULARGE_INTEGER-> DateTime . Во-первых, мы используем COleDateTime класс для анализа конкретной строки даты (включая 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...