[Visual C++] Problem z menu

0

Witam. Uzywam Visual Studio .NET 2003. Mam problem z menu glownym. Typ aplikacji to Dialog Based.
Utworzylem menu, dodalem do okna, poszczegolne pozycje maja tez swoje metody. Problem jest taki: dodalem do menu rowniez zdarzenia ON_UPDATE_COMMAND_UI i odpowiednie metody.
Jedna z nich:

void CMyDialog::OnUpdateKolorBialy(CCmdUI *pCmdUI)
{
	pCmdUI->SetRadio(bialy == true);
}

bialy to obiekt typu

bool

mowiacy czy wybrany jest kolor bialy. Druga metoda to zaznaczenie kropki przy kolorze czarnym rozniaca sie nazwa i operacja:

pCmdUI->SetRadio(bialy != true);

Pisane wg MSDN. Problem w tym ze NIE DZIALA! Same wartosci pola bialy sie zmieniaja po klikach ale wyglad menu sie nie zmienia :-/ Wiec jesli ktos jest w stanie pomoc to bardzo prosze.

0

Hmmm... A co według Ciebie powinno się stać z menu po SetRadio() w OnUpdateXxx()?? ;->
To jest wykorzystywane TYLKO w architekturze document/view. Sam dialog ci tego za cholerę nie obsłuży, chyba że napiszesz własną obsługę :) M$ jak zwykle rulezuje dając coś użytkownikom bez wyjaśnień :D
Domyślna obsługa SetRadio() i SetCheck() nic nie robi.
Używaj SDI App, lub Dialog+doc/view [chyba w VS7 już można?] jeśli nie chcesz takich niespodzianek.
Spróbuj coś w stylu:

void CMfcappdlgDlg::OnUpdateCosAaaaa(CCmdUI* pCmdUI) 
{
    CMenu *pmenu = GetMenu();
    pmenu->CheckMenuRadioItem(ID_COS_AAAAA,ID_COS_AAAAA,ID_COS_AAAAA,0);
}

Tylko poczytaj o CheckMenuRadioItem(), bo ja tak na chama dałem wszystkie ID takie same :)
Powodzenia (znowu)...

1 użytkowników online, w tym zalogowanych: 0, gości: 1