Freigeben über


Menüs und Ressourcen: Zusammenführen von Menüs

Details dieses Artikels die Schritte notwendig, damit OLE-Dokumenten-Anwendungen visuelle Bearbeitung, und direkte Aktivierung ordnungsgemäß behandeln.Direkte Aktivierung stellt eine Herausforderung für Container- und Server(Komponente) Anwendungen dar.Der Benutzer bleibt im gleichen Rahmenfenster (im Kontext das Containerdokument) führt aber tatsächlich eine andere Anwendung aus (Server).Dies erfordert die Koordination zwischen den Ressourcen des Containers und Serveranwendungen.

Abgedeckte Themen in diesem Artikel gehören:

  • Menü-Layouts

  • Symbolleisten und Statusleisten

Menü-Layouts

Der erste Schritt besteht im Menü layouts zu koordinieren.Weitere Informationen finden Sie im Abschnitt MenüerstellungMenü-Programmie Überlegungen in Windows SDK.

Containeranwendungen sollten ein neues vorgesehen Menü erstellen, nur dann, wenn eingebettete Elemente an der Stelle aktiviert werden.Am Minimum muss dieses Menü aus Folgendem bestehen in der aufgeführten Reihenfolge:

  1. Menü Datei identisch mit dem verwendet, wenn Dateien geöffnet sind.(Normalerweise werden keine anderen Menüelemente vor dem nächsten Element) platziert.

  2. Zwei aufeinander folgende Kommas.

  3. Menü Fenster identisch mit dem verwendet, wenn Dateien geöffnet sind (nur wenn die Containeranwendung in einer MDI-Anwendung).Einige Anwendungen verfügen möglicherweise weitere Menüs, z. B. ein Menü Optionen, die in dieser Gruppe angehören, die sich im Menü bleibt, wenn ein eingebettetes Element an der Stelle aktiviert ist.

    HinweisHinweis

    Es gibt möglicherweise weitere Menüs, die die Ansicht des Containerdokuments auswirken, z. B. ZoomDiese Container Menüs stehen zwischen den beiden Trennzeichen in dieser Menüressource.

Anwendungen sollten) des Servers (Komponente ein neues Menü für die direkte Aktivierung auch ausdrücklich erstellen.Sie sollte wie das Menü, das verwendet wird, wenn Dateien geöffnet sind, jedoch ohne die Datei Menüelemente und Fenstern, die vom Server wird anstelle der Daten bearbeiten.In der Regel besteht dieses Menü aus Folgendem:

  1. Bearbeiten Sie das Menü, das mit dem identisch ist, das verwendet wird, wenn Dateien geöffnet sind.

  2. Trennzeichen.

  3. Objekt, das das Menü Stifts Menüs, wie in der Scribble-Beispielanwendung bearbeitet.

  4. Trennzeichen.

  5. Hilfemenü.

Ein Beispiel, betrachten Sie das Layout von mehreren Menüs direkter B. nach einem Container und einem Server.Die Details eines Menüelements wurden entfernt, um den Beispielen genannten Unternehmen reiniger zu machen.Das direkte Menü des Containers enthält die folgenden Einträge angezeigt:

IDR_CONTAINERTYPE_CNTR_IP MENU PRELOAD DISCARDABLE 
BEGIN
    POPUP "&File C1"
    MENUITEM SEPARATOR
    POPUP "&Zoom C2"
    MENUITEM SEPARATOR
    POPUP "&Options C3"
    POPUP "&Window C3"
END

Die nachfolgenden Trennzeichen angeben, wobei der erste Teil des Menüs des Servers wechseln soll.Betrachten Sie nun das direkte Menü des Servers:

IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE 
BEGIN
    POPUP "&Edit S1"
    MENUITEM SEPARATOR
    POPUP "&Format S2"
    MENUITEM SEPARATOR
    POPUP "&Help S3"
END

Die Trennzeichen hier geben an, wo die zweite Gruppe von Container menüelementen wechseln soll.Die resultierende Menüstruktur, wenn ein Objekt innerhalb dieses Containers vom Server aktiviertes gesorgt ist, sieht wie folgt aus:

BEGIN
    POPUP "&File C1"
    POPUP "&Edit S1"
    POPUP "&Zoom C2"
    POPUP "&Format S2"
    POPUP "&Options C3
    POPUP "&Window C3"
    POPUP "&Help S3"
END

Wie Sie sehen, sind die Kommas durch die verschiedenen Gruppen des Menüs jeder Anwendung ersetzt.

Die Zugriffstastentabellen, die dem direkten Menü zugeordnet werden, sind von der Serveranwendung ebenfalls angegeben werden.Der Container enthält es in seine eigenen Zugriffstastentabellen.

Wenn ein eingebettetes Element an der Stelle aktiviert ist, lädt das Framework das direkte Menü.Anschließend fordert die Serveranwendung für das Menü um die direkte Aktivierung und fügt sie ein, wobei die Begrenzungszeichen sind.Dies ist z. B. die Menüs kombinieren.Rufen Sie Menüs aus dem Container für die Verwendung in der Datei- und Fenster ab, und rufen Sie der vom Server für die Verwendung von Menüs für das Element ab.

Symbolleisten und Statusleisten

Serveranwendungen sollte eine neue Symbolleiste erstellen und die Bitmap in einer separaten Datei speichern.Die vom Assistenten generierten Anwendungen der Anwendung speichern diese Bitmap in einer Datei mit dem Namen ITOOLBAR.BMP.Die neue Symbolleiste ersetzt die Symbolleiste der Containeranwendung, wenn das Element des Servers an der Stelle aktiviert ist, und muss die gleichen Elemente wie die normale Symbolleiste enthalten, aber die Symbole entfernt, die Elemente für die Datei- und Fenster Menüs darstellt.

Diese Symbolleiste wird im COleIPFrameWnd- Die abgeleitete Klasse geladen, vom Anwendungs-Assistenten für Sie erstellt wurde.In der Statusleiste wird durch die Containeranwendung behandelt.Weitere Informationen über die Implementierung von direkten Rahmenfenstern finden Sie unter Server: Implementieren eines Server.

Siehe auch

Konzepte

Menüs und Ressourcen (OLE)

Aktivierung (C++)

Server

Container