Partager via


OCLIENT, exemple : illustre une application conteneur d'édition visuelle

Mise à jour : novembre 2007

OCLIENT est un exemple d'application conteneur d'édition visuelle. Il s'agit en quelque sorte d'une version plus complète de l'exemple CONTAINER, bien qu'il ne s'agisse pas à strictement parler d'une dérivation de CONTAINER.

Note de sécurité :

Cet exemple de code est fourni pour illustrer un concept et ne doit pas être utilisé dans des applications ou des sites Web, car il peut ne pas illustrer les pratiques de programmation les plus sûres. Microsoft n'assume aucune responsabilité pour tout dommage indirect ou consécutif en cas d'utilisation de l'exemple de code à des fins autres que celles prévues.

Pour obtenir des exemples et des instructions d'installation :

  • Dans le menu ? (Aide) de Visual Studio, cliquez sur Exemples.

    Pour plus d'informations, consultez Recherche des fichiers d'exemple.

  • La liste la plus récente et la plus complète d'exemples est disponible en ligne à partir de la page Visual Studio 2008 Samples.

  • Des exemples sont également disponibles sur le disque dur de votre ordinateur. Par défaut, des exemples et un fichier Readme sont copiés dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont accessibles en ligne.

Génération et exécution de l'exemple

Pour générer et exécuter l'exemple OCLIENT

  1. Ouvrez la solution OCLIENT.sln.

  2. Dans le menu Générer, cliquez sur Générer.

  3. Ouvrez et exécutez l'application OCLIENT.

OCLIENT illustre les fonctionnalités suivantes :

  • glisser-déplacer vers et à partir d'une autre application ;

  • clonage (duplication) des objets à l'aide du glissement de contrôles dans la même fenêtre d'application ;

  • défilement automatique d'une fenêtre pendant une opération de glisser-déplacer ;

  • édition/collage d'un objet de format natif ;

  • édition/collage avec liaison.

OCLIENT, comme CONTAINER, est un programme simple de dessin d'objets. Il permet de dessiner un seul type d'objet : un élément OLE lié ou incorporé.

Pour ajouter un nouvel objet au dessin OCLIENT

  1. Dans le menu Edit, cliquez sur Insert New Object.

    La boîte de dialogue Insertion d'un objet s'affiche.

  2. Sélectionnez le type d'élément OLE que vous souhaitez ajouter.

    Un nouvel objet s'affiche dans la fenêtre d'OCLIENT et le menu et la barre d'outils d'OCLIENT sont mis à jour avec les menus contextuels et boutons de barre d'outils fournis par l'application serveur.

- ou -

  1. Pendant l'exécution d'un serveur Automation, copiez un élément OLE dans le Presse-papiers.

  2. Dans le menu Edit d'OCLIENT, cliquez sur Paste pour incorporer l'élément OLE ou sur Paste Link pour lier l'élément OLE.

Le nouvel élément OLE ajouté est toujours placé dans le coin supérieur gauche du dessin OCLIENT. Le nouvel élément OLE peut recouvrir partiellement ou totalement un élément plus ancien. Vous ne pouvez sélectionner qu'un seul élément OLE à la fois à l'aide de la souris. Un élément lié sélectionné est indiqué par un rectangle en pointillé et un élément incorporé par un rectangle plein. Vous pouvez déplacer un élément OLE en le faisant glisser et redimensionner un élément OLE sélectionné en utilisant les poignées de redimensionnement.

Pour supprimer un élément OLE, sélectionnez-le en cliquant dessus, puis appuyez sur SUPPR ou utilisez la commande Delete du menu Edit.

Pour modifier le contenu d'un élément OLE, double-cliquez sur l'élément ou sélectionnez-le avec la souris, puis cliquez sur Edit <type> Object dans le menu Edit. Pour terminer la modification d'un élément sur place, cliquez à l'extérieur du rectangle de l'élément dans la fenêtre d'OCLIENT. Pour terminer la modification d'un élément entièrement ouvert dans l'application serveur, utilisez la commande Fichier Mettre à jour du serveur.

Mots clés

Cet exemple illustre l'utilisation des mots clés suivants :

