Esempio OCLIENT: applicazione contenitore di modifica visiva
Aggiornamento: novembre 2007
Nell'esempio OCLIENT viene illustrata un'applicazione contenitore di modifica visiva. Si tratta essenzialmente di una versione estesa dell'esempio CONTAINER, anche se non è derivata direttamente da CONTAINER.
Nota sulla sicurezza: |
---|
Questo esempio di codice viene fornito solo a scopo dimostrativo e non deve essere utilizzato in applicazioni o siti Web, poiché potrebbe non implementare le tecniche migliori a livello di sicurezza. Microsoft esclude ogni responsabilità per danni diretti o indiretti derivanti dall'utilizzo dell'esempio di codice per scopi diversi da quelli previsti. |
Per ottenere gli esempi e le istruzioni per l'installazione:
In Visual Studio scegliere Esempi dal menu ?.
Per ulteriori informazioni, vedere Individuazione dei file di esempio.
La versione più recente e l'elenco completo degli esempi sono disponibili in linea alla pagina Visual Studio 2008 Samples.
È anche possibile trovare gli esempi sul disco rigido del computer. Per impostazione predefinita, gli esempi e il file Leggimi vengono copiati in una cartella nel percorso \Programmi\Visual Studio 9.0\Samples\. Per le versioni Express di Visual Studio, tutti gli esempi sono disponibili in linea.
Generazione ed esecuzione dell'esempio
Per generare ed eseguire l'esempio OCLIENT
Aprire la soluzione OCLIENT.sln.
Scegliere Genera dal menu Genera.
Aprire ed eseguire l'applicazione OCLIENT.
Nell'esempio OCLIENT vengono illustrate le seguenti funzionalità:
Trascinamento della selezione da e verso un'altra applicazione.
Duplicazione di oggetti tramite Control-Drag all'interno della stessa finestra dell'applicazione.
Scorrimento automatico della finestra durante le operazioni di trascinamento della selezione.
Utilizzo dell'operazione incolla per oggetti in formato nativo.
Utilizzo dell'operazione incolla per collegamenti.
OCLIENT, come CONTAINER, è un semplice programma di disegno di oggetti che consente di disegnare solo elementi OLE collegati o incorporati.
Per aggiungere un nuovo oggetto al disegno OCLIENT
Scegliere Insert New Object dal menu Edit.
Verrà visualizzata la finestra di dialogo Insert New Object.
Selezionare il tipo di elemento OLE da aggiungere.
Verrà visualizzato un nuovo oggetto nella finestra di OCLIENT e il menu e la barra degli strumenti di OCLIENT verranno aggiornati con menu di scelta rapida e pulsanti della barra degli strumenti forniti dall'applicazione server.
-oppure-
Durante l'esecuzione di un server di automazione, copiare un elemento OLE negli Appunti.
Quindi scegliere Paste dal menu Edit di OCLIENT per incorporare l'elemento OLE oppure scegliere Paste Link per collegare l'elemento OLE.
Il nuovo elemento OLE viene sempre posizionato nell'angolo in alto a sinistra del disegno OCLIENT ed è possibile che nasconda, parzialmente o completamente, altri elementi preesistenti. Utilizzando il mouse, è possibile selezionare un elemento OLE alla volta. Un elemento collegato selezionato viene indicato da un rettangolo tratteggiato, un elemento incorporato selezionato viene indicato da un rettangolo a linea continua. Per spostare un elemento OLE è possibile trascinarlo, mentre per modificarne le dimensioni è possibile utilizzare i quadratini di ridimensionamento.
Per eliminare un elemento OLE, selezionarlo con il mouse, quindi premere CANC o utilizzare il comando Clear del menu Edit.
Per modificare il contenuto di un elemento OLE, fare doppio clic su di esso oppure selezionarlo e scegliere Edit <tipo> Object dal menu Edit. Per completare le modifiche di un elemento di modifica sul posto, fare clic in un punto qualsiasi al di fuori del rettangolo di selezione dell'oggetto nella finestra di OCLIENT. Per completare la modifica di un oggetto che è stato aperto nell'applicazione server, utilizzare il comando Aggiornamento file del server.
Parole chiave
Nell'esempio vengono illustrate le seguenti parole chiave:
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
Nota: |
---|
Alcuni esempi, tra cui il presente, non sono stati cambiati per riflettere le modifiche apportate alle procedure guidate, alle librerie e al compilatore di Visual C++, tuttavia forniscono comunque le istruzioni per completare l'attività desiderata. |