Поделиться через


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, объект CTime или структуре, содержащий дату SYSTEMTIME на самом высоком конце диапазона.

Возвращаемое значение

DWORD, которое может быть нулевым (никакие ограничения не установлены) или сочетанием следующих значений, которые определяют данные ограничения.

Значение

Значение

GDTR_MAX

Максимальное ограничение установлено для элемента управления; применимые pMaxRange допустимым и содержит данные типа.

GDTR_MIN

Минимальное ограничение установлено для элемента управления; применимые pMinRange допустимым и содержит данные типа.

Заметки

Эта функция-член реализует расширение функциональности Win32 сообщения MCM_GETRANGE, как описано в Windows SDK. В реализации MFC GetRange можно указать потребление 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);
}

Требования

Header: afxdtctl.h

См. также

Ссылки

Класс CMonthCalCtrl

Диаграмма иерархии

CMonthCalCtrl::SetRange