Compartir a través de


CMonthCalCtrl::SetDayState

Establece la presentación para los días en un control de calendario mensual.

BOOL SetDayState( 
   int nMonths, 
   LPMONTHDAYSTATE pStates  
);

Parámetros

  • nMonths
    Indicación de valor cuántos elementos están en la matriz al que pStates señala.

  • pStates
    Puntero a una matriz de MONTHDAYSTATE de los valores que definen cómo el control de calendario mensual dibuje cada día en la pantalla. El tipo de datos de MONTHDAYSTATE es un campo de bits, donde cada bit (1 a 31) representa el estado de un día de un mes. Si un bit está activado, el día correspondiente aparecerá en negrita; si no se mostrará sin enfoque.

Valor devuelto

Distinto de cero si correctamente; si no 0.

Comentarios

Esta función miembro implementa el comportamiento del mensaje MCM_SETDAYSTATEde Win32, como se describe en Windows SDK.

Ejemplo

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;
}

Requisitos

encabezado: afxdtctl.h

Vea también

Referencia

CMonthCalCtrl Class

Gráfico de jerarquías