Exemplo do HIERSVR: Demonstra um aplicativo de servidor com OLE arrastar e soltar

O exemplo HIERSVR é um exemplo de um aplicativo de servidor edição visual que suporta vinculado objetos, bem sistema autônomo objetos de editado no local.Além disso, sistema autônomo um servidor de "total", esse aplicativo também pode diretamente em em aberto e salvar arquivos.O objeto HIERSVR é um diagrama de vários níveis de hierarquia, onde cada nó da hierarquia consiste em texto circundado por um retângulo ou outras formas.Em adição a que ilustra a funcionalidade do servidor, HIERSVR também ilustra OLE arrastar e soltar e copiar para a área de transferência.

Observação de segurança:

Este código de exemplo é fornecido para ilustrar um conceito e não deve ser usado em aplicativos ou sites da Web, pois ele não pode ilustrar sistema autônomo práticas de codificação mais seguras.Microsoft sistema autônomo sumes nenhuma responsabilidade por danos incidentais ou conseqüenciais deve o código de exemplo ser usado para fins diferentes de sistema autônomo se destina.

Para obter exemplos e instruções para instalá-los:

  • Sobre o Visual Studio Ajuda menu, clicar Exemplos.

    Para obter mais informações, consulte Localizando arquivos de exemplo.

  • A versão mais recente e a lista completa das Exemplos está disponível online a partir de O Visual Studio 2008 Exemplos página.

  • Você também pode localizar exemplos no disco rígido do seu computador.Por padrão, exemplos e um arquivo Leiame são copiados para uma pasta sob \programa Files\Visual Studio 9.0\Samples\.Para edições Express do Visual Studio, todos os exemplos estão localizados online.

Criando e executando o exemplo

Para criar e executar a amostra HIERSVR

  1. Abra a solução hiersvr.sln.

  2. Sobre o Compilação menu, clicar Compilação.

  3. Execute HIERSRV sistema autônomo um aplicativo autônomo para que ele pode registrar próprio sistema.

HIERSRV diagramas

O tipo de documento ou objeto HIERSVR edições e exibições é uma herança única hierarquia diagrama.Cada nó no diagrama, exceto o nó raiz, tem apenas um nó pai.Cada pai pode ter vários filhos.Organograma da empresa é um exemplo de um hierarquia diagrama.Portanto, é a lista de classes MFC, porque eles não usam C++ herança múltipla.Mfcclass.Hie é incluído sistema autônomo um exemplo de documento HIERSVR.

Cada nó na hierarquia tem um conjunto mínimo de atributos.

  • Descrição — Texto com até 30 caracteres.

  • Forma — Estilo do retângulo que cerca o retângulo do texto, retângulo arredondado ou Retângulo oval.

  • Link de chave (opcional) do item — nome usado para fazer referência a um item vinculado.Se não especificado, o vínculo da chave item padrão a seqüência de caracteres de descrição.Esse nome estará visível quando você exibir o link usando o comando edição vínculos no aplicativo cliente.

Criando um diagrama HIERSVR

Um novo diagrama HIERSVR começa sistema autônomo um único nó com o texto "Nó de raiz". Para adicionar um nó, primeiro selecionar o nó pai clicando nele.Em seguida, clicar Adicionar nó on the edição menu.No Adicionar nó diálogo, especifique os três atributos descritos acima.Para alterar os atributos de um nó, selecionar-o com um clicar do mouse e, em seguida, clicar Nó de alteração.Para mover um nó, clicar nela e arrastar para o novo local.

HIERSVR irá importar informações de hierarquia de um arquivo de texto formatado da seguinte maneira: O texto em cada linha (delimitado por uma feed de linha) é a descrição do nó.O número de caracteres de tabulação o texto anterior determina o nível do nó na hierarquia.No diretório de amostra HIERSVR, Mfcclass.txt é o arquivo de importação de texto para Mfcclass.hie, o arquivo HIERSVR nativo.

Para vincular um hierarquia diagrama a um documento do cliente, você deve primeiro salvar o arquivo em HIERSVR.selecionar o nó que você deseja copiar usando edição cópia.Isso irá copiar o link para a área de transferência.O texto do nó selecionado também será copiado para a área de transferência no CF_TEXTo formato e toda a hierarquia de nós serão copiados em um formato de área de transferência HIERSVR nativo.Salvar o documento é necessária porque o formato do link requer um nome de documento.Finalmente, no aplicativo cliente, clicar edição Colar vínculo (ou clicar Colar vínculo on the edição Colar especial menu).O link será exibido no documento do cliente sistema autônomo o nó selecionado antes de clicar em edição cópia.O retângulo também será exibido.

Para incorporar um diagrama hierárquico em um documento do cliente, você pode usar um procedimento de área de transferência semelhante àquela acima para vinculá-lo, ou clicar Inserir novo objeto no aplicativo cliente.Se você escolher o procedimento da área de transferência, use edição Colar em vez de edição Colar vínculo no aplicativo cliente.Somente o subhierarchy começando com o nó selecionado será incorporado no documento do cliente.

Se você vincular ou incorporar o diagrama, o nó superior selecionado será exibido na janela do aplicativo cliente.Para ver a continuação do diagrama, você precisará HIERSVR de inicialização do aplicativo cliente, clicar duas vezes no item.

O Visual edição servidor

HIERSVR ilustra as derivações de classe necessárias para implementar um aplicativo de servidor de edição visual totalmente funcional e ilustra algumas das interfaces de usuário de aplicativo cliente mais comuns que requerem código adicional.

