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