Sdílet prostřednictvím


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

  1. 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í).

  2. 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

Koncepty

Ovládací prvky (MFC)