2016-03-24 15 views
1

enter image description herekullanıcı bir alt menü öğesini seçtikten veya

ben menüde dikdörtgen öğesinin altında bir alt menüye sahip bir MFC uygulaması var MFC olmadığını bilin. Siyah menü, kullanıcı GUI'den tıklandığında seçilmiyor. Kullanıcı, alt menüyü seçtiği gibi, arayüzün yanında bir onay işareti görünmesini istiyorum. Ama bunu yapamadı. Bu, kullanıcı odağını tıkladıkça odaklanmak için denediğim koddur.

This is for ON_COMMAND: 

ON_COMMAND(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, &CMainFrame::OnToggleTestBlackRectangles)  

void CMainFrame::OnToggleTestBlackRectangles() 
{ 
CMenu menu; 
menu.LoadMenu(IDR_MAINFRAME); 
menu.CheckMenuItem(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, MF_CHECKED); 
UINT SST = menu.GetMenuState(ID_RECTANGLE_BLACK, MF_BYCOMMAND); 
} 

This is for ON_UPDATE_COMMAND_UI: 

ON_UPDATE_COMMAND_UI(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, &CMainFrame::OnCheckMenu) 
void CMainFrame::OnCheckMenu(CCmdUI *pCmdUI) 
{ 

    pCmdUI->SetCheck(0); 

} 

bile kullanıcı alt menüsünü tıklar, onay işareti görünmez ve hatta getmenustate yerine olmayan bir bir 0 döndürür - sıfır değerine.

Herhangi bir yardım için teşekkür ederiz!

+0

Bu kod hiçbir şey yapmaz. Komutun yanında bir onay işareti eklemek ister misiniz? –

+0

@BarmakShemirani Mesajımı yeni güncelledim ve uyguladığım tüm işlevleri yazdım. – chaitanyakrishna

+1

Bir üye değişkeni bildir BOOL m_black; 'onu doğru veya yanlış olarak başlat. 'OnToggle()' işlevini '{m_black =! M_black;}' '' OnCheckMenu''yu '{pCmdUI-> SetCheck (m_black);}' ' –

cevap

2

UI kendi kendine güncellenmiyor, bunu yapmanız gerekiyor.

Lütfen okuyun: How to: Update User-Interface Objects

+0

olarak değiştirin. Cevabınız üzerinde durmalısınız. Bağlantınız geçersiz olursa, cevabınızın değeri düşer. – rrirower

İlgili konular