Month Calendar 컨트롤의 요일 상태 설정

Month calendar 컨트롤의 속성 중 하나에 컨트롤의 요일 상태와 각 월의 날짜에 대 한 참조 정보를 저장 하는 기능입니다.이 정보를 사용 하 여 현재 표시 된 달에 대 한 특정 날짜를 강조 합니다.

[!참고]

CMonthCalCtrl 개체에 있어야는 MCS_DAYSTATE 일 상태 정보를 표시 합니다.

날 상태 정보는 32 비트 데이터 형식으로 표현 됩니다 MONTHDAYSTATE.각 비트는 MONTHDAYSTATE 비트 필드 (1-31) 하루에 한 달의 상태를 나타냅니다.비트가 설정 되 면 해당 요일이 표시 됩니다 굵게; 그렇지 않으면 없음으로 강조 표시 됩니다.

Month calendar 컨트롤의 요일 상태 설정에 두 가지가: 호출을 명시적으로 CMonthCalCtrl::SetDayState 하거나 처리는 MCN_GETDAYSTATE 알림 메시지.

MCN_GETDAYSTATE 알림 메시지를 처리합니다.

MCN_GETDAYSTATE 메시지를 보낼 컨트롤에 의해 표시 개월 내의 날짜 표시 방법 결정 합니다.

[!참고]

새 달을 선택할 때마다 컨트롤에 대해 표시 된 달에 이전 및 다음 월을 캐시 하기 때문에이 알림 메시지를 받게 됩니다.

이 메시지를 제대로 처리 하려면 얼마나 많은 상태 정보 하루 중 몇 개월에 대 한 요청을 배열을 초기화 결정 해야 MONTHDAYSTATE 구조체에 적절 한 값 및 새 정보에 관련 된 구조체 멤버를 초기화 합니다.다음 절차에서 필요한 단계를 자세히 설명 하면 있다고 가정은 CMonthCalCtrl 라는 개체 m_monthcal 의 배열과 MONTHDAYSTATE 개체 mdState.

MCN_GETDAYSTATE 알림 메시지를 처리 합니다.

  1. 추가 대 한 알림 처리기의 속성 창을 사용 하는 MCN_GETDAYSTATE 에 메시지는 m_monthcal 개체 (참조 하십시오 함수에 메시지 매핑).

  2. 처리기 본문에 다음 코드를 추가 합니다.

    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
    }
    

    변환 예제는 pNMHDR 포인터를 적절 한 형식으로, 다음 결정 몇 개월의 정보를 요청 하는 (pDayState->cDayState).월간 현재 비트 필드 (pDayState->prgDayState[i]) 0 및 다음 필요한 초기화 날짜 (이 경우, 각 월의 15 일) 설정 됩니다.

참고 항목

참조

Cmonthcalctrl를 사용합니다.

개념

컨트롤 (MFC)