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
Initialisez les bibliothèques OLE en appelant
AfxOleInit
dans laInitInstance
fonction membre.Appelez
CDocTemplate::SetContainerInfo
dansInitInstance
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
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.Remplacez
IsSelected
pour vérifier si l'élément qui lui est passé est sélectionné.Implémentez un
OnInsertObject
gestionnaire de messages pour afficher la boîte de dialogue Insérer un objet .Implémentez un gestionnaire de messages
OnSetFocus
pour transférer le focus depuis la vue sur un élément incorporé OLE actif en place.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
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.
Remplacer
OnChange
,OnChangeItemPosition
etOnGetItemPosition
. 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.