Partager via


Conteneurs : implémentation d’un conteneur

Cet article résume la procédure d’implémentation d’un conteneur et vous pointe vers d’autres articles qui fournissent des explications plus détaillées sur l’implémentation de conteneurs. Il répertorie également certaines fonctionnalités OLE facultatives que vous pouvez implémenter et les articles décrivant ces fonctionnalités.

Pour préparer votre classe dérivée de CWinApp

  1. Initialisez les bibliothèques OLE en appelant AfxOleInit dans la InitInstance fonction membre.

  2. Appelez CDocTemplate::SetContainerInfo dans InitInstance pour assigner les ressources de menu et d’accélérateur utilisées lorsqu’un élément incorporé est activé en place. Pour plus d’informations sur cette rubrique, consultez Activation.

Ces fonctionnalités sont fournies automatiquement lorsque vous utilisez l’Assistant Application MFC pour créer une application conteneur. Voir Création d’un programme EXE MFC.

Pour préparer votre classe d'affichage

  1. Effectuez le suivi des éléments sélectionnés en conservant un pointeur ou une liste de pointeurs si vous prenez en charge plusieurs sélections sur les éléments sélectionnés. Votre OnDraw fonction doit dessiner tous les éléments OLE.

  2. Remplacez IsSelected pour vérifier si l'élément qui lui est passé est sélectionné.

  3. Implémentez un OnInsertObject gestionnaire de messages pour afficher la boîte de dialogue Insérer un objet .

  4. Implémentez un OnSetFocus gestionnaire de messages pour transférer le focus de la vue vers un élément OLE incorporé actif sur place.

  5. Implémentez un OnSize gestionnaire de messages pour informer un élément incorporé OLE qu’il doit modifier son rectangle pour refléter la modification de la taille de la vue qui le contient.

É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 fonctionne correctement. Pour obtenir un exemple, consultez l’exemple CONTAINER .

Pour gérer les éléments incorporés et liés

  1. Dérivez une classe de COleClientItem. Les objets de cette classe représentent les éléments qui ont été incorporés ou liés à votre document OLE.

  2. Remplacer OnChange, OnChangeItemPosition, et OnGetItemPosition. Ces fonctions gèrent le dimensionnement, le positionnement et la modification des éléments incorporés et liés.

L'assistant d'application dérivera la classe pour vous, mais vous devrez probablement remplacer OnChange et les autres fonctions répertoriées à l'étape 2 de la procédure précédente. Les implémentations squelettes doivent être personnalisées pour la plupart des applications, car ces fonctions sont implémentées différemment d’une application à l’autre. Pour obtenir des exemples, consultez les exemples MFC DRAWCLI et CONTAINER.

Vous devez ajouter un certain nombre d’éléments à la structure de menu de l’application conteneur pour prendre en charge OLE. Pour plus d’informations sur ces éléments, consultez Menus et ressources : Ajouts de conteneurs.

Vous pouvez également prendre en charge certaines des fonctionnalités suivantes dans votre application conteneur :

  • Activation sur place lors de la modification d’un élément incorporé.

    Pour plus d’informations, consultez Activation.

  • Création d’éléments OLE en faisant glisser et en supprimant une sélection à partir d’une application serveur.

    Pour plus d’informations, voir Glisser-déposer OLE.

  • Liens vers des objets incorporés ou des applications conteneur/serveur combinées.

    Pour plus d’informations, consultez Conteneurs : Fonctionnalités avancées.

Voir aussi

conteneurs
Conteneurs : éléments du client