Veröffentlicht 8. August 200322 j Hallo, ich versuche in der Menüleiste ein neues Element einzubinden (wie "Datei") und anschließend mehrere Unterelemente (wie "Neu", "Öffnen" etc.) hier der Code: CMenu *pMenu = GetMenu(); iPos = 3 // Kommt normalerweise als Übergabeparameter //Oberpunkt erstellen (z.B. Datei) pMenu->InsertMenu(iPos, MF_BYPOSITION, MF_SEPARATOR, "Datei"); DrawMenuBar(); //Anzahl aller Items ermitteln und nach der mit Beschriftung "Datei" suchen int iMenuSize = pMenu->GetMenuItemCount(); for( int i = 0; i < iMenuSize; i++) { CString szTmp; pMenu->GetMenuString(i, szTmp, MF_BYPOSITION ); if( szTmp == "Datei" ) { //Und hier kriege ich keinen gültigen Handle! Wieso??? CMenu* pSubmenu = pMenu->GetSubMenu(i); //Array mit Menüelementen int iMax = m_aMenuArray.GetSize(); for (int a=0; a<iMax ;a++) { MenuStruktur = m_aMenuArray.GetAt(a); pSubmenu->InsertMenu(a, MF_BYPOSITION| MenuStruktur.uiMenuState, MenuStruktur.uiID, MenuStruktur.szText); } this->DrawMenuBar(); } } aifl
8. August 200322 j Gefunden! Die Stelle wo der Oberpunkt erstellt wird kommt folgendes: CMenu *pMenu = GetMenu(); MenuStruct MenuStruktur; int iMenuSize = pMenu->GetMenuItemCount(); CMenu NewPopupMenu; NewPopupMenu.CreatePopupMenu(); HMENU hNewMenu = NewPopupMenu.GetSafeHmenu(); pMenu->InsertMenu( m_iMenuPos, MF_BYPOSITION | MF_POPUP | MF_ENABLED, (UINT)hNewMenu, szMenu ); iMenuSize++; NewPopupMenu.Detach(); Ein schönes Wochenende! aifl
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.