Conteneurs : implémentation d'un conteneur

Cet article résume la procédure permettant d'implémenter un conteneur et vous présente d'autres articles qui fournissent des explications détaillées sur l'implémentation des conteneurs. Il répertorie également des fonctionnalités OLE optionnelles que vous pouvez souhaiter 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 affecter le menu et les ressources accélératrices utilisés 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. Conservez les éléments sélectionnés en maintenant un pointeur, ou une liste des pointeurs si vous prenez en charge la sélection multiple, vers les éléments sélectionnés. Votre fonction OnDraw doit afficher 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 gestionnaire de messages OnSetFocus pour transférer le focus depuis la vue sur un élément incorporé OLE actif en place.

  5. Implémenter un gestionnaire de messages OnSize pour indiquer à un élément incorporé OLE qu'il doit modifier son rectangle pour refléter les modifications de taille de la vue conteneur.

Étant donné que l’implémentation de ces fonctionnalités varie excessivement d’une application à l’autre, l’application ne fournit qu’une implémentation de base. Vous devrez vraisemblablement personnaliser ces fonctions pour que l'application fonctionne correctement. Pour obtenir un exemple, consultez l’exemple CONTAINER .

Pour traiter des é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, OnChangeItemPositionet OnGetItemPosition. Ces fonctions gèrent le dimensionnement, le positionnement et la modification d'éléments liés et incorporés.

L’Assistant Application dérive 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 squelette doivent être personnalisées pour la plupart des applications, car ces fonctions sont implémentées de manière différente d'une application à l'autre. Pour obtenir des exemples, consultez les exemples MFC DRAWCLI et CONTAINER.

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 éléments, consultez Menus et ressources : Ajouts de conteneurs.

Vous pouvez aussi prendre en charge certaines des fonctionnalités suivantes dans votre application conteneurs :

  • Activation en place lors de la modification d'un élément incorporé.

    Pour plus d’informations, consultez Activation.

  • Création d'éléments OLE par glissement-déplacement d'une sélection depuis une application serveur.

    Pour plus d’informations, consultez le glisser-déplacer OLE.

  • Liens vers les objets incorporés ou association des applications conteneur/serveur.

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

Voir aussi

Containers
Conteneurs : éléments clients