Nastavení stavu dne v ovládacím prvku měsíční kalendář
Jedním z atributů prvku měsíční kalendář je schopnost ukládat informace, které jsou označovány jako den stav ovládacího prvku, pro každý den v měsíci.Tyto informace slouží ke zvýraznění některých dat pro aktuálně zobrazený měsíc.
[!POZNÁMKA]
CMonthCalCtrl Objekt musí mít MCS_DAYSTATE styl, který chcete zobrazit informace o stavu den.
Informace o stavu den je vyjádřena jako typ dat 32-bit MONTHDAYSTATE.Každý bit v MONTHDAYSTATE pole typu bit (1-31) představuje stav den v měsíci.Je-li bit v tento den se zobrazí tučně; v opačném případě budou zobrazeny s neklade důraz.
Existují dvě metody pro nastavení stavu den v ovládacím prvku měsíční kalendář: explicitně pomocí volání CMonthCalCtrl::SetDayState nebo manipulace MCN_GETDAYSTATE oznámení.
Zpracování oznámení MCN_GETDAYSTATE
MCN_GETDAYSTATE je zaslána zpráva v ovládacím prvku určit zobrazení dnů, měsíců viditelná.
[!POZNÁMKA]
Vzhledem k tomu, že ovládací prvek ukládá předchozího a následujícího měsíce, z hlediska zobrazený měsíc obdržíte upozornění pokaždé, když je zvolen nový měsíc.
Správně zpracovat tuto zprávu, je třeba určit, kolik měsíců se informace o stavu den žádáno, inicializovat pole MONTHDAYSTATE struktur s správné hodnoty a initialize člen struktury související s novými informacemi.Následující postup, s podrobným popisem nezbytná opatření předpokládá, že máte CMonthCalCtrl objektu s názvem m_monthcal a celou řadu MONTHDAYSTATE objekty, mdState.
Zpracování oznámení MCN_GETDAYSTATE
Pomocí okna Vlastnosti přidání obslužné rutiny oznámení MCN_GETDAYSTATE zprávy m_monthcal objektu (viz Mapování zpráv do funkcí).
V těle obslužné rutiny přidejte následující kód:
LPNMDAYSTATE pDayState = reinterpret_cast<LPNMDAYSTATE>(pNMHDR); int iMax = pDayState->cDayState; for(int i = 0; i < iMax; i++) { pDayState->prgDayState[i] = (MONTHDAYSTATE)0; // init to 0 pDayState->prgDayState[i] |= 0x01 << 14; // set 15th bit to 1 }
V příkladu převede pNMHDR ukazatel na správný typ. pak určuje, kolik měsíců informace jsou požadovány (pDayState->cDayState).Pro každý měsíc aktuální bitfield (pDayState->prgDayState[i]) je inicializován nula a potom potřebná data jsou nastaveny (v tomto případě k patnáctému v měsíci).
Viz také
Referenční dokumentace
Používání atributu CMonthCalCtrl