Класс CMonthCalCtrl
Инкапсулирует функциональность элемента управления "календарь месяца".
Синтаксис
class CMonthCalCtrl : public CWnd
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CMonthCalCtrl::CMonthCalCtrl | Формирует объект CMonthCalCtrl . |
Открытые методы
Имя | Описание |
---|---|
CMonthCalCtrl::Create | Создает элемент управления календаря месяца и присоединяет его к объекту CMonthCalCtrl . |
CMonthCalCtrl::GetCalendarBorder | Извлекает ширину границы текущего элемента управления календаря месяца. |
CMonthCalCtrl::GetCalendarCount | Извлекает количество календарей, отображаемых в элементе управления текущим месяцем. |
CMonthCalCtrl::GetCalendarGridInfo | Извлекает сведения об элементе управления календарем текущего месяца. |
CMonthCalCtrl::GetCalID | Извлекает идентификатор календаря для элемента управления календарем текущего месяца. |
CMonthCalCtrl::GetColor | Возвращает цвет указанной области элемента управления календаря месяца. |
CMonthCalCtrl::GetCurrentView | Извлекает представление, которое в настоящее время отображается элементом управления календаря текущего месяца. |
CMonthCalCtrl::GetCurSel | Извлекает системное время, указанное датой, выбранной в данный момент. |
CMonthCalCtrl::GetFirstDayOfWeek | Возвращает первый день недели, отображаемый в самом левом столбце календаря. |
CMonthCalCtrl::GetMaxSelCount | Извлекает текущее максимальное количество дней, которые можно выбрать в элементе управления календарем месяца. |
CMonthCalCtrl::GetMaxTodayWidth | Извлекает максимальную ширину строки "Сегодня" для элемента управления календаря текущего месяца. |
CMonthCalCtrl::GetMinReqRect | Извлекает минимальный размер, необходимый для отображения полного месяца в элементе управления календарем месяца. |
CMonthCalCtrl::GetMonthDelta | Извлекает частоту прокрутки для элемента управления календаря месяца. |
CMonthCalCtrl::GetMonthRange | Извлекает сведения о дате, представляющие высокие и низкие ограничения отображения элемента управления календарем месяца. |
CMonthCalCtrl::GetRange | Извлекает текущие минимальные и максимальные даты, заданные в элементе управления календарем месяца. |
CMonthCalCtrl::GetSelRange | Извлекает сведения о дате, представляющие верхние и нижние пределы диапазона дат, выбранного пользователем. |
CMonthCalCtrl::GetToday | Извлекает сведения о дате, указанной как "сегодня" для элемента управления календарем месяца. |
CMonthCalCtrl::HitTest | Определяет, какой раздел элемента управления календаря месяца находится в заданной точке на экране. |
CMonthCalCtrl::IsCenturyView | Указывает, является ли текущее представление элемента управления календарем текущего месяца представлением века. |
CMonthCalCtrl::IsDecadeView | Указывает, является ли текущее представление элемента управления календарем текущего месяца представлением десятилетия. |
CMonthCalCtrl::IsMonthView | Указывает, является ли текущее представление элемента управления календарем текущего месяца представлением месяца. |
CMonthCalCtrl::IsYearView | Указывает, является ли текущее представление элемента управления календарем текущего месяца представлением года. |
CMonthCalCtrl::SetCalendarBorder | Задает ширину границы текущего элемента управления календаря месяца. |
CMonthCalCtrl::SetCalendarBorderDefault | Задает ширину границы текущего элемента управления календаря месяца по умолчанию. |
CMonthCalCtrl::SetCalID | Задает идентификатор календаря для элемента управления календарем текущего месяца. |
CMonthCalCtrl::SetCenturyView | Задает элемент управления календаря текущего месяца для отображения представления века. |
CMonthCalCtrl::SetColor | Задает цвет указанной области элемента управления календаря месяца. |
CMonthCalCtrl::SetCurrentView | Задает элемент управления календаря текущего месяца для отображения указанного представления. |
CMonthCalCtrl::SetCurSel | Задает выбранную дату для элемента управления календарем месяца. |
CMonthCalCtrl::SetDayState | Задает отображение в течение дней в элементе управления календаря месяца. |
CMonthCalCtrl::SetDecadeView | Задает элемент управления календаря текущего месяца в представлении десятилетия. |
CMonthCalCtrl::SetFirstDayOfWeek | Задает день недели, отображаемый в левом столбце календаря. |
CMonthCalCtrl::SetMaxSelCount | Задает максимальное количество дней, которые можно выбрать в элементе управления календарем месяца. |
CMonthCalCtrl::SetMonthDelta | Задает частоту прокрутки для элемента управления календарем месяца. |
CMonthCalCtrl::SetMonthView | Задает элемент управления календаря текущего месяца для отображения представления месяца. |
CMonthCalCtrl::SetRange | Задает минимальные и максимальные допустимые даты для элемента управления календарем месяца. |
CMonthCalCtrl::SetSelRange | Задает для элемента управления календаря месяца заданный диапазон дат. |
CMonthCalCtrl::SetToday | Задает элемент управления календаря в течение текущего дня. |
CMonthCalCtrl::SetYearView | Задает для текущего элемента управления календаря текущего месяца представление года. |
CMonthCalCtrl::SizeMinReq | Переопределяет элемент управления календарем месяца до минимального размера одного месяца. |
CMonthCalCtrl::SizeRectToMin | Для элемента управления календарем текущего месяца вычисляет наименьший прямоугольник, который может содержать все календари, которые помещаются в указанный прямоугольник. |
Замечания
Элемент управления календарем месяца предоставляет пользователю простой интерфейс календаря, из которого пользователь может выбрать дату. Пользователь может изменить отображение следующими способами:
Прокрутка назад и вперед, от месяца до месяца.
Щелкнув текст "Сегодня", чтобы отобразить текущий день (если стиль MCS_NOTODAY не используется).
Выбор месяца или года в всплывающем меню.
Вы можете настроить элемент управления календарем месяца, применяя различные стили к объекту при его создании. Эти стили описаны в стилях элементов управления "Календарь месяца" в пакете SDK для Windows.
Элемент управления календарем месяца может отображать более одного месяца, и он может указывать специальные дни (например, праздники), полужирным шрифтом даты.
Дополнительные сведения об использовании элемента управления календарем месяца см. в разделе "Использование CMonthCalCtrl".
Иерархия наследования
CMonthCalCtrl
Требования
Заголовок: afxdtctl.h
CMonthCalCtrl::CMonthCalCtrl
Формирует объект CMonthCalCtrl
.
CMonthCalCtrl();
Замечания
После создания объекта необходимо вызвать Create
.
CMonthCalCtrl::Create
Создает элемент управления календаря месяца и присоединяет его к объекту CMonthCalCtrl
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
virtual BOOL Create(
DWORD dwStyle,
const POINT& pt,
CWnd* pParentWnd,
UINT nID);
Параметры
dwStyle
Задает сочетание стилей Windows, применяемых к элементу управления календаря месяца. Дополнительные сведения о стилях элементов управления "Календарь месяца" см. в пакете SDK для Windows.
rect
Ссылка на структуру RECT . Содержит положение и размер элемента управления календаря месяца.
пт
Ссылка на структуру POINT , которая определяет расположение элемента управления календарем месяца.
pParentWnd
Указатель на объект CWnd , который является родительским окном элемента управления календаря месяца. Он не должен иметь значение NULL.
nID
Указывает идентификатор элемента управления календаря месяца.
Возвращаемое значение
Ненулевое значение, если инициализация была успешной; в противном случае — 0.
Замечания
Создайте элемент управления календаря месяца двумя шагами:
Вызовите CMonthCalCtrl для создания
CMonthCalCtrl
объекта.Вызовите эту функцию-член, которая создает элемент управления календарем месяца и присоединяет его к объекту
CMonthCalCtrl
.
При вызове Create
общие элементы управления инициализированы. Версия Create
вызова определяет размер:
Для автоматического размера элемента управления MFC до одного месяца вызовите переопределение, использующее параметр pt .
Чтобы самостоятельно установить размер элемента управления, вызовите переопределение этой функции, которая использует параметр rect .
Пример
// Given two member objects m_calCtrl1 and m_calCtrl2, we can
// create them in one of two ways.
// Providing a point has the control with its top-left corner
// at that point and sized automatically to show one month
// page.
CPoint pt(10, 10);
VERIFY(m_calCtrl1.Create(WS_TABSTOP | WS_CHILD | WS_VISIBLE |
WS_BORDER | MCS_DAYSTATE,
pt, this, IDC_MONTHCALCTRL1));
// Providing a rectangle lets us completely control the size.
// The control will paint as many complete month pages in the
// control's area as possible.
CRect rect(300, 100, 470, 200);
VERIFY(m_calCtrl2.Create(WS_TABSTOP | WS_CHILD | WS_VISIBLE |
WS_BORDER | MCS_MULTISELECT,
rect, this, IDC_MONTHCALCTRL2));
CMonthCalCtrl::GetCalendarBorder
Извлекает ширину границы текущего элемента управления календаря месяца.
int GetCalendarBorder() const;
Возвращаемое значение
Ширина границы элемента управления в пикселях.
Замечания
Этот метод отправляет сообщение MCM_GETCALENDARBORDER , описанное в пакете SDK для Windows.
CMonthCalCtrl::GetCalendarCount
Извлекает количество календарей, отображаемых в элементе управления текущим месяцем.
int GetCalendarCount() const;
Возвращаемое значение
Количество календарей, отображаемых в элементе управления календарем месяца. Максимально допустимое число календарей — 12.
Замечания
Этот метод отправляет сообщение MCM_GETCALENDARCOUNT , описанное в пакете SDK для Windows.
CMonthCalCtrl::GetCalendarGridInfo
Извлекает сведения об элементе управления календарем текущего месяца.
BOOL GetCalendarGridInfo(PMCGRIDINFO pmcGridInfo) const;
Параметры
pmcGridInfo
[out] Указатель на структуру MCGRIDINFO , которая получает сведения об элементе управления календарем текущего месяца. Вызывающий объект отвечает за выделение и инициализацию этой структуры.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод отправляет сообщение MCM_GETCALENDARGRIDINFO , описанное в пакете SDK для Windows.
Пример
Первый пример кода определяет переменную, m_monthCalCtrl
которая используется для программного доступа к элементу управления календарем месяца. Эта переменная используется в следующем примере.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
Следующий пример кода использует GetCalendarGridInfo
метод для получения даты календаря, отображаемой элементом управления текущим месяцем.
WCHAR name[26];
name[0] = _T('\0');
MCGRIDINFO gridInfo;
gridInfo.cbSize = sizeof(MCGRIDINFO);
gridInfo.dwPart = MCGIP_CALENDARHEADER;
gridInfo.dwFlags = MCGIF_NAME;
gridInfo.iCalendar = 0;
gridInfo.pszName = reinterpret_cast<PWSTR>(&name);
gridInfo.cchName = sizeof(name);
m_monthCalCtrl.GetCalendarGridInfo(&gridInfo);
CString str;
CString calendarDate(name);
str.Format(_T("Calendar date: '%s'"), calendarDate);
AfxMessageBox(str, MB_ICONINFORMATION);
CMonthCalCtrl::GetCalID
Извлекает идентификатор календаря для элемента управления календарем текущего месяца.
CALID GetCalID() const;
Возвращаемое значение
Одна из констант идентификатора календаря .
Замечания
Идентификатор календаря обозначает определенный регионом календарь, например григорианский (локализованный), японский или Хиджри. Приложение может использовать идентификатор календаря с различными функциями поддержки языка.
Этот метод отправляет сообщение MCM_GETCALID , описанное в пакете SDK для Windows.
CMonthCalCtrl::GetColor
Извлекает цвет области элемента управления календаря месяца, заданного nRegion.
COLORREF GetColor(int nRegion) const;
Параметры
nRegion
Область элемента управления календаря месяца, из которого извлекается цвет. Список значений см. в параметре nRegion setColor.
Возвращаемое значение
Значение COLORREF , указывающее цвет, связанный с частью элемента управления календаря месяца, если выполнен успешно. В противном случае эта функция-член возвращает -1.
CMonthCalCtrl::GetCurrentView
Извлекает представление, которое в настоящее время отображается элементом управления календаря текущего месяца.
DWORD GetCurrentView() const;
Возвращаемое значение
Текущее представление, указываемое одним из следующих значений:
Значение | Значение |
---|---|
MCMV_MONTH | Ежемесячное представление |
MCMV_YEAR | Ежегодное представление |
MCMV_DECADE | Представление "Десять лет" |
MCMV_CENTURY | Представление века |
Замечания
Этот метод отправляет сообщение MCM_GETCURRENTVIEW , описанное в пакете SDK для Windows.
Пример
Первый пример кода определяет переменную, m_monthCalCtrl
которая используется для программного доступа к элементу управления календарем месяца. Эта переменная используется в следующем примере.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
В следующем примере кода отображается элемент управления календарем месяца.
CString str;
CString msg = _T("The current calendar displays %s view.");
DWORD view = m_monthCalCtrl.GetCurrentView();
switch (view)
{
case MCMV_MONTH:
str.Format(msg, _T("month"));
break;
case MCMV_YEAR:
str.Format(msg, _T("year"));
break;
case MCMV_DECADE:
str.Format(msg, _T("decade"));
break;
case MCMV_CENTURY:
str.Format(msg, _T("century"));
break;
default:
str.Format(msg, _T("an unknown"));
break;
}
AfxMessageBox(str, MB_ICONINFORMATION);
CMonthCalCtrl::GetCurSel
Извлекает системное время, указанное датой, выбранной в данный момент.
BOOL GetCurSel(COleDateTime& refDateTime) const; BOOL GetCurSel(CTime& refDateTime) const;
BOOL GetCurSel(LPSYSTEMTIME pDateTime) const;
Параметры
refDateTime
Ссылка на объект COleDateTime или объект CTime. Получает текущее время.
pDateTime
Указатель на структуру SYSTEMTIME , которая будет получать сведения о дате, выбранной в данный момент. Этот параметр должен быть допустимым адресом и не может иметь значение NULL.
Возвращаемое значение
Ненулевое значение при успешном выполнении; otherwize 0.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_GETCURSEL, как описано в пакете SDK для Windows.
Примечание.
Эта функция-член завершается ошибкой, если задан стиль MCS_MULTISELECT.
В реализации GetCurSel
MFC можно указать COleDateTime
использование, CTime
использование или SYSTEMTIME
использование структуры.
CMonthCalCtrl::GetFirstDayOfWeek
Возвращает первый день недели, отображаемый в самом левом столбце календаря.
int GetFirstDayOfWeek(BOOL* pbLocal = NULL) const;
Параметры
pbLocal
Указатель на значение BOOL. Если значение не равно нулю, параметр элемента управления не соответствует параметру на панели управления.
Возвращаемое значение
Целочисленное значение, представляющее первый день недели. Дополнительные сведения об этих целых числах см . в примечаниях .
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_GETFIRSTDAYOFWEEK, как описано в пакете SDK для Windows. Дни недели представлены как целые числа, как показано ниже.
Значение | День недели |
---|---|
0 | Понедельник |
1 | Вторник |
2 | Среда |
3 | Четверг |
4 | Пятница |
5 | Суббота |
6 | Воскресенье |
Пример
См. пример CMonthCalCtrl ::SetFirstDayOfWeek.
CMonthCalCtrl::GetMaxSelCount
Извлекает текущее максимальное количество дней, которые можно выбрать в элементе управления календарем месяца.
int GetMaxSelCount() const;
Возвращаемое значение
Целочисленное значение, представляющее общее количество дней, которые можно выбрать для элемента управления.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_GETMAXSELCOUNT, как описано в пакете SDK для Windows. Используйте эту функцию-член для элементов управления с набором стилей MCS_MULTISELECT.
Пример
См. пример CMonthCalCtrl ::SetMaxSelCount.
CMonthCalCtrl::GetMaxTodayWidth
Извлекает максимальную ширину строки "Сегодня" для элемента управления календаря текущего месяца.
DWORD GetMaxTodayWidth() const;
Возвращаемое значение
Ширина строки "Сегодня" в пикселях.
Пример
Первый пример кода определяет переменную, m_monthCalCtrl
которая используется для программного доступа к элементу управления календарем месяца. Эта переменная используется в следующем примере.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
В следующем примере кода демонстрируется GetMaxTodayWidth
метод.
DWORD width = m_monthCalCtrl.GetMaxTodayWidth();
CString str;
str.Format(_T("The maximum today width is %d."), width);
AfxMessageBox(str, MB_ICONINFORMATION);
Замечания
Пользователь может вернуться к текущей дате, щелкнув строку "Сегодня", которая отображается в нижней части элемента управления календаря месяца. Строка "Сегодня" содержит текст метки и текст даты.
Этот метод отправляет сообщение MCM_GETMAXTODAYWIDTH , описанное в пакете SDK для Windows.
CMonthCalCtrl::GetMinReqRect
Извлекает минимальный размер, необходимый для отображения полного месяца в элементе управления календарем месяца.
BOOL GetMinReqRect(RECT* pRect) const;
Параметры
pRect
Указатель на структуру RECT, которая получит ограничивающие данные прямоугольника. Этот параметр должен быть допустимым адресом и не может иметь значение NULL.
Возвращаемое значение
В случае успешного выполнения эта функция-член возвращает ненулевое значение и lpRect
получает применимые ограничивающие сведения. Если функция-член не выполнена, функция-член возвращает значение 0.
Замечания
Эта функция-член реализует поведение MCM_GETMINREQRECT сообщения Win32, как описано в пакете SDK для Windows.
CMonthCalCtrl::GetMonthDelta
Извлекает частоту прокрутки для элемента управления календаря месяца.
int GetMonthDelta() const;
Возвращаемое значение
Скорость прокрутки для элемента управления календарем месяца. Скорость прокрутки — это количество месяцев, которое элемент управления перемещает его отображение, когда пользователь нажимает кнопку прокрутки один раз.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_GETMONTHDELTA, как описано в пакете SDK для Windows.
CMonthCalCtrl::GetMonthRange
Извлекает сведения о дате, представляющие высокие и низкие ограничения отображения элемента управления календарем месяца.
int GetMonthRange(
COleDateTime& refMinRange,
COleDateTime& refMaxRange,
DWORD dwFlags) const;
int GetMonthRange(
CTime& refMinRange,
CTime& refMaxRange,
DWORD dwFlags) const;
int GetMonthRange(
LPSYSTEMTIME pMinRange,
LPSYSTEMTIME pMaxRange,
DWORD dwFlags) const;
Параметры
refMinRange
Ссылка на объект COleDateTime или CTime, содержащий минимальную дату.
refMaxRange
Ссылка на COleDateTime
объект или CTime
объект с максимально допустимой датой.
pMinRange
Указатель на структуру SYSTEMTIME , содержащую дату в нижнем конце диапазона.
pMaxRange
Указатель на SYSTEMTIME
структуру, содержащую дату в самом верхнем конце диапазона.
dwFlags
Значение, указывающее область возвращаемых ограничений диапазона. Это значение должно быть одним из следующих значений.
Значение | Значение |
---|---|
GMR_DAYSTATE | Включите предыдущие и конечные месяцы видимого диапазона, которые отображаются только частично. |
GMR_VISIBLE | Включите только те месяцы, которые полностью отображаются. |
Возвращаемое значение
Целое число, представляющее диапазон в месяцах, охватываемое двумя ограничениями, указанными refMinRange и refMaxRange в первой и второй версиях, или pMinRange и pMaxRange в третьей версии.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_GETMONTHRANGE, как описано в пакете SDK для Windows. В реализации GetMonthRange
MFC можно указать COleDateTime
использование, CTime
использование или SYSTEMTIME
использование структуры.
Пример
См. пример CMonthCalCtrl ::SetDayState.
CMonthCalCtrl::GetRange
Извлекает текущие минимальные и максимальные даты, заданные в элементе управления календарем месяца.
DWORD GetRange(
COleDateTime* pMinRange,
COleDateTime* pMaxRange) const;
DWORD GetRange(
CTime* pMinRange,
CTime* pMaxRange) const;
DWORD GetRange(
LPSYSTEMTIME pMinRange,
LPSYSTEMTIME pMaxRange) const;
Параметры
pMinRange
Указатель на COleDateTime
объект, CTime
объект или структуру SYSTEMTIME , содержащую дату в нижнем конце диапазона.
pMaxRange
Указатель на COleDateTime
объект, объект или структуру SYSTEMTIME, CTime
содержащую дату в самом высоком конце диапазона.
Возвращаемое значение
DWORD, который может быть нулевым (ограничения не заданы) или сочетание следующих значений, указывающих сведения об ограничении.
Значение | Значение |
---|---|
GDTR_MAX | Для элемента управления устанавливается максимальное ограничение; pMaxRange действителен и содержит применимые сведения о дате. |
GDTR_MIN | Для элемента управления устанавливается минимальное ограничение; pMinRange является допустимым и содержит применимые сведения о дате. |
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_GETRANGE, как описано в пакете SDK для Windows. В реализации GetRange
MFC можно указать COleDateTime
использование, CTime
использование или SYSTEMTIME
использование структуры.
Пример
// This code fragment sets a variety of ranges in the
// control, and calls a separate function to show the
// set range to the user.
void CMonthCalDlg::OnBnClickedRangebutton()
{
// set minimum of January 1st, 1995 with no maximum
COleDateTime dtMin;
COleDateTime dtMax;
dtMin = COleDateTime(1995, 1, 1, 0, 0, 0);
dtMax.SetStatus(COleDateTime::null);
m_calCtrl1.SetRange(&dtMin, &dtMax);
ShowRange(&m_calCtrl1);
// set no minimum and a maximum of September 30th, 1997
dtMin.SetStatus(COleDateTime::null);
dtMax = COleDateTime(1997, 9, 30, 0, 0, 0);
m_calCtrl1.SetRange(&dtMin, &dtMax);
ShowRange(&m_calCtrl1);
// set minimum of April 15, 1992 and maximum of June 5, 2002
dtMin = COleDateTime(1992, 4, 15, 0, 0, 0);
dtMax = COleDateTime(2002, 6, 5, 0, 0, 0);
m_calCtrl1.SetRange(&dtMin, &dtMax);
ShowRange(&m_calCtrl1);
}
void CMonthCalDlg::ShowRange(CMonthCalCtrl *pMoCalCtrl)
{
ASSERT(pMoCalCtrl != NULL);
CString strMessage;
COleDateTime dtMinimum;
COleDateTime dtMaximum;
// Get the range
DWORD dwResult = pMoCalCtrl->GetRange(&dtMinimum, &dtMaximum);
// If a minimum was specified, format it
// otherwise, indicate that there is no lower bound
if (dwResult & GDTR_MIN)
strMessage += dtMinimum.Format(_T("Minimum range is %x %X.\r\n"));
else
strMessage += _T("No minimum range.\r\n");
// Treat maximum similarly
if (dwResult & GDTR_MAX)
strMessage += dtMaximum.Format(_T("Maximum range is %x %X.\r\n"));
else
strMessage += _T("No maximum range.\r\n");
// Show the user
AfxMessageBox(strMessage);
}
CMonthCalCtrl::GetSelRange
Извлекает сведения о дате, представляющие верхние и нижние пределы диапазона дат, выбранного пользователем.
BOOL GetSelRange(
COleDateTime& refMinRange,
COleDateTime& refMaxRange) const;
BOOL GetSelRange(
CTime& refMinRange,
CTime& refMaxRange) const;
BOOL GetSelRange(
LPSYSTEMTIME pMinRange,
LPSYSTEMTIME pMaxRange) const;
Параметры
refMinRange
Ссылка на объект COleDateTime или CTime, содержащий минимальную дату.
refMaxRange
Ссылка на COleDateTime
объект или CTime
объект с максимально допустимой датой.
pMinRange
Указатель на структуру SYSTEMTIME , содержащую дату в нижнем конце диапазона.
pMaxRange
Указатель на SYSTEMTIME
структуру, содержащую дату в самом верхнем конце диапазона.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Эта функция-член реализует поведение MCM_GETSELRANGE сообщения Win32, как описано в пакете SDK для Windows. GetSelRange
Ошибка при применении к элементу управления календаря месяца, который не использует стиль MCS_MULTISELECT.
В реализации GetSelRange
MFC можно указать COleDateTime
использование, CTime
использование или SYSTEMTIME
использование структуры.
CMonthCalCtrl::GetToday
Извлекает сведения о дате, указанной как "сегодня" для элемента управления календарем месяца.
BOOL GetToday(COleDateTime& refDateTime) const; BOOL GetToday(COleDateTime& refDateTime) const;
BOOL GetToday(LPSYSTEMTIME pDateTime) const;
Параметры
refDateTime
Ссылка на объект COleDateTime или CTime, указывающий текущий день.
pDateTime
Указатель на структуру SYSTEMTIME , которая будет получать сведения о дате. Этот параметр должен быть допустимым адресом и не может иметь значение NULL.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_GETTODAY, как описано в пакете SDK для Windows. В реализации GetToday
MFC можно указать COleDateTime
использование, CTime
использование или SYSTEMTIME
использование структуры.
Пример
void CMonthCalDlg::OnBnClickedGettodaybutton()
{
COleDateTime timeToday;
if (m_calCtrl1.GetToday(timeToday))
{
// Format the date information from the value we received
// and post a message box about it.
CString str = timeToday.Format(VAR_DATEVALUEONLY);
AfxMessageBox(str);
// Set the control's "today" indicator to be five
// days previous.
timeToday -= 5;
m_calCtrl1.SetToday(timeToday);
}
else
{
// Something is wrong!
ASSERT(FALSE);
}
}
CMonthCalCtrl::HitTest
Определяет, какой элемент управления календарем месяца (если таковой) находится в указанной позиции.
DWORD HitTest(PMCHITTESTINFO pMCHitTest);
Параметры
pMCHitTest
Указатель на структуру MCHITTESTINFO , содержащую точки тестирования попадания для элемента управления календарем месяца.
Возвращаемое значение
Значение DWORD. Равно члену MCHITTESTINFO
uHit структуры.
Замечания
HitTest
использует структуру MCHITTESTINFO
, содержащую сведения о тесте попадания.
CMonthCalCtrl::IsCenturyView
Указывает, является ли текущее представление элемента управления календарем текущего месяца представлением века.
BOOL IsCenturyView() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если текущее представление является представлением века; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод отправляет сообщение MCM_GETCURRENTVIEW , описанное в пакете SDK для Windows. Если это сообщение возвращает MCMV_CENTURY, этот метод возвращает ЗНАЧЕНИЕ TRUE.
CMonthCalCtrl::IsDecadeView
Указывает, является ли текущее представление элемента управления календарем текущего месяца представлением десятилетия.
BOOL IsDecadeView() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если текущее представление является представлением десятилетия; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод отправляет сообщение MCM_GETCURRENTVIEW , описанное в пакете SDK для Windows. Если это сообщение возвращает MCMV_DECADE, этот метод возвращает ЗНАЧЕНИЕ TRUE.
CMonthCalCtrl::IsMonthView
Указывает, является ли текущее представление элемента управления календарем текущего месяца представлением месяца.
BOOL IsMonthView() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если текущее представление является представлением месяца; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод отправляет сообщение MCM_GETCURRENTVIEW , описанное в пакете SDK для Windows. Если это сообщение возвращает MCMV_MONTH, этот метод возвращает ЗНАЧЕНИЕ TRUE.
CMonthCalCtrl::IsYearView
Указывает, является ли текущее представление элемента управления календарем текущего месяца представлением года.
BOOL IsYearView() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если текущее представление является представлением года; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод отправляет сообщение MCM_GETCURRENTVIEW , описанное в пакете SDK для Windows. Если это сообщение возвращает MCMV_YEAR, этот метод возвращает ЗНАЧЕНИЕ TRUE.
CMonthCalCtrl::SetCalendarBorder
Задает ширину границы текущего элемента управления календаря месяца.
void SetCalendarBorder(int cxyBorder);
Параметры
cxyBorder
[in] Ширина границы в пикселях.
Замечания
Если этот метод выполнен успешно, ширина границы устанавливается в параметр cxyBorder . В противном случае ширина границы сбрасывается на значение по умолчанию, указанное текущей темой, или ноль, если темы не используются.
Этот метод отправляет сообщение MCM_SETCALENDARBORDER , описанное в пакете SDK для Windows.
Пример
Первый пример кода определяет переменную, m_monthCalCtrl
которая используется для программного доступа к элементу управления календарем месяца. Эта переменная используется в следующем примере.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
Следующий пример кода задает ширину границы элемента управления календаря месяца на восемь пикселей. Используйте метод CMonthCalCtrl::GetCalendarBorder, чтобы определить, успешно ли выполнен этот метод.
// Use the GetCalendarBorder() method to determine whether
// this method succeeded or failed.
m_monthCalCtrl.SetCalendarBorder(8);
CMonthCalCtrl::SetCalendarBorderDefault
Задает ширину границы текущего элемента управления календаря месяца по умолчанию.
void SetCalendarBorderDefault();
Замечания
Ширина границы имеет значение по умолчанию, указанное текущей темой, или ноль, если темы не используются.
Этот метод отправляет сообщение MCM_SETCALENDARBORDER , описанное в пакете SDK для Windows.
CMonthCalCtrl::SetCalID
Задает идентификатор календаря для элемента управления календарем текущего месяца.
BOOL SetCalID(CALID calid);
Параметры
calid
[in] Одна из констант идентификатора календаря .
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Идентификатор календаря задает определенный регион календарь, например григорианский (локализованный), японский или Хиджри. SetCalID
Используйте метод для отображения календаря, указанного параметром calid, если языковой стандарт, содержащий календарь, установлен на компьютере.
Этот метод отправляет сообщение MCM_SETCALID , описанное в пакете SDK для Windows.
Пример
Первый пример кода определяет переменную, m_monthCalCtrl
которая используется для программного доступа к элементу управления календарем месяца. Эта переменная используется в следующем примере.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
Следующий пример кода задает элемент управления календарем месяца для отображения календаря японского императора Эры. Метод SetCalID
выполняется успешно, только если этот календарь установлен на компьютере.
BOOL rc = m_monthCalCtrl.SetCalID(CAL_JAPAN);
CString str = _T("Calendar change ");
;
if (rc == TRUE)
str += _T("succeeded.");
else
{
str += _T("failed.\n");
str += _T("Perhaps this locale is not installed.");
}
AfxMessageBox(str, MB_ICONINFORMATION);
CMonthCalCtrl::SetCenturyView
Задает элемент управления календаря текущего месяца для отображения представления века.
BOOL SetCenturyView();
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод использует метод CMonthCalCtrl::SetCurrentView для задания представления MCMV_CENTURY
, представляющего представление века.
CMonthCalCtrl::SetColor
Задает цвет указанной области элемента управления календаря месяца.
COLORREF SetColor(
int nRegion,
COLORREF ref);
Параметры
nRegion
Целочисленное значение, указывающее, какой цвет календаря месяца необходимо задать. Это значение может быть одним из следующих значений.
Значение | Значение |
---|---|
MCSC_BACKGROUND | Цвет фона, отображаемый между месяцами. |
MCSC_MONTHBK | Цвет фона, отображаемый в течение месяца. |
MCSC_TEXT | Цвет, используемый для отображения текста в течение месяца. |
MCSC_TITLEBK | Цвет фона, отображаемый в заголовке календаря. |
MCSC_TITLETEXT | Цвет, используемый для отображения текста в заголовке календаря. |
MCSC_TRAILINGTEXT | Цвет, используемый для отображения заголовка и текста в конечную день. Заголовок и конечные дни — это дни с предыдущих и следующих месяцев, которые отображаются в текущем календаре. |
ref;
Значение COLORREF для нового параметра цвета для указанной части элемента управления календаря месяца.
Возвращаемое значение
Значение COLORREF, представляющее предыдущий параметр цвета для указанной части элемента управления календаря месяца в случае успешного выполнения. В противном случае это сообщение возвращает значение -1.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_SETCOLOR, как описано в пакете SDK для Windows.
Пример
// Set colors for title text and title background to match
// the Control Panel settings for inactive window captions.
m_calCtrl1.SetColor(MCSC_TITLETEXT, ::GetSysColor(COLOR_INACTIVECAPTIONTEXT));
m_calCtrl1.SetColor(MCSC_TITLEBK, ::GetSysColor(COLOR_INACTIVECAPTION));
CMonthCalCtrl::SetCurrentView
Задает элемент управления календаря текущего месяца для отображения указанного представления.
BOOL SetCurrentView(DWORD dwNewView);
Параметры
dwNewView
[in] Одно из следующих значений, указывающее ежемесячное, ежегодное, десятилетие или представление века.
MCMV_MONTH
: ежемесячное представлениеMCMV_YEAR
: ежегодное представлениеMCMV_DECADE
: десятилетний видMCMV_CENTURY
: представление века
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод отправляет сообщение MCM_SETCURRENTVIEW , описанное в пакете SDK для Windows.
CMonthCalCtrl::SetCurSel
Задает выбранную дату для элемента управления календарем месяца.
BOOL SetCurSel(const COleDateTime& refDateTime);
BOOL SetCurSel(const CTime& refDateTime);
BOOL SetCurSel(const LPSYSTEMTIME pDateTime);
Параметры
refDateTime
Ссылка на объект COleDateTime или CTime, указывающий элемент управления календарем текущего месяца.
pDateTime
Указатель на структуру SYSTEMTIME , содержащую дату, которую необходимо задать в качестве текущего выбора.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Эта функция-член реализует поведение MCM_SETCURSEL сообщения Win32, как описано в пакете SDK для Windows. В реализации SetCurSel
MFC можно указать COleDateTime
использование, CTime
использование или SYSTEMTIME
использование структуры.
Пример
void CMonthCalDlg::OnBnClickedCurselbutton()
{
// All of these calls set the current selection to March 15, 1998.
// with a COleDateTime
COleDateTime dt1(1998, 3, 15, 0, 0, 0);
m_calCtrl1.SetCurSel(dt1);
// with a CTime
CTime dt2(1998, 3, 15, 0, 0, 0);
m_calCtrl1.SetCurSel(dt2);
// with a SYSTEMTIME structure
SYSTEMTIME sysTime;
// set everything to zero
memset(&sysTime, 0, sizeof(sysTime));
// except for the date we want
sysTime.wYear = 1998;
sysTime.wMonth = 3;
sysTime.wDay = 15;
m_calCtrl1.SetCurSel(&sysTime);
}
CMonthCalCtrl::SetDayState
Задает отображение в течение дней в элементе управления календаря месяца.
BOOL SetDayState(
int nMonths,
LPMONTHDAYSTATE pStates);
Параметры
nMonths
Значение, указывающее, сколько элементов в массиве, на который указывает pStates .
pStates
Указатель на массив MONTHDAYSTATE значений, определяющий, как элемент управления календарем месяца будет рисовать каждый день в его отображении. Тип данных MONTHDAYSTATE — это битовое поле, где каждый бит (от 1 до 31) представляет состояние дня в месяц. Если бит включен, соответствующий день будет отображаться полужирным шрифтом; в противном случае он будет отображаться без выделения.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_SETDAYSTATE, как описано в пакете SDK для Windows.
Пример
void CMonthCalDlg::OnBnClickedDaystatebutton()
{
// First, we must find the visible range. The array we pass to the
// SetDayState() function must be large enough to hold days for all
// of the visible months. Even if a month is _partially_ visible,
// we must have MONTHDAYSTATE data for it in the array we pass.
// GetMonthRange() returns the range of days currently visible in
// the control, along with a count of visible months. This array
// will be up to 2 months larger than the number of "pages" visible
// in the control.
SYSTEMTIME timeFrom;
SYSTEMTIME timeUntil;
int nCount = m_calCtrl1.GetMonthRange(&timeFrom, &timeUntil, GMR_DAYSTATE);
// Allocate the state array based on the return value.
LPMONTHDAYSTATE pDayState;
pDayState = new MONTHDAYSTATE[nCount];
memset(pDayState, 0, sizeof(MONTHDAYSTATE) * nCount);
// Find the first fully visible month.
int nIndex = (timeFrom.wDay == 1) ? 0 : 1;
// Set the 4th day, 19th day, and 26th day of the first
// _fully_ visible month as bold.
pDayState[nIndex] |= 1 << 3; // 4th day
pDayState[nIndex] |= 1 << 18; // 19th day
pDayState[nIndex] |= 1 << 25; // 25th day
// Set state and clean up
VERIFY(m_calCtrl1.SetDayState(nCount, pDayState));
delete[] pDayState;
}
CMonthCalCtrl::SetDecadeView
Задает элемент управления календаря текущего месяца в представлении десятилетия.
BOOL SetDecadeView();
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод использует метод CMonthCalCtrl::SetCurrentView для задания представления MCMV_DECADE
, представляющего представление десятилетия.
CMonthCalCtrl::SetFirstDayOfWeek
Задает день недели, отображаемый в левом столбце календаря.
BOOL SetFirstDayOfWeek(
int iDay,
int* lpnOld = NULL);
Параметры
iDay
Целочисленное значение, представляющее, какой день должен быть задан в качестве первого дня недели. Это значение должно быть одним из чисел дня. Описание чисел дня см. в разделе GetFirstDayOfWeek .
lpnOld
Указатель на целое число, указывающее первый день недели, заданный ранее.
Возвращаемое значение
Ненулевое значение, если предыдущий первый день недели имеет значение, отличное от значения LOCALE_IFIRSTDAYOFWEEK, то есть день, указанный в параметре панели управления. В противном случае эта функция возвращает значение 0.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_SETFIRSTDAYOFWEEK, как описано в пакете SDK для Windows.
Пример
// This work isn't normally necessary, since the control will set
// the day of the week to match the system locale by itself.
// Ask the system for the first day of the week
TCHAR sz[2];
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IFIRSTDAYOFWEEK, sz, 2);
// Convert from string result
int nFirstDay = _ttoi(sz);
// Set it and assert that it was successful.
m_calCtrl1.SetFirstDayOfWeek(nFirstDay);
ASSERT(m_calCtrl1.GetFirstDayOfWeek() == nFirstDay);
CMonthCalCtrl::SetMaxSelCount
Задает максимальное количество дней, которые можно выбрать в элементе управления календарем месяца.
BOOL SetMaxSelCount(int nMax);
Параметры
nMax
Значение, которое будет задано для представления максимального количества дней, доступных для выбора.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_SETMAXSELCOUNT, как описано в пакете SDK для Windows.
Пример
// The control needs to have the MCS_MULTISELECT style
// for the following code to work.
// change the maximum selection count
m_calCtrl2.SetMaxSelCount(10);
// check that the change was really made
ASSERT(m_calCtrl2.GetMaxSelCount() == 10);
CMonthCalCtrl::SetMonthDelta
Задает частоту прокрутки для элемента управления календарем месяца.
int SetMonthDelta(int iDelta);
Параметры
iDelta
Количество месяцев, которые необходимо задать в качестве скорости прокрутки элемента управления. Если это значение равно нулю, разность месяца сбрасывается по умолчанию, а это число месяцев, отображаемых в элементе управления.
Возвращаемое значение
Предыдущая скорость прокрутки. Если скорость прокрутки не была задана ранее, возвращаемое значение равно 0.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_SETMONTHDELTA, как описано в пакете SDK для Windows.
CMonthCalCtrl::SetMonthView
Задает элемент управления календаря текущего месяца для отображения представления месяца.
BOOL SetMonthView();
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод использует метод CMonthCalCtrl::SetCurrentView для задания представления MCMV_MONTH, представляющего представление месяца.
Пример
Первый пример кода определяет переменную, m_monthCalCtrl
которая используется для программного доступа к элементу управления календарем месяца. Эта переменная используется в следующем примере.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
Следующий пример кода задает элемент управления календарем месяца для отображения представлений месяца, года, десятилетия и века.
void CCMonthCalCtrl_s1Dlg::OnSetviewSetmonthview()
{
m_monthCalCtrl.SetMonthView();
}
void CCMonthCalCtrl_s1Dlg::OnSetviewSetyearview()
{
m_monthCalCtrl.SetYearView();
}
void CCMonthCalCtrl_s1Dlg::OnSetviewSetdecadeview()
{
m_monthCalCtrl.SetDecadeView();
}
void CCMonthCalCtrl_s1Dlg::OnSetviewSetcenturyview()
{
m_monthCalCtrl.SetCenturyView();
}
CMonthCalCtrl::SetRange
Задает минимальные и максимальные допустимые даты для элемента управления календарем месяца.
BOOL SetRange(
const COleDateTime* pMinRange,
const COleDateTime* pMaxRange);
BOOL SetRange(
const CTime* pMinRange,
const CTime* pMaxRange);
BOOL SetRange(
const LPSYSTEMTIME pMinRange,
const LPSYSTEMTIME pMaxRange);
Параметры
pMinRange
Указатель на COleDateTime
объект, CTime
объект или структуру SYSTEMTIME , содержащую дату в нижнем конце диапазона.
pMaxRange
Указатель на COleDateTime
объект, объект или SYSTEMTIME
структуру, CTime
содержащую дату в самом высоком конце диапазона.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_SETRANGE, как описано в пакете SDK для Windows. В реализации SetRange
MFC можно указать COleDateTime
использование, CTime
использование или SYSTEMTIME
использование структуры.
Пример
См. пример CMonthCalCtrl ::GetRange.
CMonthCalCtrl::SetSelRange
Задает для элемента управления календаря месяца заданный диапазон дат.
BOOL SetSelRange(
const COleDateTime& pMinRange,
const COleDateTime& pMaxRange);
BOOL SetSelRange(
const CTime& pMinRange,
const CTime& pMaxRange);
BOOL SetSelRange(
const LPSYSTEMTIME pMinRange,
const LPSYSTEMTIME pMaxRange);
Параметры
pMinRange
Указатель на COleDateTime
объект, CTime
объект или структуру SYSTEMTIME , содержащую дату в нижнем конце диапазона.
pMaxRange
Указатель на COleDateTime
объект, объект или SYSTEMTIME
структуру, CTime
содержащую дату в самом высоком конце диапазона.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_SETSELRANGE, как описано в пакете SDK для Windows. В реализации SetSelRange
MFC можно указать COleDateTime
использование, CTime
использование или SYSTEMTIME
использование структуры.
CMonthCalCtrl::SetToday
Задает элемент управления календаря в течение текущего дня.
void SetToday(const COleDateTime& refDateTime);
void SetToday(const CTime* pDateTime);
void SetToday(const LPSYSTEMTIME pDateTime);
Параметры
refDateTime
Ссылка на объект COleDateTime , содержащий текущую дату.
pDateTime
Во второй версии указатель на объект CTime , содержащий текущие сведения о дате. В третьей версии указатель на структуру SYSTEMTIME , содержащую текущие сведения о дате.
Замечания
Эта функция-член реализует поведение сообщения Win32 MCM_SETTODAY, как описано в пакете SDK для Windows.
Пример
См. пример CMonthCalCtrl ::GetToday.
CMonthCalCtrl::SetYearView
Задает для текущего элемента управления календаря текущего месяца представление года.
BOOL SetYearView();
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Этот метод использует метод CMonthCalCtrl::SetCurrentView для задания представления MCMV_YEAR, представляющего ежегодное представление.
CMonthCalCtrl::SizeMinReq
Отображает элемент управления календаря месяца на минимальный размер, отображающий один месяц.
BOOL SizeMinReq(BOOL bRepaint = TRUE);
Параметры
bRepaint
Указывает, должен ли элемент управления быть переопределен. По умолчанию значение TRUE. Если значение FALSE не выполняется, повторение не происходит.
Возвращаемое значение
Ненулевое значение, если элемент управления календарем месяца имеет минимальный размер; в противном случае — 0.
Замечания
Вызов SizeMinReq
успешно отображает весь элемент управления календарем месяца для календаря одного месяца.
CMonthCalCtrl::SizeRectToMin
Для элемента управления календарем текущего месяца вычисляет наименьший прямоугольник, который может содержать все календари, которые помещаются в указанный прямоугольник.
LPRECT SizeRectToMin(LPRECT lpRect);
Параметры
lpRect
[in] Указатель на структуру RECT , которая определяет прямоугольник, содержащий требуемое количество календарей.
Возвращаемое значение
Указатель на структуру RECT , которая определяет прямоугольник, размер которого меньше или равен прямоугольнику, определенному параметром lpRect .
Замечания
Этот метод вычисляет, сколько календарей может помещаться в прямоугольник, указанный параметром lpRect , а затем возвращает наименьший прямоугольник, который может содержать это число календарей. По сути, этот метод сжимает указанный прямоугольник, чтобы точно соответствовать требуемому количеству календарей.
Этот метод отправляет сообщение MCM_SIZERECTTOMIN , описанное в пакете SDK для Windows.
См. также
Пример CMNCTRL1 MFC
Класс CWnd
Диаграмма иерархии
Класс CDateTimeCtrl