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