Menus et ressources : fusion de menus
Cet article décrit en détail les étapes nécessaires pour que les applications OLE de document gèrent la modification sur place et l'activation sur place correctement.L'activation sur place lance un défi pour les applications de conteneur et de serveur (composant).L'utilisateur reste dans la même fenêtre frame (dans le contexte du document conteneur) mais procède à une autre application (le serveur).Cela nécessite la coordination entre les ressources du conteneur et des applications serveur.
Les rubriques abordées dans cet article incluent :
Dispositions de menu
Barres d'outils et barres d'état
Dispositions de menu
La première étape consiste à coordonner les mises en page de menu.Pour plus d'informations, consultez la section de Menu Creation dans considérations de programmation de menu dans Kit de développement logiciel Windows.
Les applications conteneur doivent créer un nouveau menu à utiliser uniquement lorsque les éléments incorporés sont activés en place.Au minimum, ce menu doit inclure les éléments suivants, dans l'ordre indiqué :
Menu Fichier identique à celui utilisé lorsque les fichiers ouverts.(Habituellement aucun autre élément de menu n'est placé avant l'élément suivant.)
Deux séparateurs consécutifs.
Menu Fenêtre identique à celui utilisé lorsque les fichiers sont ouverts (uniquement si l'application conteneur dans une application MDI).Certaines applications peuvent avoir d'autres menus, tels qu'un menu options, qui appartiennent à ce groupe, qui reste dans le menu lorsqu'un élément incorporé est activé en place.
[!REMARQUE]
Il peut y avoir d'autres menus qui affectent l'affichage du document conteneur, tel que le zoom.Ces menus de conteneur apparaissent entre les deux séparateurs dans cette ressource menu.
Les applications de serveur (composant) doivent également créer un nouveau menu spécifiquement pour l'activation sur place.Il doit se présenter comme le menu utilisé lorsque les fichiers sont ouverts, mais sans éléments de menu, notamment le fichier et la fenêtre qui manipulent le document serveur au lieu de données.En général, ce menu inclut les éléments suivants :
Menu Edition identique à celui utilisé lorsque les fichiers ouverts.
Séparateur.
Objet modifiant des menus, tels que le menu de stylet dans l'exemple d'application scribble.
Séparateur.
Menu ?.
Pour obtenir un exemple, examinez la disposition des menus sur place d'exemple pour un conteneur et un serveur.Les détails de chaque élément de menu ont été supprimés pour que le clearer d'exemple.Le menu sur place du conteneur a les entrées suivantes :
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
Les séparateurs consécutifs indiquent où la première partie du menu du serveur doit passer.Maintenant apparence au menu sur place du serveur :
IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Edit S1"
MENUITEM SEPARATOR
POPUP "&Format S2"
MENUITEM SEPARATOR
POPUP "&Help S3"
END
Les séparateurs ici indiquent où le second groupe d'éléments de menu de conteneur doit passer.La structure résultante de menu lorsqu'un objet de ce serveur est en place activé à l'intérieur de ce conteneur se présente comme suit :
BEGIN
POPUP "&File C1"
POPUP "&Edit S1"
POPUP "&Zoom C2"
POPUP "&Format S2"
POPUP "&Options C3
POPUP "&Window C3"
POPUP "&Help S3"
END
Comme vous pouvez le voir, les séparateurs ont été remplacés par les groupes du menu pour chaque application.
Les tables d'accélérateurs associées au menu sur place doivent également être fournies par l'application serveur.Le conteneur le contiendra à ses propres tables d'accélérateurs.
Lorsqu'un élément incorporé est activé en place, l'infrastructure charge le menu sur place.Puis il demande l'application serveur pour son menu l'activation sur place et l'insère où les délimiteurs sont.Voici comment les menus mixtes.Vous obtenez des menus du conteneur pour s'exécuter sur le positionnement de fichier et de fenêtre, et vous obtenez des menus de serveur pour s'exécuter sur l'élément.
Barres d'outils et barres d'état
Les applications serveur doivent créer une nouvelle barre d'outils et stocker la bitmap dans un fichier séparé.Les applications générées par l'Assistant application enregistre ces bitmap dans un fichier appelé ITOOLBAR.BMP.La nouvelle barre d'outils remplace la barre d'outils de l'application conteneur lorsque l'élément de votre serveur est activé en place, et doit contenir les mêmes éléments que votre barre d'outils normale, mais supprime les icônes représentant des éléments sur le fichier et les menus Fenêtre.
Cette barre d'outils est chargée dans votre COleIPFrameWndclasse dérivée de, créée à votre par l'Assistant Application.La barre d'état est géré par l'application conteneur.Pour plus d'informations sur l'implémentation des fenêtres frame sur place, consultez serveurs : implémenter un serveur.