다음을 통해 공유


CMenu::GetMenuState

팝업 메뉴에서 지정 된 메뉴 항목 또는 항목의 상태를 반환합니다.

UINT GetMenuState( 
   UINT nID, 
   UINT nFlags  
) const;

매개 변수

  • nID
    메뉴 항목 ID에 따라 지정 nFlags.

  • nFlags
    특성을 지정 합니다. nID. 다음 값 중 하나가 될 수 있습니다.

    • MF_BYCOMMAND 지정 매개 변수는 기존 메뉴 항목의 명령 ID를 제공 합니다. 이 값이 기본값입니다.

    • MF_BYPOSITION 매개 변수는 기존 메뉴 항목의 위치를 수를 지정 합니다. 첫 번째 항목은 0 위치에 있습니다.

반환 값

지정 된 항목이 존재 하지 않는 경우 0xFFFFFFFF 값입니다. 경우 nId 식별 팝업 메뉴에서 팝업 메뉴의 항목 개수를 포함 하는 상위 바이트 및 팝업 메뉴와 연결 된 메뉴 플래그 낮은 순서 바이트를 포함 합니다. 다음 목록에서 값을 반환 하는 값 (부울 또는) 마스크 그렇지입니다 (메뉴의 상태를 설명 하는이 마스크 항목을 nId 식별).

  • MF_CHECKED 로 전환으로 서 역할을 MF_UNCHECKED 항목 옆에 있는 기본 확인란을 선택 합니다. 때 응용 프로그램 제공 확인 표시가 비트맵 (참조는 SetMenuItemBitmaps 멤버 함수), "확인란에" 비트맵 표시 됩니다.

  • MF_DISABLED 선택할 수 없습니다 하지만 흐리게 표시 하지 않도록 메뉴 항목을 사용할 수 없습니다.

  • MF_ENABLED선택 하 고 흐리게 표시 된 상태에서 복원 될 수 있도록 메뉴 항목이 있습니다. Note이 상수의 값은 0입니다. 응용 프로그램 오류에 대 한 0에 대해이 값을 사용 하는 경우 테스트 하면 안.

  • MF_GRAYED 선택할 수 없습니다 하 고 흐리게 표시 하 여 메뉴 항목을 사용할 수 없습니다.

  • MF_MENUBARBREAK 항목이 정적 메뉴 또는 팝업 메뉴에서 새 열 새 줄에 배치 합니다. 세로 구분선으로 새 팝업 메뉴 열 이전 열에서 나뉩니다.

  • MF_MENUBREAK 항목이 정적 메뉴 또는 팝업 메뉴에서 새 열 새 줄에 배치 합니다. 구분 선이 없습니다 열 사이 배치 됩니다.

  • MF_SEPARATOR 가로 구분선을 그립니다. 팝업 메뉴에서 사용할 수 있습니다. 이 줄이 흐리게, 비활성화 하거나 강조 표시 될 수 없습니다. 다른 매개 변수는 무시 됩니다.

  • MF_UNCHECKED 로 전환으로 서 역할을 MF_CHECKED 항목 옆에 확인 표시를 제거 합니다. 때 응용 프로그램 제공 확인 표시가 비트맵 (참조는 SetMenuItemBitmaps 멤버 함수), "확인란 해제" 비트맵 표시 됩니다. Note이 상수의 값은 0입니다. 응용 프로그램 오류에 대 한 0에 대해이 값을 사용 하는 경우 테스트 하면 안.

예제

// CMainFrame::OnToggleTestMenuState() is a menu command handler for  
// "Toggle State" menu item (whose resource id is ID_MENU_TOGGLESTATE). 
// It toggles the checked or unchecked state of the "Toggle State" menu item.
// CMainFrame is a CFrameWnd-derived class. 
void CMainFrame::OnToggleTestMenuState() 
{
   // Get the popup menu which contains the "Toggle State" menu item.
   CMenu* mmenu = GetMenu();
   CMenu* submenu = mmenu->GetSubMenu(4);

   // Check the state of the "Toggle State" menu item. Check the menu item
   // if it is currently unchecked. Otherwise, uncheck the menu item 
   // if it is not currently checked.
   UINT state = submenu->GetMenuState(ID_MENU_TOGGLESTATE, MF_BYCOMMAND);
   ASSERT(state != 0xFFFFFFFF);

   if (state & MF_CHECKED)
      submenu->CheckMenuItem(ID_MENU_TOGGLESTATE, MF_UNCHECKED | MF_BYCOMMAND);
   else
      submenu->CheckMenuItem(ID_MENU_TOGGLESTATE, MF_CHECKED | MF_BYCOMMAND);
}

요구 사항

헤더: afxwin.h

참고 항목

참조

CMenu 클래스

계층 구조 차트

GetMenuState

CMenu::CheckMenuItem

CMenu::EnableMenuItem