As classes três estrutura usadas para implementar um aplicativo de servidor edição visual sejam ilustradas a seguir.

  • A COleTemplateServer objeto, armazenado sistema autônomo variável de membro m_server classe de aplicativo da HIERSVR.

  • O HIERSVR CServerDoc classe, derivada de COleServerDoc.

  • O HIERSVR CServerItem classe, derivada de COleServerItem.

  • O HIERSVR CInPlaceFrame classe, derivada de COleIPFrameWnd, originalmente criados pelo Assistente do aplicativo.

Palavras-chave

Este exemplo demonstra as seguintes palavras-chave:

AfxGetMainWnd; AfxMessageBox; AfxOleInit; AfxThrowMemoryException; AfxThrowNotSupportedException; AfxThrowResourceException; CArchive::Close; CCmdTarget::BeginWaitCursor; CCmdTarget::EndWaitCursor; CCmdUI::Enable; CCmdUI::SetCheck; CControlBar::EnableDocking; CControlBar::GetBarStyle; CControlBar::SetBarStyle; CDC::GetDeviceCaps; CDC::LPtoDP; CDC::LPtoHIMETRIC; CDC::SelectObject; CDC::SetMapMode; CDC::SetViewportExt; CDC::SetWindowExt; CDialog::DoModal; CDialog::OnInitDialog; CDocTemplate::SetServerInfo; CDocument::DeleteContents; CDocument::GetFirstViewPosition; CDocument::GetNextView; CDocument::OnNewDocument; CDocument::SetModifiedFlag; CDocument::UpdateAllViews; CFile::Open; CFileDialog::DoModal; CFileDialog::GetPathName; CFontDialog::DoModal; CFontDialog::GetColor; CFrameWnd::Create; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CFrameWnd::LoadFrame; CMenu::GetSubMenu; CMenu::LoadMenu; CMenu::TrackPopupMenu; CObList::AddHead; CObList::AddTail; CObList::GetCount; CObList::GetHeadPosition; CObList::GetNext; CObList::GetTail; CObList::RemoveAll; CObList::RemoveAt; CObject::AssertValid; CObject::Dump; CObject::Serialize; COleDataObject::AttachClipboard; COleDataObject::GetFileData; COleDataObject::IsDataAvailable; COleIPFrameWnd::OnCreateControlBars; COleLinkingDoc::OnGetLinkedItem; COleServerDoc::GetItemPosition; COleServerDoc::IsInPlaceActive; COleServerDoc::OnDeactivateUI; COleServerDoc::OnGetEmbeddedItem; COleServerDoc::OnSetItemRects; COleServerDoc::RequestPositionChange; COleServerDoc::UpdateAllItems; COleServerItem::CopyToClipboard; COleServerItem::DoDragDrop; COleServerItem::GetClipboardData; COleServerItem::GetDataSource; COleServerItem::GetDocument; COleServerItem::GetItemName; COleServerItem::IsLinkedItem; COleServerItem::OnDraw; COleServerItem::OnGetClipboardData; COleServerItem::OnGetExtent; COleServerItem::OnOpen; COleServerItem::OnRenderFileData; COleServerItem::SetItemName; COleTemplateServer::ConnectTemplate; COleTemplateServer::UpdateRegistry; CPen::CreatePen; CRect::BottomRight; CRect::Height; CRect::InflateRect; CRect::IntersectRect; CRect::OffsetRect; CRect::PtInRect; CRect::Size; CRect::TopLeft; CScrollView::GetDeviceScrollPosition; CScrollView::ScrollToPosition; CScrollView::SetScrollSizes; CString::Empty; CString::GetLength; CString::IsEmpty; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::GetDocument; CView::OnDragEnter; CView::OnDragLeave; CView::OnDragOver; CView::OnDraw; CView::OnDrop; CView::OnInitialUpdate; CView::OnPrepareDC; CView::OnUpdate; CWinApp::AddDocTemplate; CWinApp::EnableShellOpen; CWinApp::ExitInstance; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::RegisterShellFileTypes; CWnd::ClientToScreen; CWnd::DoDataExchange; CWnd::GetClientRect; CWnd::GetParentFrame; CWnd::Invalidate; CWnd::InvalidateRect; CWnd::OnCreate; CWnd::OnKeyDown; CWnd::OnLButtonDblClk; CWnd::OnLButtonDown; CWnd::OnRButtonDown; CWnd::OnSize; CWnd::SetOwner; CWnd::ShowWindow; CWnd::UpdateWindow; CreateFontIndirect; DragAcceptFiles; EnableWindow; ExtTextOut; GetDeviceCaps; GetSysColor; GetTextExtent; GetWindowTextLength; IsChild; LPtoDP; LineTo; LoadBitmap; MoveTo; MulDiv; RGB; RectVisible; Rectangle; RegisterClipboardFormat; RoundRect; SelectObject; SetTextColor; SetViewportExt; SetWindowExt; SetWindowOrg; _alloca; afxMemDF; lstrcpy; memset; min; strnlen; wcstombs

Observação:

Alguns exemplos, sistema autônomo esta, não foram modificados para refletir sistema autônomo alterações nos assistentes, bibliotecas e compilador Visual C++, mas ainda Demonstre sistema autônomo concluir a tarefa desejada.

Consulte também

Outros recursos

Exemplos do MFC