AfxGetMainWnd ; AfxMessageBox ; AfxOleInit ; AfxThrowArchiveException ; AfxThrowFileException ; AfxThrowMemoryException ; CArchive::Close ; CArchive::IsStoring ; CCmdTarget::BeginWaitCursor ; CCmdTarget::EndWaitCursor ; CCmdUI::Enable ; CCmdUI::SetCheck ; CControlBar::EnableDocking ; CDC::DPtoLP ; CDC::DrawFocusRect ; CDC::GetDeviceCaps ; CDC::HIMETRICtoDP ; CDC::LPtoDP ; CDC::RealizePalette ; CDC::SelectPalette ; CDocTemplate::SetContainerInfo ; CDocument::SetModifiedFlag ; CDocument::UpdateAllViews ; CFrameWnd::DockControlBar ; CFrameWnd::EnableDocking ; CFrameWnd::LoadFrame ; CFrameWnd::OnCreateClient ; CGdiObject::UnrealizeObject ; CMDIChildWnd::Create ; CMenu::GetSubMenu ; CMenu::LoadMenu ; CMenu::TrackPopupMenu ; CObject::AssertValid ; CObject::Dump ; CObject::IsKindOf ; CObject::Serialize ; COleClientItem::Close ; COleClientItem::CreateCloneFrom ; COleClientItem::Deactivate ; COleClientItem::Delete ; COleClientItem::DoDragDrop ; COleClientItem::DoVerb ; COleClientItem::Draw ; COleClientItem::GetActiveView ; COleClientItem::GetClipboardData ; COleClientItem::GetDocument ; COleClientItem::GetDrawAspect ; COleClientItem::GetInPlaceWindow ; COleClientItem::GetItemState ; COleClientItem::GetType ; COleClientItem::IsInPlaceActive ; COleClientItem::OnActivate ; COleClientItem::OnChange ; COleClientItem::OnChangeItemPosition ; COleClientItem::OnDeactivateUI ; COleClientItem::OnGetClipboardData ; COleClientItem::OnGetItemPosition ; COleClientItem::SetDrawAspect ; COleClientItem::SetItemRects ; COleClientItem::UpdateLink ; COleDataObject::Attach ; COleDataObject::AttachClipboard ; COleDataObject::IsDataAvailable ; COleDataSource::CacheGlobalData ; COleDocument::EnableCompoundFile ; COleDocument::GetNextItem ; COleDocument::GetStartPosition ; COleDocument::HasBlankItems ; COleDocument::OnShowViews ; COleInsertDialog::CreateItem ; COleInsertDialog::DoModal ; COleInsertDialog::GetSelectionType ; COlePasteSpecialDialog::AddFormat ; COlePasteSpecialDialog::AddStandardFormats ; COlePasteSpecialDialog::CreateItem ; COlePasteSpecialDialog::DoModal ; COlePasteSpecialDialog::GetSelectionType ; COleTemplateServer::ConnectTemplate ; COleTemplateServer::UpdateRegistry ; COleUpdateDialog::DoModal ; CPalette::CreateHalftonePalette ; CRect::InflateRect ; CRect::IntersectRect ; CRect::IsRectEmpty ; CRect::OffsetRect ; CRect::Size ; CRect::TopLeft ; CRectTracker::Draw ; CRectTracker::HitTest ; CRectTracker::SetCursor ; CRectTracker::Track ; CScrollView::GetDeviceScrollPosition ; CScrollView::SetScrollSizes ; CStatusBar::Create ; CStatusBar::SetIndicators ; CToolBar::Create ; CToolBar::LoadBitmap ; CToolBar::SetButtons ; CView::DoPreparePrinting ; CView::GetDocument ; CView::IsSelected ; CView::OnDragEnter ; CView::OnDragLeave ; CView::OnDragOver ; CView::OnDraw ; CView::OnDrop ; CView::OnInitialUpdate ; CView::OnPrepareDC ; CView::OnPreparePrinting ; CView::OnScrollBy ; CView::OnUpdate ; CWinApp::AddDocTemplate ; CWinApp::EnableShellOpen ; CWinApp::InitInstance ; CWinApp::LoadStdProfileSettings ; CWinApp::RegisterShellFileTypes ; CWinApp::RunEmbedded ; CWnd::ClientToScreen ; CWnd::GetClientRect ; CWnd::GetDC ; CWnd::GetParentFrame ; CWnd::InvalidateRect ; CWnd::OnChar ; CWnd::OnCreate ; CWnd::OnDestroy ; CWnd::OnLButtonDblClk ; CWnd::OnLButtonDown ; CWnd::OnPaletteChanged ; CWnd::OnQueryNewPalette ; CWnd::OnRButtonDown ; CWnd::OnSetCursor ; CWnd::OnSetFocus ; CWnd::OnSize ; CWnd::ReleaseDC ; CWnd::SetFocus ; CWnd::ShowWindow ; CWnd::UpdateWindow ; CreateHatchBrush ; DeleteItem ; DragAcceptFiles ; FORMATETC ; FillRect ; GetDeviceCaps ; GetKeyState ; GetSysColor ; GlobalFree ; GlobalLock ; GlobalUnlock ; LPtoDP ; MessageBeep ; MulDiv ; RGB ; RectVisible ; RegisterClipboardFormat ; ReleaseStgMedium ; STGMEDIUM ; SelectPalette ; SetBkColor ; SetBrushOrg ; SetMapMode ; SetRect ; SetTextColor ; SetViewportExt ; SetWindowExt ; abs ; afxMemDF ; max ; memset ; min

Remarque :

Certains exemples, tels que celui-ci, n'ont pas été modifiés pour refléter les changements apportés aux Assistants, aux bibliothèques et au compilateur Visual C++, mais ils illustrent bien l'exécution de la tâche souhaitée.

Voir aussi

Autres ressources

Exemples MFC