다음을 통해 공유


OCLIENT 샘플: 비주얼 편집 컨테이너 응용 프로그램 설명

업데이트: 2007년 11월

OCLIENT 샘플은 비주얼 편집 컨테이너 응용 프로그램 예제이며, 엄격히 말하면 CONTAINER에서 파생되지는 않았지만 CONTAINER 샘플의 확장 버전입니다.

보안 정보:

이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다.

샘플 및 이를 설치하기 위한 지침을 가져오려면

  • Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.

    자세한 내용은 샘플 파일 찾기를 참조하십시오.

  • 최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.

  • 컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.

샘플 빌드 및 실행

OCLIENT 샘플을 빌드하고 실행하려면

  1. OCLIENT.sln 솔루션을 엽니다.

  2. 빌드 메뉴에서 빌드를 클릭합니다.

  3. OCLIENT 응용 프로그램을 열고 실행합니다.

OCLIENT는 다음과 같은 기능을 보여 줍니다.

  • 다른 응용 프로그램에서 또는 다른 응용 프로그램으로 끌어서 놓기

  • 동일한 응용 프로그램 창에서 컨트롤 끌기를 사용한 개체 복제

  • 끌어서 놓기 작업 중에 창 자동 스크롤

  • 네이티브 형식 개체의 붙여넣기 편집

  • 연결하여 붙여넣기 편집

CONTAINER와 마찬가지로 OCLIENT는 간단한 개체 그리기 프로그램입니다. 개체 형식 중에서 연결되거나 포함된 OLE 항목만 그릴 수 있습니다.

OCLIENT 그리기에 새 개체를 추가하려면

  1. Edit 메뉴에서 Insert New Object를 클릭합니다.

    Insert New Object 대화 상자가 나타납니다.

  2. 추가하려는 OLE 항목의 형식을 선택합니다.

    OCLIENT의 창에 새 개체가 나타나고 OCLIENT의 메뉴와 도구 모음은 서버 응용 프로그램이 제공한 팝업 메뉴 및 도구 모음 단추와 함께 업데이트됩니다.

-또는-

  1. 자동화 서버를 실행하는 동안 OLE 항목을 클립보드에 복사합니다.

  2. 그런 다음 OCLIENT의 Edit 메뉴에서 Paste를 클릭하여 OLE 항목을 포함하거나 Paste Link를 클릭하여 OLE 항목을 연결합니다.

새로 추가된 OLE 항목은 항상 OCLIENT 그리기의 왼쪽 위 모퉁이에 배치됩니다. 새 OLE 항목은 이전 항목을 부분적으로 또는 완벽하게 처리할 수 있습니다. 마우스를 사용하여 한 번에 하나의 OLE 항목을 선택할 수 있습니다. 선택한 연결된 항목은 점선으로 된 사각형으로 표시되고 포함된 항목에는 실선으로 된 사각형이 표시됩니다. OLE 항목을 끌어서 이동할 수 있으며, 크기 조정 핸들을 사용하여 선택된 OLE 항목의 크기를 조정할 수 있습니다.

OLE 항목을 삭제하려면 마우스를 클릭하여 해당 항목을 선택한 다음 Delete 키를 누르거나 Edit 메뉴의 Clear 명령을 사용합니다.

OLE 항목의 내용을 편집하려면 해당 항목을 두 번 클릭하거나 마우스로 선택한 다음 Edit 메뉴에서 Edit <type> Object를 클릭합니다. 내부 편집 항목의 편집을 완료하려면 OCLIENT의 창에서 항목 사각형 외부를 클릭합니다. 서버 응용 프로그램에서 완전히 열린 항목의 편집을 완료하려면 서버의 File Update 명령을 사용합니다.

키워드

이 샘플에서는 다음의 키워드를 보여 줍니다.

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

참고:

이 샘플을 비롯한 일부 샘플은 Visual C++ 마법사, 라이브러리 및 컴파일러의 변경 내용을 반영하도록 수정되지 않았지만 해당 작업의 수행 방법을 보여 줍니다.

참고 항목

기타 리소스

MFC 샘플