Conteneurs : implémenter un conteneur
Cet article résume la procédure pour implémenter un conteneur et vous indique d'autres articles qui prévoient des explications plus détaillées à propos de l'implémentation des conteneurs.Elle présente également quelques OLE fonctionnalités facultatives que vous pouvez souhaiter pour implémenter et les éléments qui décrivent ces fonctionnalités.
Pour préparer votre classe CWinApp-dérivée
Initialisez les OLE bibliothèques en appelant AfxOleInit dans la fonction membre d' InitInstance .
Appelez CDocTemplate::SetContainerInfo dans InitInstance pour assigner le menu et les ressources d'accélérateur ont utilisé lorsqu'un élément incorporé est sur place activé.Pour plus d'informations sur cette rubrique, consultez l' activation.
Ces fonctionnalités sont fournies automatiquement lorsque vous utilisez l'Assistant Application MFC pour créer une application conteneur.Consultez Créer un programme MFC EXE.
Pour préparer votre classe d'affichage
Maintenez les éléments sélectionnés en maintenant un pointeur, ou la liste des pointeurs si vous prenez en charge la sélection multiple, aux éléments sélectionnés.Votre fonction d' OnDraw doit dessiner tous les éléments OLE.
Substituez IsSelected pour vérifier si l'élément passé est actuellement sélectionné.
Implémentez un gestionnaire de messages d' OnInsertObject pour afficher la boîte de dialogue d' Insert Object .
Implémentez un gestionnaire de messages d' OnSetFocus transférer le focus de la vue à un élément incorporé par OLE actif sur place.
Implémentez un gestionnaire de messages d' OnSize pour informer un élément OLE incorporé qu'il doit modifier son rectangle pour refléter la modification en taille de la vue conteneur.
Étant donné que l'implémentation de ces fonctionnalités varie considérablement d'une application à l'autre, l'Assistant Application fournit uniquement une implémentation de base.Vous devrez probablement personnaliser ces fonctions pour que votre application de fonctionner correctement.Pour obtenir un exemple, consultez l'exemple de CONTAINER .
Pour traiter incorporé et d'éléments liés
Dérivez une classe de COleClientItem.Les objets de cette classe représentent des éléments dans lesquels ont été incorporés ou liés à votre OLE document.
Substitution OnChange, OnChangeItemPosition, et OnGetItemPosition.Ces fonctions gèrent le dimensionnement, positionnement, et modification incorporé et élément lié.
L'Assistant Application dériver la classe pour vous, mais vous devrez probablement substituer OnChange et l'autre est répertorié avec lui à l'étape 2 de la procédure précédente.Les implémentations squelette doivent être personnalisées pour la plupart des applications, car ces fonctionnalités sont implémentées différemment d'une application à l'autre.Pour obtenir des exemples de cela, consultez les exemples DRAWCLI et CONTAINERMFC.
Vous devez ajouter plusieurs éléments à la structure du menu de l'application conteneur pour prendre en charge OLE.Pour plus d'informations sur ces derniers, consultez menus et ressources : ajouts de conteneur.
Vous pouvez également vouloir prendre en charge certaines fonctionnalités suivantes dans votre application conteneur :
Activation sur place en modifiant un élément incorporé.
Pour plus d'informations, consultez l' activation.
Création de OLE éléments glisser-déplacer une sélection d'une application serveur.
Pour plus d'informations, consultez glisser-déplacer (OLE).
Renvoie aux objets incorporés ou aux applications conteneur/serveur de combinaison.
Pour plus d'informations, consultez conteneurs : Fonctionnalités avancées.