Frage

Ich habe eine MFC-Anwendung, die CMenu für die Hauptmenüleiste verwendet.
Ich habe nicht erfolgreich in der Lage Untermenü zu erstellen.

kann ich die erste Ebene der Datei haben, Bearbeiten, Ansicht, usw. und deren Untermenüs, aber ich kann nicht ein Untermenü aus einem dieser Menüs erstellen.

Zum Beispiel würde Ich mag Lage sein, File-> Benutzte Objekte zu gehen -> Liste der Elemente im Untermenü
Ich kann mit dem Ressource-Editor in VS diesen leicht genug, aber dies muss dynamisch erfolgen.

Bin ich mit der richtigen Klasse in CMenu? Irgendwelche Vorschläge, was zu versuchen?
Ich habe keine anständige Tutorials gefunden. Auch ich nach rechts einem Hinweis wäre hilfreich.

War es hilfreich?

Lösung

Verwenden der Ressource-Editor ein Untermenü enthält ein Platzhalter Element hinzuzufügen. Sie können dann in diesem Untermenü einen Verweis programmatisch greifen, fügen Sie Artikel zu ihm und den Platzhalter Element löschen:

CMenu *subMenu = mainMenu.GetSubMenu( menuPosition );

if( subMenu )
{
    for( unsigned i = 0; i < stringArray.size(); i++ )
    {
        subMenu->AppendMenu( MF_STRING, 400 + i, stringArray[i]);
    }

    subMenu->DeleteMenu( ID_SUBMENU_PLACEHOLDER, MF_BYCOMMAND );
}

Andere Tipps

Ich hatte das gleiche, was heute zu tun, ich bin auf VS2008 mit dem Feature Pack (neue UI Sachen), und schaue auf den Proben, und es gibt Probe, wie Menüpunkte dynamisch hinzuzufügen ( http://msdn.microsoft.com/en-us/library/bb983167.aspx )

Sie müssen die CFrameWndEx :: OnShowPopupMenu Methode außer Kraft zu setzen.

Max.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top