Partager via


CMonthCalCtrl::SetDayState

Définit l'affichage pour les jours dans un contrôle month calendar.

BOOL SetDayState(
   int nMonths,
   LPMONTHDAYSTATE pStates 
);

Paramètres

  • nMonths
    Évaluez indiquer le nombre d'éléments figurant dans le tableau laquelle pStates indique.

  • pStates
    Pointeur vers un tableau de MONTHDAYSTATE de valeurs qui définissent la manière dont le contrôle month calendar dessinera chaque jour dans son affichage.Le type de données de MONTHDAYSTATE est un champ de bits, où chaque bit (1 à 31) représente l'état d'un jour dans un mois.Si un bit est activé, le jour correspondant sera affiché en gras ; sinon il sera restitué sans l'importance.

Valeur de retour

Une valeur différente de zéro si l'opération a réussi ; sinon 0.

Notes

Cette fonction membre implémente le comportement du message MCM_SETDAYSTATEWin32, comme décrit dans Kit de développement logiciel Windows.

Exemple

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

Configuration requise

Header: afxdtctl.h

Voir aussi

Référence

Classe de CMonthCalCtrl

Graphique de la hiérarchie