Menus et ressources : ajouts de conteneur
Cet article explique les modifications qui doivent être apportées aux menus et d'autres ressources dans une application conteneur d'édition visuelle.
Dans les applications conteneur, deux types de modifications doivent être apportées : modifications apportées aux ressources existantes pour prendre en charge la notion de modification sur place et l'ajout de nouvelles ressources utilisées pour l'activation sur place.Si vous utilisez l'Assistant Application pour créer votre application conteneur, ces étapes sont effectuées automatiquement, mais elles peuvent nécessiter de la personnalisation.
Si vous n'utilisez pas l'Assistant Application, vous pouvez consulter OCLIENT.RC, le script de ressources pour l'exemple d'application OCLIENT, pour voir comment ces modifications sont implémentées.Consultez l'exemple de liaison et incorporation d'objets MFC OCLIENT.
Les rubriques abordées dans cet article incluent :
Ajouts de menu de conteneur
Ajouts de table d'accélérateurs
Ajouts de table de chaînes
Ajouts de menu de conteneur
Vous devez ajouter les éléments suivants au menu Edition :
Élément |
Objectif |
---|---|
Nouvel objet d'insertion |
Ouvre la notion de boîte de dialogue d'objet d'insertion pour insérer un élément lié ou incorporé dans le document. |
Lien de collage |
Colle un lien vers un élément du presse-papiers dans le document. |
OLE verbe |
Appelle le verbe principal de l'élément sélectionné.Le texte de cet élément de menu change pour refléter le verbe principal de l'élément sélectionné. |
Liens |
Ouvre la notion de boîte de dialogue de Modifier les liens pour modifier les éléments liés existants. |
Outre les modifications répertoriés de cet article, votre fichier source doit inclure AFXOLECL.RC, qui est requis pour l'implémentation de la bibliothèque MFC.Le nouvel objet d'insertion est le seul ajout requis de menu.D'autres éléments peuvent être ajoutés, mais ces répertoriés ici sont plus courantes.
Vous devez créer un nouveau menu pour votre application conteneur si vous souhaitez prendre en charge l'activation sur place les éléments contenus.Ce menu inclut le même menu Fichier et les menus contextuels de fenêtre est utilisé lorsque les fichiers sont ouverts, mais il a deux séparateurs placés entre eux.Ces délimiteurs sont utilisés pour indiquer où l'élément de serveur (composant) (application) doit placer ses menus une fois activé en place.Pour plus d'informations sur cette technique de fusion de menus, consultez menus et ressources : fusion de menus.
Ajouts de table d'accélérateurs d'application conteneur
Les petites modifications aux ressources en table d'accélérateurs d'application conteneur sont nécessaires si vous prenez en charge l'activation sur place.La première modification permet à l'utilisateur d'appuyer sur la touche ESCAPE pour quitter le mode d'édition visuelle.Ajoutez l'entrée suivante à la table d'accélérateurs clé :
ID |
Clé |
Type |
---|---|---|
ID_CANCEL_EDIT_CNTR |
VK_ESCAPE |
VIRTKEY |
La seconde modification est de créer une nouvelle table d'accélérateurs qui correspond à la nouvelle ressource menu créée pour l'activation sur place.Cette table contient des entrées du fichier et des menus Fenêtre en plus de l'entrée de VK_ESCAPE ci-dessus.L'exemple suivant est la table d'accélérateurs créée pour l'activation sur place dans l'exemple CONTAINERMFC :
ID |
Clé |
Type |
---|---|---|
ID_FILE_NEW |
CTRL+N |
VIRTKEY |
ID_FILE_OPEN |
CTRL+O |
VIRTKEY |
ID_FILE_SAVE |
CTRL+S |
VIRTKEY |
ID_FILE_PRINT |
CTRL+P |
VIRTKEY |
ID_NEXT_PANE |
VK_F6 |
VIRTKEY |
ID_PREV_PANE |
SHIFT+VK_F6 |
VIRTKEY |
ID_CANCEL_EDIT_CNTR |
VK_ESCAPE |
VIRTKEY |
Ajouts de table de chaînes pour les applications conteneur
La plupart des modifications aux tables de chaînes pour les applications conteneur correspondent à des éléments de menu supplémentaires mentionnés dans ajouts de menu de conteneur.Ils fournissent le texte affiché dans la barre d'état lorsque chaque élément de menu est affiché.Par exemple, voici les entrées de table de chaînes que l'Assistant Application génère :
ID |
Chaîne |
---|---|
IDP_OLE_INIT_FAILED |
Échec de l'initialisation d'OLE.Assurez-vous que vous utilisez la bonne version des bibliothèques OLE. |
IDP_FAILED_TO_CREATE |
Échec de création d'un objet.Assurez-vous que l'objet est écrit dans la base de registres. |