Check-Mark in Menü setzen und wieder aufheben
-
Ich habe ein Menu erstellt mit dem Dialog verknüpft...
nun will ich im Menü ein Haken setzen bzw. den Status auslesen.
Ich bekomme es einfach nicht hin - das ich den Haken setzen kann und wieder aufheben kann...nehme ich
CheckMenuItem(ID_TEST2_TEST3,1); // muss ich 3 Parameter übergeben 1. muss vom Typ HMENU sein -> wo bekomme ich denn das Objekt her??
mach ich das:
CMenu men; men.LoadMenu(IDR_MENU1); men.CheckMenuItem(ID_TEST2_TEST3,1);
dann läuft er zwar durch aber nichts passiert??
kann mir jemand sagen wie so etwas geht??
-
Du kannst ein Haken mit pCmdUI->SetCheck setzen , aber nicht wieder entfernen. Es muss erst ein Haken auf einen anderen Eintrag im gleichen Menue gesetzt werden, dann verschwindet der andere Haken automatisch.
Gruß
:: NoName ::
-
void CControlDlg::OnUpdateTestBlablo(CCmdUI *pCmdUI) { pCmdUI->SetCheck(0); }
..sowas habe ich auch schon probiert funzt aber nit - die Funktion wird bei mir nicht einmal aufgerufen
Es muss erst ein Haken auf einen anderen Eintrag im gleichen Menue gesetzt werden, dann verschwindet der andere Haken automatisch.
ich glaube das kann nicht sein - ich habe schon nen programm gesehen, wo es nicht so war.
irgendwie habe ich das gefühl - das ich was völlig falsch angehe??
-
So sollte es funktionieren. Die Zustände der einzelnen Menüeinträge spielen dabei auch keine Rolle.
OnCreateLogfiles< muss mit dem Klassenassistenten erzeugt werden. Wenn der entsprechende Menüeintrag angeklickt wird, muss die Funktion dann auch aufgerufen werden...ansonsten gibt's größere Probleme
void CMGold2_TCEDlg::OnCreateLogfiles()
{
m_bCreateLogFiles = !m_bCreateLogFiles;
if(m_bCreateLogFiles){
((CMenu*) GetMenu())->CheckMenuItem(ID_CREATE_LOGFILES, MF_CHECKED);
}
else{
((CMenu*) GetMenu())->CheckMenuItem(ID_CREATE_LOGFILES, MF_UNCHECKED);
}
}