Menus et ressources : ajouts de serveur
Cet article explique les modifications qui doivent être apportées aux menus et d'autres ressources dans une application serveur d'édition visuelle (composant).Une application serveur requiert un grand nombre d'ajouts à la structure de menu et d'autres ressources car elle peut être démarrée dans l'un de trois modes : autonome, incorporé, ou sur place.Comme décrit dans l'article de menus et ressources (OLE) , il existe un maximum de quatre ensembles de menus.Les quatre est utilisé pour une application serveur entier MDI, tandis que seuls trois sont utilisés pour un miniserver.L'Assistant Application crée la disposition de menu nécessaire pour le type de serveur que vous souhaitez.De la personnalisation peut être nécessaire.
Si vous n'utilisez pas l'Assistant Application, vous pouvez consulter HIERSVR.RC, le script de ressources pour l'exemple d'application HIERSVRMFC, de voir comment ces modifications sont implémentées.
Les rubriques abordées dans cet article incluent :
Ajouts de menu de serveur
Ajouts de table d'accélérateurs
Ajouts de Miniserver
Ajouts de menu de serveur
Les applications de serveur (composant) doivent avoir des ressources de menu ajoutées pour prendre en charge la notion de modification sur place.Les menus utilisés lorsque l'application est exécutée en mode autonome ne doivent pas être modifiés, mais vous devez ajouter deux nouvelles ressources de menu avant de générer l'application : un pour prendre en charge l'activation sur place et un pour prendre en charge le serveur est entièrement ouvert.Les deux ressources de menu sont utilisées par les applications complètes et de miniserver.
Pour prendre en charge l'activation sur place, vous devez créer une ressource menu similaire à la ressource menu utilisée une fois exécutée en mode autonome.La différence dans ce menu est que les éléments de fichier et de fenêtre (et tous les autres éléments de menu qui traitent l'application, mais pas les données) sont manquants.L'application conteneur fournit ces éléments de menu.Pour plus d'informations sur, et un exemple, pour cette technique de fusion de menus, consultez l'article menus et ressources : fusion de menus.
Pour prendre en charge l'activation entièrement ouverte, vous devez créer une ressource menu presque identique à la ressource menu utilisée lorsqu'il est exécuté en mode autonome.La seule modification à cette ressource menu est que certains éléments sont reformulés pour refléter le fait que le serveur s'exécute sur un élément incorporé dans un document composite.
Outre les modifications répertoriés de cet article, votre fichier de ressources doit inclure AFXOLESV.RC, qui est requis pour l'implémentation de la bibliothèque MFC.Ce fichier est situé dans le sous-répertoire MFC \Include.
Ajouts de table d'accélérateurs d'application serveur
Deux nouvelles ressources de table d'accélérateurs doivent être ajoutées aux applications serveur ; elles correspondent directement aux nouvelles ressources menu préalablement décrites.La première table d'accélérateurs est utilisée lorsque l'application serveur est activée en place.Il se compose de toutes les entrées dans la table d'accélérateurs de la vue sauf ceux liée au fichier et aux menus Fenêtre.
La seconde table est presque une copie exacte de la table d'accélérateurs de la vue.Les modifications apportées parallèles de différences apportées dans le menu entièrement ouvert mentionné dans ajouts de menu de serveur.
Pour obtenir un exemple de ces modifications de table d'accélérateurs, comparez les tables d'accélérateurs d' IDR_HIERSVRTYPE_SRVR_IP et d' IDR_HIERSVRTYPE_SRVR_EMB avec IDR_MAINFRAME dans le fichier de HIERSVR.RC inclus dans l'exemple de liaison et incorporation d'objets MFC HIERSVR.Les accélérateurs de fichier et de fenêtres sont manquants du tableau sur place et requièrent des copies de ces propriétés sont dans le tableau.
Ajouts de table de chaînes pour les applications serveur
Un seul ajout de table de chaînes est nécessaire dans une application serveur — une chaîne pour indiquer que la NOTION initialisation a échoué.Par exemple, voici l'entrée 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. |
Ajouts de Miniserver
Les mêmes ajouts s'appliquent à des miniservers en tant que ceux répertoriés ci-dessus pour les serveurs entiers.Étant donné qu'un miniserver ne peut pas être exécuté en mode autonome, son menu principal est beaucoup plus petit.Le menu principal créé par l'Assistant Application a un seul menu Fichier, contenant uniquement la sortie d'éléments et sur.Les menus incorporés et sur place et accélérateurs pour les miniservers sont les mêmes que ceux des serveurs entiers.