Klasa CMonthCalCtrl
Hermetyzuje funkcjonalność kontrolki kalendarza miesięcznego.
Składnia
class CMonthCalCtrl : public CWnd
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CMonthCalCtrl::CMonthCalCtrl | CMonthCalCtrl Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CMonthCalCtrl::Create | Tworzy kontrolkę kalendarza miesięcznego i dołącza ją do CMonthCalCtrl obiektu. |
CMonthCalCtrl::GetCalendarBorder | Pobiera szerokość obramowania kontrolki kalendarza bieżącego miesiąca. |
CMonthCalCtrl::GetCalendarCount | Pobiera liczbę kalendarzy wyświetlanych w kontrolce kalendarza bieżącego miesiąca. |
CMonthCalCtrl::GetCalendarGridInfo | Pobiera informacje o kontrolce kalendarza bieżącego miesiąca. |
CMonthCalCtrl::GetCalID | Pobiera identyfikator kalendarza dla kontrolki kalendarza bieżącego miesiąca. |
CMonthCalCtrl::GetColor | Pobiera kolor określonego obszaru kontrolki kalendarza miesiąca. |
CMonthCalCtrl::GetCurrentView | Pobiera widok, który jest obecnie wyświetlany przez kontrolkę kalendarza bieżącego miesiąca. |
CMonthCalCtrl::GetCurSel | Pobiera godzinę systemową wskazaną przez aktualnie wybraną datę. |
CMonthCalCtrl::GetFirstDayOfWeek | Pobiera pierwszy dzień tygodnia, który ma być wyświetlany w lewej kolumnie kalendarza. |
CMonthCalCtrl::GetMaxSelCount | Pobiera bieżącą maksymalną liczbę dni, które można wybrać w kontrolce kalendarza miesięcznego. |
CMonthCalCtrl::GetMaxTodayWidth | Pobiera maksymalną szerokość ciągu "Today" dla kontrolki kalendarza bieżącego miesiąca. |
CMonthCalCtrl::GetMinReqRect | Pobiera minimalny rozmiar wymagany do wyświetlania pełnego miesiąca w kontrolce kalendarza miesięcznego. |
CMonthCalCtrl::GetMonthDelta | Pobiera częstotliwość przewijania dla kontrolki kalendarza miesięcznego. |
CMonthCalCtrl::GetMonthRange | Pobiera informacje o dacie reprezentujące wysokie i niskie limity wyświetlania kontrolki kalendarza miesięcznego. |
CMonthCalCtrl::GetRange | Pobiera bieżące daty minimalne i maksymalne ustawione w kontrolce kalendarza miesięcznego. |
CMonthCalCtrl::GetSelRange | Pobiera informacje o dacie reprezentujące górne i dolne limity zakresu dat aktualnie wybranego przez użytkownika. |
CMonthCalCtrl::GetToday | Pobiera informacje o dacie określonej jako "dzisiaj" dla kontrolki kalendarza miesięcznego. |
CMonthCalCtrl::HitTest | Określa, która sekcja kontrolki kalendarza miesiąca znajduje się w danym punkcie na ekranie. |
CMonthCalCtrl::IsCenturyView | Wskazuje, czy bieżący widok kontrolki kalendarza bieżącego miesiąca jest widokiem stulecia. |
CMonthCalCtrl::IsDecadeView | Wskazuje, czy bieżący widok kontrolki kalendarza bieżącego miesiąca jest widokiem dekady. |
CMonthCalCtrl::IsMonthView | Wskazuje, czy bieżący widok kontrolki kalendarza bieżącego miesiąca jest widokiem miesiąca. |
CMonthCalCtrl::IsYearView | Wskazuje, czy bieżący widok kontrolki kalendarza bieżącego miesiąca jest widokiem roku. |
CMonthCalCtrl::SetCalendarBorder | Ustawia szerokość obramowania kontrolki kalendarza bieżącego miesiąca. |
CMonthCalCtrl::SetCalendarBorderDefault | Ustawia domyślną szerokość obramowania kontrolki kalendarza bieżącego miesiąca. |
CMonthCalCtrl::SetCalID | Ustawia identyfikator kalendarza dla kontrolki kalendarza bieżącego miesiąca. |
CMonthCalCtrl::SetCenturyView | Ustawia kontrolkę kalendarza bieżącego miesiąca, aby wyświetlić widok stulecia. |
CMonthCalCtrl::SetColor | Ustawia kolor określonego obszaru kontrolki kalendarza miesięcznego. |
CMonthCalCtrl::SetCurrentView | Ustawia kontrolkę kalendarza bieżącego miesiąca, aby wyświetlić określony widok. |
CMonthCalCtrl::SetCurSel | Ustawia obecnie wybraną datę dla kontrolki kalendarza miesięcznego. |
CMonthCalCtrl::SetDayState | Ustawia wyświetlanie dni w kontrolce kalendarza miesięcznego. |
CMonthCalCtrl::SetDecadeView | Ustawia kontrolkę kalendarza bieżącego miesiąca na widok dekady. |
CMonthCalCtrl::SetFirstDayOfWeek | Ustawia dzień tygodnia, który ma być wyświetlany w lewej kolumnie kalendarza. |
CMonthCalCtrl::SetMaxSelCount | Ustawia maksymalną liczbę dni, które można wybrać w kontrolce kalendarza miesiąca. |
CMonthCalCtrl::SetMonthDelta | Ustawia częstotliwość przewijania dla kontrolki kalendarza miesięcznego. |
CMonthCalCtrl::SetMonthView | Ustawia kontrolkę kalendarza bieżącego miesiąca, aby wyświetlić widok miesiąca. |
CMonthCalCtrl::SetRange | Ustawia minimalną i maksymalną dozwoloną datę dla kontrolki kalendarza miesiąca. |
CMonthCalCtrl::SetSelRange | Ustawia wybór kontrolki kalendarza miesiąca na określony zakres dat. |
CMonthCalCtrl::SetToday | Ustawia kontrolkę kalendarza dla bieżącego dnia. |
CMonthCalCtrl::SetYearView | Ustawia kontrolkę kalendarza bieżącego miesiąca na widok roku. |
CMonthCalCtrl::SizeMinReq | Przemaluje kontrolkę kalendarza miesiąca do minimalnego, miesięcznego rozmiaru. |
CMonthCalCtrl::SizeRectToMin | Dla kontrolki kalendarza bieżącego miesiąca oblicza najmniejszy prostokąt, który może zawierać wszystkie kalendarze pasujące do określonego prostokąta. |
Uwagi
Kontrolka kalendarza miesiąca udostępnia użytkownikowi prosty interfejs kalendarza, z którego użytkownik może wybrać datę. Użytkownik może zmienić ekran, wykonując następujące czynności:
Przewijanie do tyłu i do przodu, od miesiąca do miesiąca.
Kliknięcie tekstu Dzisiaj w celu wyświetlenia bieżącego dnia (jeśli styl MCS_NOTODAY nie jest używany).
Wybieranie miesiąca lub roku z menu podręcznego.
Kontrolkę kalendarza miesiąca można dostosować, stosując różne style do obiektu podczas jego tworzenia. Te style opisano w sekcji Style kontrolki kalendarza miesiąca w zestawie Windows SDK.
Kontrolka kalendarza miesiąca może wyświetlać więcej niż jeden miesiąc i może wskazywać specjalne dni (takie jak święta), pogrubiojąc datę.
Aby uzyskać więcej informacji na temat korzystania z kontrolki kalendarza miesiąca, zobacz Using CMonthCalCtrl (Korzystanie z CMonthCalCtrl).
Hierarchia dziedziczenia
CMonthCalCtrl
Wymagania
Nagłówek: afxdtctl.h
CMonthCalCtrl::CMonthCalCtrl
CMonthCalCtrl
Tworzy obiekt.
CMonthCalCtrl();
Uwagi
Po utworzeniu obiektu należy wywołać Create
metodę .
CMonthCalCtrl::Create
Tworzy kontrolkę kalendarza miesięcznego i dołącza ją do CMonthCalCtrl
obiektu.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
virtual BOOL Create(
DWORD dwStyle,
const POINT& pt,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Określa kombinację stylów systemu Windows zastosowanych do kontrolki kalendarza miesiąca. Aby uzyskać więcej informacji na temat stylów, zobacz Style kontrolki kalendarza miesiąca w zestawie Windows SDK.
Rect
Odwołanie do struktury RECT . Zawiera położenie i rozmiar kontrolki kalendarza miesiąca.
Pt
Odwołanie do struktury POINT , która identyfikuje lokalizację kontrolki kalendarza miesiąca.
pParentWnd
Wskaźnik do obiektu CWnd , który jest oknem nadrzędnym kontrolki kalendarza miesiąca. Nie może mieć wartości NULL.
Nid
Określa identyfikator kontrolki kalendarza miesiąca.
Wartość zwracana
Niezerowe, jeśli inicjowanie zakończyło się pomyślnie; w przeciwnym razie 0.
Uwagi
Utwórz kontrolkę kalendarza miesięcznego w dwóch krokach:
Wywołaj metodę
CMonthCalCtrl
CMonthCalCtrl, aby skonstruować obiekt.Wywołaj tę funkcję składową, która tworzy kontrolkę kalendarza miesięcznego i dołącza ją do
CMonthCalCtrl
obiektu.
Podczas wywoływania Create
metody typowe kontrolki są inicjowane. Wywołana Create
wersja określa, jak ma to rozmiar:
Aby kontrolka MFC miała automatycznie rozmiar do jednego miesiąca, wywołaj przesłonięcia używające parametru pt .
Aby samodzielnie określić rozmiar kontrolki, wywołaj zastąpienie tej funkcji, która używa parametru rect .
Przykład
// 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
Pobiera szerokość obramowania kontrolki kalendarza bieżącego miesiąca.
int GetCalendarBorder() const;
Wartość zwracana
Szerokość obramowania kontrolki w pikselach.
Uwagi
Ta metoda wysyła komunikat MCM_GETCALENDARBORDER opisany w zestawie Windows SDK.
CMonthCalCtrl::GetCalendarCount
Pobiera liczbę kalendarzy wyświetlanych w kontrolce kalendarza bieżącego miesiąca.
int GetCalendarCount() const;
Wartość zwracana
Liczba kalendarzy aktualnie wyświetlanych w kontrolce kalendarza miesiąca. Maksymalna dozwolona liczba kalendarzy wynosi 12.
Uwagi
Ta metoda wysyła komunikat MCM_GETCALENDARCOUNT opisany w zestawie Windows SDK.
CMonthCalCtrl::GetCalendarGridInfo
Pobiera informacje o kontrolce kalendarza bieżącego miesiąca.
BOOL GetCalendarGridInfo(PMCGRIDINFO pmcGridInfo) const;
Parametry
pmcGridInfo
[out] Wskaźnik do struktury MCGRIDINFO , która odbiera informacje o kontrolce kalendarza bieżącego miesiąca. Obiekt wywołujący jest odpowiedzialny za przydzielanie i inicjowanie tej struktury.
Wartość zwracana
Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda wysyła komunikat MCM_GETCALENDARGRIDINFO opisany w zestawie Windows SDK.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_monthCalCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki kalendarza miesiąca. Ta zmienna jest używana w następnym przykładzie.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
W następnym przykładzie kodu użyto GetCalendarGridInfo
metody , aby pobrać datę kalendarza wyświetlaną przez kontrolkę kalendarza bieżącego miesiąca.
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
Pobiera identyfikator kalendarza dla kontrolki kalendarza bieżącego miesiąca.
CALID GetCalID() const;
Wartość zwracana
Jedna z stałych identyfikatora kalendarza.
Uwagi
Identyfikator kalendarza określa kalendarz specyficzny dla regionu, taki jak kalendarz gregoriański (zlokalizowany), japoński lub hidżri. Aplikacja może używać identyfikatora kalendarza, który ma różne funkcje obsługi języka.
Ta metoda wysyła komunikat MCM_GETCALID opisany w zestawie Windows SDK.
CMonthCalCtrl::GetColor
Pobiera kolor obszaru kontrolki kalendarza miesiąca określonego przez nRegion.
COLORREF GetColor(int nRegion) const;
Parametry
nRegion
Region kontrolki kalendarza miesiąca, z której jest pobierany kolor. Aby uzyskać listę wartości, zobacz nRegion parametru SetColor.
Wartość zwracana
Wartość COLORREF określająca kolor skojarzony z częścią kontrolki kalendarza miesiąca, jeśli się powiedzie. W przeciwnym razie ta funkcja składowa zwraca wartość -1.
CMonthCalCtrl::GetCurrentView
Pobiera widok, który jest obecnie wyświetlany przez kontrolkę kalendarza bieżącego miesiąca.
DWORD GetCurrentView() const;
Wartość zwracana
Bieżący widok, który jest wskazywany przez jedną z następujących wartości:
Wartość | Znaczenie |
---|---|
MCMV_MONTH | Widok miesięczny |
MCMV_YEAR | Widok roczny |
MCMV_DECADE | Widok dekady |
MCMV_CENTURY | Widok stulecia |
Uwagi
Ta metoda wysyła komunikat MCM_GETCURRENTVIEW opisany w zestawie Windows SDK.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_monthCalCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki kalendarza miesiąca. Ta zmienna jest używana w następnym przykładzie.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
Następny przykładowy kod raportów, które wyświetlają obecnie kontrolkę kalendarza miesiąca.
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
Pobiera godzinę systemową wskazaną przez aktualnie wybraną datę.
BOOL GetCurSel(COleDateTime& refDateTime) const; BOOL GetCurSel(CTime& refDateTime) const;
BOOL GetCurSel(LPSYSTEMTIME pDateTime) const;
Parametry
refDateTime
Odwołanie do obiektu COleDateTime lub obiektu CTime . Odbiera bieżącą godzinę.
pDateTime
Wskaźnik do struktury SYSTEMTIME , która będzie otrzymywać aktualnie wybrane informacje o dacie. Ten parametr musi być prawidłowym adresem i nie może mieć wartości NULL.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; otherwize 0.
Uwagi
Ta funkcja składowa implementuje zachowanie MCM_GETCURSEL komunikatu Win32 zgodnie z opisem w zestawie WINDOWS SDK.
Uwaga
Ta funkcja składowa kończy się niepowodzeniem, jeśli ustawiono MCS_MULTISELECT stylu.
W implementacji GetCurSel
MFC programu można określić COleDateTime
użycie, CTime
użycie lub SYSTEMTIME
użycie struktury.
CMonthCalCtrl::GetFirstDayOfWeek
Pobiera pierwszy dzień tygodnia, który ma być wyświetlany w lewej kolumnie kalendarza.
int GetFirstDayOfWeek(BOOL* pbLocal = NULL) const;
Parametry
pbLocal
Wskaźnik do wartości BOOL. Jeśli wartość jest inna niż zero, ustawienie kontrolki nie jest zgodne z ustawieniem w panelu sterowania.
Wartość zwracana
Wartość całkowita reprezentująca pierwszy dzień tygodnia. Zobacz Uwagi , aby uzyskać więcej informacji na temat tego, co reprezentują te liczby całkowite.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_GETFIRSTDAYOFWEEK zgodnie z opisem w zestawie Windows SDK. Dni tygodnia są reprezentowane jako liczby całkowite w następujący sposób.
Wartość | Dzień tygodnia |
---|---|
0 | Poniedziałek |
1 | Wtorek |
2 | Środa |
3 | Czwartek |
100 | Piątek |
5 | Sobota |
6 | Niedziela |
Przykład
Zobacz przykład CMonthCalCtrl::SetFirstDayOfWeek.
CMonthCalCtrl::GetMaxSelCount
Pobiera bieżącą maksymalną liczbę dni, które można wybrać w kontrolce kalendarza miesięcznego.
int GetMaxSelCount() const;
Wartość zwracana
Wartość całkowita reprezentująca łączną liczbę dni, które można wybrać dla kontrolki.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_GETMAXSELCOUNT zgodnie z opisem w zestawie WINDOWS SDK. Użyj tej funkcji składowej dla kontrolek z zestawem stylów MCS_MULTISELECT.
Przykład
Zobacz przykład CMonthCalCtrl::SetMaxSelCount.
CMonthCalCtrl::GetMaxTodayWidth
Pobiera maksymalną szerokość ciągu "Today" dla kontrolki kalendarza bieżącego miesiąca.
DWORD GetMaxTodayWidth() const;
Wartość zwracana
Szerokość ciągu "Today" w pikselach.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_monthCalCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki kalendarza miesiąca. Ta zmienna jest używana w następnym przykładzie.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
W następnym przykładzie kodu pokazano metodę GetMaxTodayWidth
.
DWORD width = m_monthCalCtrl.GetMaxTodayWidth();
CString str;
str.Format(_T("The maximum today width is %d."), width);
AfxMessageBox(str, MB_ICONINFORMATION);
Uwagi
Użytkownik może wrócić do bieżącej daty, klikając ciąg "Dzisiaj", który jest wyświetlany w dolnej części kontrolki kalendarza miesiąca. Ciąg "Today" zawiera tekst etykiety i tekst daty.
Ta metoda wysyła komunikat MCM_GETMAXTODAYWIDTH opisany w zestawie Windows SDK.
CMonthCalCtrl::GetMinReqRect
Pobiera minimalny rozmiar wymagany do wyświetlania pełnego miesiąca w kontrolce kalendarza miesięcznego.
BOOL GetMinReqRect(RECT* pRect) const;
Parametry
PRect
Wskaźnik do struktury RECT , która będzie otrzymywać informacje dotyczące ograniczenia prostokąta. Ten parametr musi być prawidłowym adresem i nie może mieć wartości NULL.
Wartość zwracana
Jeśli ta funkcja składowa zakończy się pomyślnie, zwraca wartość niezerową i lpRect
odbiera odpowiednie informacje dotyczące ograniczenia. W przypadku niepowodzenia funkcja składowa zwraca wartość 0.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_GETMINREQRECT zgodnie z opisem w zestawie Windows SDK.
CMonthCalCtrl::GetMonthDelta
Pobiera częstotliwość przewijania dla kontrolki kalendarza miesięcznego.
int GetMonthDelta() const;
Wartość zwracana
Szybkość przewijania kontrolki kalendarza miesiąca. Szybkość przewijania to liczba miesięcy, przez które kontrolka przenosi jej ekran, gdy użytkownik kliknie przycisk przewijania raz.
Uwagi
Ta funkcja składowa implementuje zachowanie MCM_GETMONTHDELTA komunikatu Win32 zgodnie z opisem w zestawie WINDOWS SDK.
CMonthCalCtrl::GetMonthRange
Pobiera informacje o dacie reprezentujące wysokie i niskie limity wyświetlania kontrolki kalendarza miesięcznego.
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;
Parametry
refMinRange
Odwołanie do obiektu COleDateTime lub CTime zawierającego dozwoloną minimalną datę.
refMaxRange
Odwołanie do COleDateTime
obiektu lub CTime
zawierającego dozwoloną maksymalną datę.
pMinRange
Wskaźnik do struktury SYSTEMTIME zawierającej datę na najniższym końcu zakresu.
pMaxRange
Wskaźnik do SYSTEMTIME
struktury zawierającej datę na najwyższym końcu zakresu.
dwFlags
Wartość określająca zakres limitów zakresu do pobrania. Ta wartość musi być jedną z następujących wartości.
Wartość | Znaczenie |
---|---|
GMR_DAYSTATE | Uwzględnij poprzednie i końcowe miesiące widocznego zakresu, które są wyświetlane tylko częściowo. |
GMR_VISIBLE | Uwzględnij tylko te miesiące, które są całkowicie wyświetlane. |
Wartość zwracana
Liczba całkowita reprezentująca zakres, w miesiącach, obejmujący dwa limity wskazywane przez refMinRange i refMaxRange w pierwszej i drugiej wersji, lub pMinRange i pMaxRange w trzeciej wersji.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_GETMONTHRANGE zgodnie z opisem w zestawie WINDOWS SDK. W implementacji GetMonthRange
MFC programu można określić COleDateTime
użycie, CTime
użycie lub SYSTEMTIME
użycie struktury.
Przykład
Zobacz przykład CMonthCalCtrl::SetDayState.
CMonthCalCtrl::GetRange
Pobiera bieżące daty minimalne i maksymalne ustawione w kontrolce kalendarza miesięcznego.
DWORD GetRange(
COleDateTime* pMinRange,
COleDateTime* pMaxRange) const;
DWORD GetRange(
CTime* pMinRange,
CTime* pMaxRange) const;
DWORD GetRange(
LPSYSTEMTIME pMinRange,
LPSYSTEMTIME pMaxRange) const;
Parametry
pMinRange
Wskaźnik do COleDateTime
obiektu, CTime
obiektu lub struktury SYSTEMTIME zawierającej datę na najniższym końcu zakresu.
pMaxRange
Wskaźnik do COleDateTime
obiektu, CTime
obiektu lub struktury SYSTEMTIME zawierającej datę na najwyższym końcu zakresu.
Wartość zwracana
DWORD, który może być zerowy (nie ustawiono żadnych limitów) lub kombinacji następujących wartości, które określają informacje o limicie.
Wartość | Znaczenie |
---|---|
GDTR_MAX | Maksymalny limit jest ustawiany dla kontrolki; Wartość pMaxRange jest prawidłowa i zawiera odpowiednie informacje o dacie. |
GDTR_MIN | Dla kontrolki ustawiono minimalny limit; Element pMinRange jest prawidłowy i zawiera odpowiednie informacje o dacie. |
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_GETRANGE zgodnie z opisem w zestawie Windows SDK. W implementacji GetRange
MFC programu można określić COleDateTime
użycie, CTime
użycie lub SYSTEMTIME
użycie struktury.
Przykład
// 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
Pobiera informacje o dacie reprezentujące górne i dolne limity zakresu dat aktualnie wybranego przez użytkownika.
BOOL GetSelRange(
COleDateTime& refMinRange,
COleDateTime& refMaxRange) const;
BOOL GetSelRange(
CTime& refMinRange,
CTime& refMaxRange) const;
BOOL GetSelRange(
LPSYSTEMTIME pMinRange,
LPSYSTEMTIME pMaxRange) const;
Parametry
refMinRange
Odwołanie do obiektu COleDateTime lub CTime zawierającego dozwoloną minimalną datę.
refMaxRange
Odwołanie do COleDateTime
obiektu lub CTime
zawierającego dozwoloną maksymalną datę.
pMinRange
Wskaźnik do struktury SYSTEMTIME zawierającej datę na najniższym końcu zakresu.
pMaxRange
Wskaźnik do SYSTEMTIME
struktury zawierającej datę na najwyższym końcu zakresu.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje zachowanie MCM_GETSELRANGE komunikatu Win32 zgodnie z opisem w zestawie WINDOWS SDK. GetSelRange
Program zakończy się niepowodzeniem, jeśli zostanie zastosowana do kontrolki kalendarza miesięcznego, która nie używa stylu MCS_MULTISELECT.
W implementacji GetSelRange
MFC programu można określić COleDateTime
użycie, CTime
użycie lub SYSTEMTIME
użycie struktury.
CMonthCalCtrl::GetToday
Pobiera informacje o dacie określonej jako "dzisiaj" dla kontrolki kalendarza miesięcznego.
BOOL GetToday(COleDateTime& refDateTime) const; BOOL GetToday(COleDateTime& refDateTime) const;
BOOL GetToday(LPSYSTEMTIME pDateTime) const;
Parametry
refDateTime
Odwołanie do obiektu COleDateTime lub CTime wskazującego bieżący dzień.
pDateTime
Wskaźnik do struktury SYSTEMTIME , która będzie otrzymywać informacje o dacie. Ten parametr musi być prawidłowym adresem i nie może mieć wartości NULL.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_GETTODAY zgodnie z opisem w zestawie Windows SDK. W implementacji GetToday
MFC programu można określić COleDateTime
użycie, CTime
użycie lub SYSTEMTIME
użycie struktury.
Przykład
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
Określa, która kontrolka kalendarza miesiąca, jeśli istnieje, jest w określonej pozycji.
DWORD HitTest(PMCHITTESTINFO pMCHitTest);
Parametry
pMCHitTest
Wskaźnik do struktury MCHITTESTINFO zawierającej punkty testowania trafień dla kontrolki kalendarza miesiąca.
Wartość zwracana
Wartość DWORD. Równa się członkowi uHit MCHITTESTINFO
struktury.
Uwagi
HitTest
MCHITTESTINFO
używa struktury, która zawiera informacje o teście trafienia.
CMonthCalCtrl::IsCenturyView
Wskazuje, czy bieżący widok kontrolki kalendarza bieżącego miesiąca jest widokiem stulecia.
BOOL IsCenturyView() const;
Wartość zwracana
WARTOŚĆ TRUE, jeśli bieżący widok jest widokiem stulecia; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda wysyła komunikat MCM_GETCURRENTVIEW opisany w zestawie Windows SDK. Jeśli ten komunikat zwróci MCMV_CENTURY, ta metoda zwraca wartość TRUE.
CMonthCalCtrl::IsDecadeView
Wskazuje, czy bieżący widok kontrolki kalendarza bieżącego miesiąca jest widokiem dekady.
BOOL IsDecadeView() const;
Wartość zwracana
Wartość TRUE, jeśli bieżący widok jest widokiem dekady; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda wysyła komunikat MCM_GETCURRENTVIEW opisany w zestawie Windows SDK. Jeśli ten komunikat zwróci MCMV_DECADE, ta metoda zwraca wartość TRUE.
CMonthCalCtrl::IsMonthView
Wskazuje, czy bieżący widok kontrolki kalendarza bieżącego miesiąca jest widokiem miesiąca.
BOOL IsMonthView() const;
Wartość zwracana
WARTOŚĆ TRUE, jeśli bieżący widok jest widokiem miesiąca; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda wysyła komunikat MCM_GETCURRENTVIEW opisany w zestawie Windows SDK. Jeśli ten komunikat zwróci MCMV_MONTH, ta metoda zwraca wartość TRUE.
CMonthCalCtrl::IsYearView
Wskazuje, czy bieżący widok kontrolki kalendarza bieżącego miesiąca jest widokiem roku.
BOOL IsYearView() const;
Wartość zwracana
WARTOŚĆ TRUE, jeśli bieżący widok jest widokiem roku; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda wysyła komunikat MCM_GETCURRENTVIEW opisany w zestawie Windows SDK. Jeśli ten komunikat zwróci MCMV_YEAR, ta metoda zwraca wartość TRUE.
CMonthCalCtrl::SetCalendarBorder
Ustawia szerokość obramowania kontrolki kalendarza bieżącego miesiąca.
void SetCalendarBorder(int cxyBorder);
Parametry
cxyBorder
[in] Szerokość obramowania w pikselach.
Uwagi
Jeśli ta metoda powiedzie się, szerokość obramowania jest ustawiona na parametr cxyBorder . W przeciwnym razie szerokość obramowania zostanie zresetowana do wartości domyślnej określonej przez bieżący motyw lub zero, jeśli motywy nie są używane.
Ta metoda wysyła komunikat MCM_SETCALENDARBORDER opisany w zestawie Windows SDK.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_monthCalCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki kalendarza miesiąca. Ta zmienna jest używana w następnym przykładzie.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
Następny przykład kodu ustawia szerokość obramowania kontrolki kalendarza miesiąca na osiem pikseli. Użyj metody CMonthCalCtrl::GetCalendarBorder, aby określić, czy ta metoda powiodła się.
// Use the GetCalendarBorder() method to determine whether
// this method succeeded or failed.
m_monthCalCtrl.SetCalendarBorder(8);
CMonthCalCtrl::SetCalendarBorderDefault
Ustawia domyślną szerokość obramowania kontrolki kalendarza bieżącego miesiąca.
void SetCalendarBorderDefault();
Uwagi
Szerokość obramowania jest ustawiona na wartość domyślną określoną przez bieżący motyw lub zero, jeśli motywy nie są używane.
Ta metoda wysyła komunikat MCM_SETCALENDARBORDER opisany w zestawie Windows SDK.
CMonthCalCtrl::SetCalID
Ustawia identyfikator kalendarza dla kontrolki kalendarza bieżącego miesiąca.
BOOL SetCalID(CALID calid);
Parametry
calid
[in] Jedna z stałych identyfikatora kalendarza.
Wartość zwracana
Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.
Uwagi
Identyfikator kalendarza określa kalendarz specyficzny dla regionu, taki jak kalendarz gregoriański (zlokalizowany), japoński lub hidżri. SetCalID
Użyj metody , aby wyświetlić kalendarz określony przez parametr calid, jeśli ustawienia regionalne zawierające kalendarz jest zainstalowany na komputerze.
Ta metoda wysyła komunikat MCM_SETCALID opisany w zestawie Windows SDK.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_monthCalCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki kalendarza miesiąca. Ta zmienna jest używana w następnym przykładzie.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
W następnym przykładzie kodu ustawiono kontrolkę kalendarza miesiąca, aby wyświetlić kalendarz ery cesarza japońskiego. Metoda SetCalID
powiedzie się tylko wtedy, gdy ten kalendarz jest zainstalowany na komputerze.
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
Ustawia kontrolkę kalendarza bieżącego miesiąca, aby wyświetlić widok stulecia.
BOOL SetCenturyView();
Wartość zwracana
Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda używa metody CMonthCalCtrl::SetCurrentView , aby ustawić widok na MCMV_CENTURY
, który reprezentuje widok stulecia.
CMonthCalCtrl::SetColor
Ustawia kolor określonego obszaru kontrolki kalendarza miesięcznego.
COLORREF SetColor(
int nRegion,
COLORREF ref);
Parametry
nRegion
Wartość całkowita określająca, który kolor kalendarza miesiąca ma być ustawiony. Ta wartość może być jedną z następujących wartości.
Wartość | Znaczenie |
---|---|
MCSC_BACKGROUND | Kolor tła wyświetlany między miesiącami. |
MCSC_MONTHBK | Kolor tła wyświetlany w ciągu miesiąca. |
MCSC_TEXT | Kolor używany do wyświetlania tekstu w ciągu miesiąca. |
MCSC_TITLEBK | Kolor tła wyświetlany w tytule kalendarza. |
MCSC_TITLETEXT | Kolor używany do wyświetlania tekstu w tytule kalendarza. |
MCSC_TRAILINGTEXT | Kolor używany do wyświetlania nagłówka i tekstu końcowego. Dni nagłówkowe i końcowe to dni z poprzednich i kolejnych miesięcy, które są wyświetlane w bieżącym kalendarzu. |
ref
Wartość COLORREF dla nowego ustawienia koloru dla określonej części kontrolki kalendarza miesiąca.
Wartość zwracana
Wartość COLORREF reprezentująca poprzednie ustawienie koloru dla określonej części kontrolki kalendarza miesiąca, jeśli zakończy się pomyślnie. W przeciwnym razie ten komunikat zwraca wartość -1.
Uwagi
Ta funkcja składowa implementuje zachowanie MCM_SETCOLOR komunikatu Win32 zgodnie z opisem w zestawie Windows SDK.
Przykład
// 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
Ustawia kontrolkę kalendarza bieżącego miesiąca, aby wyświetlić określony widok.
BOOL SetCurrentView(DWORD dwNewView);
Parametry
dwNewView
[in] Jedna z następujących wartości, która określa widok miesięczny, roczny, dekadowy lub wieczny.
MCMV_MONTH
: Widok miesięcznyMCMV_YEAR
: Widok rocznyMCMV_DECADE
: Widok dekadyMCMV_CENTURY
: Widok stulecia
Wartość zwracana
Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda wysyła komunikat MCM_SETCURRENTVIEW opisany w zestawie Windows SDK.
CMonthCalCtrl::SetCurSel
Ustawia obecnie wybraną datę dla kontrolki kalendarza miesięcznego.
BOOL SetCurSel(const COleDateTime& refDateTime);
BOOL SetCurSel(const CTime& refDateTime);
BOOL SetCurSel(const LPSYSTEMTIME pDateTime);
Parametry
refDateTime
Odwołanie do obiektu COleDateTime lub CTime wskazującego aktualnie wybraną kontrolkę kalendarza miesiąca.
pDateTime
Wskaźnik do struktury SYSTEMTIME , która zawiera datę, która ma być ustawiona jako bieżący wybór.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje zachowanie MCM_SETCURSEL komunikatu Win32 zgodnie z opisem w zestawie WINDOWS SDK. W implementacji SetCurSel
MFC programu można określić COleDateTime
użycie, CTime
użycie lub SYSTEMTIME
użycie struktury.
Przykład
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
Ustawia wyświetlanie dni w kontrolce kalendarza miesięcznego.
BOOL SetDayState(
int nMonths,
LPMONTHDAYSTATE pStates);
Parametry
nMonths
Wartość wskazująca liczbę elementów w tablicy, do których wskazuje wartość pStates .
pStates
Wskaźnik do tablicy MONTHDAYSTATE wartości, które definiują sposób, w jaki kontrolka kalendarza miesiąca będzie rysować każdego dnia w jego wyświetlaczu. Typ danych MONTHDAYSTATE jest polem bitowym, w którym każdy bit (od 1 do 31) reprezentuje stan dnia w miesiącu. Jeśli bit jest włączony, odpowiedni dzień będzie wyświetlany pogrubioną czcionką; w przeciwnym razie będzie wyświetlany bez nacisku.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_SETDAYSTATE zgodnie z opisem w zestawie Windows SDK.
Przykład
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
Ustawia kontrolkę kalendarza bieżącego miesiąca na widok dekady.
BOOL SetDecadeView();
Wartość zwracana
Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda używa metody CMonthCalCtrl::SetCurrentView , aby ustawić widok na MCMV_DECADE
, który reprezentuje widok dekady.
CMonthCalCtrl::SetFirstDayOfWeek
Ustawia dzień tygodnia, który ma być wyświetlany w lewej kolumnie kalendarza.
BOOL SetFirstDayOfWeek(
int iDay,
int* lpnOld = NULL);
Parametry
iDay
Wartość całkowita reprezentująca dzień, który ma być ustawiony jako pierwszy dzień tygodnia. Ta wartość musi być jedną z liczb dni. Aby uzyskać opis liczb dni, zobacz GetFirstDayOfWeek .
lpnOld
Wskaźnik do liczby całkowitej wskazujący pierwszy dzień tygodnia wcześniej ustawionego.
Wartość zwracana
Nonzero, jeśli poprzedni pierwszy dzień tygodnia jest ustawiony na wartość inną niż LOCALE_IFIRSTDAYOFWEEK, która jest dniem wskazanym w ustawieniu panelu sterowania. W przeciwnym razie ta funkcja zwraca wartość 0.
Uwagi
Ta funkcja składowa implementuje zachowanie MCM_SETFIRSTDAYOFWEEK komunikatu Win32 zgodnie z opisem w zestawie Windows SDK.
Przykład
// 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
Ustawia maksymalną liczbę dni, które można wybrać w kontrolce kalendarza miesiąca.
BOOL SetMaxSelCount(int nMax);
Parametry
nMax
Wartość, która zostanie ustawiona tak, aby reprezentować maksymalną liczbę wybranych dni.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_SETMAXSELCOUNT zgodnie z opisem w zestawie WINDOWS SDK.
Przykład
// 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
Ustawia częstotliwość przewijania dla kontrolki kalendarza miesięcznego.
int SetMonthDelta(int iDelta);
Parametry
iDelta
Liczba miesięcy, które mają być ustawiane jako szybkość przewijania kontrolki. Jeśli ta wartość jest równa zero, funkcja delta miesiąca jest resetowana do wartości domyślnej, czyli liczby miesięcy wyświetlanych w kontrolce.
Wartość zwracana
Poprzednia szybkość przewijania. Jeśli szybkość przewijania nie została wcześniej ustawiona, zwracana wartość to 0.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_SETMONTHDELTA zgodnie z opisem w zestawie WINDOWS SDK.
CMonthCalCtrl::SetMonthView
Ustawia kontrolkę kalendarza bieżącego miesiąca, aby wyświetlić widok miesiąca.
BOOL SetMonthView();
Wartość zwracana
Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda używa metody CMonthCalCtrl::SetCurrentView , aby ustawić widok na MCMV_MONTH, który reprezentuje widok miesiąca.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_monthCalCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki kalendarza miesiąca. Ta zmienna jest używana w następnym przykładzie.
// Variable used to reference the month calendar control.
CMonthCalCtrl m_monthCalCtrl;
// Variable used to reference the splitbutton control.
CSplitButton m_splitButton;
W następnym przykładzie kodu ustawiono kontrolkę kalendarza miesiąca na wyświetlanie widoków miesiąca, roku, dekady i stulecia.
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
Ustawia minimalną i maksymalną dozwoloną datę dla kontrolki kalendarza miesiąca.
BOOL SetRange(
const COleDateTime* pMinRange,
const COleDateTime* pMaxRange);
BOOL SetRange(
const CTime* pMinRange,
const CTime* pMaxRange);
BOOL SetRange(
const LPSYSTEMTIME pMinRange,
const LPSYSTEMTIME pMaxRange);
Parametry
pMinRange
Wskaźnik do COleDateTime
obiektu, CTime
obiektu lub struktury SYSTEMTIME zawierającej datę na najniższym końcu zakresu.
pMaxRange
Wskaźnik do COleDateTime
obiektu, CTime
obiektu lub SYSTEMTIME
struktury zawierającej datę na najwyższym końcu zakresu.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_SETRANGE zgodnie z opisem w zestawie Windows SDK. W implementacji SetRange
MFC programu można określić COleDateTime
użycie, CTime
użycie lub SYSTEMTIME
użycie struktury.
Przykład
Zobacz przykład CMonthCalCtrl::GetRange.
CMonthCalCtrl::SetSelRange
Ustawia wybór kontrolki kalendarza miesiąca na określony zakres dat.
BOOL SetSelRange(
const COleDateTime& pMinRange,
const COleDateTime& pMaxRange);
BOOL SetSelRange(
const CTime& pMinRange,
const CTime& pMaxRange);
BOOL SetSelRange(
const LPSYSTEMTIME pMinRange,
const LPSYSTEMTIME pMaxRange);
Parametry
pMinRange
Wskaźnik do COleDateTime
obiektu, CTime
obiektu lub struktury SYSTEMTIME zawierającej datę na najniższym końcu zakresu.
pMaxRange
Wskaźnik do COleDateTime
obiektu, CTime
obiektu lub SYSTEMTIME
struktury zawierającej datę na najwyższym końcu zakresu.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa implementuje zachowanie MCM_SETSELRANGE komunikatu Win32 zgodnie z opisem w zestawie Windows SDK. W implementacji SetSelRange
MFC programu można określić COleDateTime
użycie, CTime
użycie lub SYSTEMTIME
użycie struktury.
CMonthCalCtrl::SetToday
Ustawia kontrolkę kalendarza dla bieżącego dnia.
void SetToday(const COleDateTime& refDateTime);
void SetToday(const CTime* pDateTime);
void SetToday(const LPSYSTEMTIME pDateTime);
Parametry
refDateTime
Odwołanie do obiektu COleDateTime zawierającego bieżącą datę.
pDateTime
W drugiej wersji wskaźnik do obiektu CTime zawierającego bieżące informacje o dacie. W trzeciej wersji wskaźnik do struktury SYSTEMTIME , która zawiera bieżące informacje o dacie.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 MCM_SETTODAY zgodnie z opisem w zestawie Windows SDK.
Przykład
Zobacz przykład CMonthCalCtrl::GetToday.
CMonthCalCtrl::SetYearView
Ustawia kontrolkę kalendarza bieżącego miesiąca na widok roku.
BOOL SetYearView();
Wartość zwracana
Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.
Uwagi
Ta metoda używa metody CMonthCalCtrl::SetCurrentView , aby ustawić widok na MCMV_YEAR, który reprezentuje widok roczny.
CMonthCalCtrl::SizeMinReq
Wyświetla kontrolkę kalendarza miesiąca do minimalnego rozmiaru, który wyświetla jeden miesiąc.
BOOL SizeMinReq(BOOL bRepaint = TRUE);
Parametry
bRepaint
Określa, czy kontrolka ma zostać przemalowana. Domyślnie wartość TRUE. Jeśli fałsz, nie wystąpi przemalowanie.
Wartość zwracana
Nonzero, jeśli kontrolka kalendarza miesiąca ma rozmiar do minimum; w przeciwnym razie 0.
Uwagi
Wywołanie SizeMinReq
pomyślnie wyświetla kontrolkę kalendarza całego miesiąca dla kalendarza jednego miesiąca.
CMonthCalCtrl::SizeRectToMin
Dla kontrolki kalendarza bieżącego miesiąca oblicza najmniejszy prostokąt, który może zawierać wszystkie kalendarze pasujące do określonego prostokąta.
LPRECT SizeRectToMin(LPRECT lpRect);
Parametry
lpRect
[in] Wskaźnik do struktury RECT , która definiuje prostokąt zawierający żądaną liczbę kalendarzy.
Wartość zwracana
Wskaźnik do struktury RECT , który definiuje prostokąt, którego rozmiar jest mniejszy lub równy prostokątowi zdefiniowanemu przez parametr lpRect .
Uwagi
Ta metoda oblicza, ile kalendarzy może zmieścić się w prostokątie określonym przez parametr lpRect , a następnie zwraca najmniejszy prostokąt, który może zawierać tę liczbę kalendarzy. W efekcie ta metoda zmniejsza określony prostokąt, aby dokładnie dopasować żądaną liczbę kalendarzy.
Ta metoda wysyła komunikat MCM_SIZERECTTOMIN opisany w zestawie Windows SDK.
Zobacz też
Przykładowe CMNCTRL1 MFC
Klasa CWnd
Wykres hierarchii
Klasa CDateTimeCtrl