Aracılığıyla paylaş


CMenu::GetMenuState

Bir açılır menü durumu belirtilen menü öğesi veya öğe sayısını döndürür.

UINT GetMenuState(
   UINT nID,
   UINT nFlags 
) const;

Parametreler

  • nID
    Menü öğesi kimliği tarafından belirlendiği biçimde belirtir nFlags.

  • nFlags
    Doğasını belirtir nID.Aşağıdaki değerlerden biri olabilir:

    • mf_bycommand parametresi varolan menü öğesinin komut kimliği verir belirtir.Bu varsayılandır.

    • MF_BYPOSITION parametresi varolan menü öğesinin konumunu verir belirtir.İlk öğe 0 konumunda değil.

Dönüş Değeri

Belirtilen öğe yoksa, 0xFFFFFFFF değeri.NId tanımlayan bir açılır menü yüksek düzey baytta açılır menüsünde öğe sayısını ve düşük düzey baytta bir açılır menü ile ilişkili menü bayraklar içerir.Aksi takdirde dönüş değeri bir (Boole veya) değerleri aşağıdaki listeden maskesidir (Bu maske menü durumunu açıklar, madde nId tanımlar):

  • mf_checked ile geçiş görür mf_unchecked için öğenin yanındaki varsayılan onay işareti koyun.Ne zaman uygulama sağlayan onay işareti bitmapler (bkz: SetMenuItemBitmaps üye işlevi), "onay işareti" bit eşlem görüntülenir.

  • MF_DISABLED menü öğesi seçilemez ancak onu dim değil, devre dışı bırakır.

  • MF_ENABLEDSeçilebilir ve soluk durumuna geri yükler böylece menü öğesi sağlar.Bu sabiti değerinin 0 olduğunu unutmayın; bir uygulama hatası için 0 karşı bu değeri kullanılırken sınamalısınız değil.

  • mf_grayed , böylece seçilemez ve onu karartır menü öğesini devre dışı bırakır.

  • mf_menubarbreak öğeyi statik menüleri veya açılır menüler yeni bir sütunda yeni bir satıra yerleştirir.Yeni açılır menüsünden sütun dikey bölme çizgiyle eski sütundan ayrılacaktır.

  • mf_menubreak öğeyi statik menüleri veya açılır menüler yeni bir sütunda yeni bir satıra yerleştirir.Hiçbir bölme çizgisini sütunlar arasında yer alır.

  • mf_separator yatay bölme çizgisi çizer.Yalnızca açılan menüde kullanılabilir.Bu satır soluk, devre dışı, vurgulanan veya silinemez.Diğer parametreler yok sayılır.

  • mf_unchecked ile geçiş görür mf_checked öğesinin yanındaki onay işaretini kaldırın.Ne zaman uygulama sağlayan onay işareti bitmapler (bkz: SetMenuItemBitmaps üye işlevi), "kapalı onay işareti" bit eşlem görüntülenir.Bu sabiti değerinin 0 olduğunu unutmayın; bir uygulama hatası için 0 karşı bu değeri kullanılırken sınamalısınız değil.

Örnek

// 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);
}

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CMenu sınıfı

Hiyerarşi grafik

GetMenuState

CMenu::CheckMenuItem

CMenu::EnableMenuItem