Dynamisch erstelltes Menü und Haken
-
Ich erstelle Menüeinträge aus einer Datenbank:
int cid = -1; while (!reco->IsEOF()) { cid++; COleVariant fv; reco->GetFieldValue(0,fv); CString mitem = fv.pbVal; m.GetSubMenu(3)->GetSubMenu(0)->InsertMenu(0,MF_BYPOSITION|MF_STRING,BOERSEN_ID1+cid,mitem); if(GetConfig(mitem) =="Ja")//GetConfig:Funktion die aus einer Konfigurationstabelle in der DB liest { m.GetSubMenu(3)->GetSubMenu(0)->CheckMenuItem(MF_BYCOMMAND|MF_CHECKED,BOERSEN_ID1+cid); boerse_suchen.Add(1);//CUIntArray das den Zustand der Menüeinträge speichert } else { m.GetSubMenu(3)->GetSubMenu(0)->CheckMenuItem(MF_BYCOMMAND|MF_UNCHECKED,BOERSEN_ID1+cid); boerse_suchen.Add(0); } reco->MoveNext(); }und frage dann mit ON_COMMAND_RANGE ab,ob auf einen der Einträge geklickt wurde:
void CMeinDlg::OnMenupunkt(UINT nID) { CString mitem; m.GetMenuString(nID,mitem,MF_BYCOMMAND); if(boerse_suchen[nID-BOERSEN_ID1]== 0) { m.GetSubMenu(3)->GetSubMenu(0)->CheckMenuItem(MF_BYCOMMAND|MF_CHECKED,nID); boerse_suchen[nID-BOERSEN_ID1]=1; SetConfig(mitem,"Ja"); } else { m.GetSubMenu(3)->GetSubMenu(0)->CheckMenuItem(MF_BYCOMMAND|MF_UNCHECKED,nID); boerse_suchen[nID-BOERSEN_ID1]=0; SetConfig(mitem,"Nein"); } }Aber weder beim Start des Programms noch nach klicken auf einen Eintrag wird dieser angehakt.Was mache ich falsch?
-
Hast du eine Dialogfeldbasierende Anwendung?
-
Ja
-
Hat sich erledigt

-
Habs selbst gefunden hab die Parameter in der falschen Reihenfolgen