Klasa CMonthCalCtrl

Hermetyzuje funkcjonalność kontrolki kalendarza miesięcznego.

Składnia

class CMonthCalCtrl : public CWnd

Członkowie

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

Cobject

Ccmdtarget

Cwnd

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:

  1. Wywołaj metodę CMonthCalCtrl CMonthCalCtrl, aby skonstruować obiekt.

  2. Wywołaj tę funkcję składową, która tworzy kontrolkę kalendarza miesięcznego i dołącza ją do CMonthCalCtrl obiektu.

Podczas wywoływania Createmetody 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_monthCalCtrlktó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_monthCalCtrlktó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 GetCurSelMFC 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
4 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_monthCalCtrlktó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 GetMonthRangeMFC 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 GetRangeMFC 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 GetSelRangeMFC 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 GetTodayMFC 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 uHitMCHITTESTINFO struktury.

Uwagi

HitTestMCHITTESTINFO 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_monthCalCtrlktó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_monthCalCtrlktó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ęczny
  • MCMV_YEAR: Widok roczny
  • MCMV_DECADE: Widok dekady
  • MCMV_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 SetCurSelMFC 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_monthCalCtrlktó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 SetRangeMFC 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 SetSelRangeMFC 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