Exemplo do SUPERPAD: Demonstra um servidor edição visual edições de texto usando CEditView
O exemplo SUPERPAD ilustra como usar o CEditView classe em conjunto com o suporte ao servidor de edição visual.
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 SUPERPAD
Abra a solução superpad.sln.
Sobre o Compilação menu, clicar Compilação.
Para usar SUPERPAD sistema autônomo um servidor de edição visual, execute-uma vez sistema autônomo um aplicativo independente para que ele pode registrar próprio sistema.
Quando você executa o SUPERPAD pela primeira vez, ele exibe uma janela inicial que se parece com uma caixa de diálogo sobre.Essa caixa de diálogo permanecerá na tela rapidamente e, em seguida, vanishes após um time limite.Para fechar a janela de apresentação, pressione qualquer tecla ou clicar com o mouse.
SUPERPAD lembra sua posição de janela da última vez que você tiver executado.Ele também memoriza se o documento foi maximizado na janela de quadro MDI.
Recursos adicionais de SUPERPAD
SUPERPAD ilustra usos avançados de CEditView por meio de derivação de classe, incluindo ao alternar o estado de encapsular de palavra do controle edição e alterar a fonte de tela e da impressora. SUPERPAD também ilustra uma ampla variedade de técnicas de programação do MFC.
Sobre a caixa de diálogo mostrando uso do recurso do sistema.
Janela inicial exibida quando o aplicativo é iniciado pela primeira vez.
Posicionamento de janela persistente, armazenando informações de posição da janela em um arquivo .ini particular.
Processamento de loop ocioso.
Usando um cursor de espera.
Subclassificação uma janela.
Adicionando cabeçalhos e rodapés de página durante a impressão.
Quebrar durante a impressão de página.
Iniciando o modo de visualização de impressão na seleção corrente no documento.
Retornando sistema autônomo última na visualização de impressão para a mesma posição no documento visualizado.
Caixa de diálogo fonte padrão (CFontDialog).
Menus SUPERPAD
The Arquivo menu oferece comandos padrão — New, em aberto, Fechar, Salvar, Salvar sistema autônomo, Impressão, Visualizar impressão, Configuração de impressão, lista de arquivos (MRU), usados mais recentemente e Exit.
The Arquivo menu também oferece um Configurar página opção que você pode usar para especificar um cabeçalho de página e/ou rodapé.Deixe em branco se desejar nenhum cabeçalho ou rodapé.Você pode especificar qualquer texto no cabeçalho e rodapé.Você também pode especificar qualquer um dos seguintes códigos de formatação.
&f para nome de arquivo.
&p para o número da página.
Qualquer um dos códigos de formatação definidos para o time de execução C STRFTIME função.Por exemplo, %a para o nome do dia da semana abreviado, %B para o nome de mês completo, %d para o dia do mês e %Y para o ano com século podem ser especificados.Essas opções de formatação não estarão disponíveis se você vincular SUPERPAD para a versão DLL do MFC porque strftime não está disponível em uma DLL.
SUPERPAD oferece o seguinte edição comandos de menu, que são tratados por padrão por CEditView: Recortar, Cópia, Página, Excluir, Localizar.Localizar próxima, Substituir, Selecionar tudo, and Desfazer.The edição menu também oferece um palavra encapsular automática de comando para ativar palavra encapsular ou desativar.
The Modo de exibição menu oferece os seguintes comandos, vários recursos de exercícioCEditView:
conjunto guia pára — digite um único inteiro na caixa de diálogo de paradas de tabulação espaçadas igualmente.
conjunto fonte — especificar a fonte a ser usado ao exibir o arquivo na tela.
Conjunto de fontes de impressora — especificar a fonte a ser usado ao imprimir.
Espelhar Exibir fonte — ative esse estado de alternância para desmarcar temporariamente a fonte de impressora especificado no momento e, em vez disso, usar uma fonte de impressora mais parecido com a fonte de tela.
Classes SUPERPAD
SUPERPAD deriva seu modo de exibição de classe CPadView from CEditView. CPadView acessa sistema autônomo atributos e operações de CEditView Para adicionar a funcionalidade do CEditView, conforme descrito aqui.
CPadView calls CEditView::SetFont and SetPrinterFont para inicializar e alterar as fontes de tela e da impressora.
Para implementar o Editar encapsular command, CPadView alterna o estado de encapsular de texto, criando um novo controle de edição (cujo WNDCLASS é que controle de edição padrão do Windows).Ativa/desativa o ES_AUTOHSCROLL and WS_HSCROLLestilos de do controle, que juntas determinam se um controle de edição quebra automática do palavra.CPadView salva o buffer do antigo controle de edição e ele é movido para o novo controle de edição.Por fim, destrói o antigo controle de edição e, em seguida, associa o hWnd dos novos Editar controle com o CPadView classe, chamando CWnd::SubclassWindow.
CPadView prevalece sobreOnPrint Para adicionar cabeçalhos e rodapés de página. Ela substitui OnBeginPrinting Para conjunto a time corrente, que, opcionalmente, é exibida no cabeçalho, no rodapé ou em ambos. Ele começa a visualização de impressão na seleção corrente no controle de edição.
CPadView prevalece sobreCView::OnScrollTo para rolar a exibição para a mesma posição do último exibida durante a visualização de impressão.
Palavras-chave
Este exemplo demonstra as seguintes palavras-chave:
AfxGetApp; AfxGetInstanceHandle; AfxMessageBox; AfxOleInit; CArchive::Flush; CArchive::GetFile; CArchive::IsStoring; CBitmap::CreateCompatibleBitmap; CButton::DrawItem; CCmdUI::SetCheck; CDC::Attach; CDC::CreateCompatibleDC; CDC::Detach; CDC::DrawIcon; CDC::FillRect; CDC::GetDeviceCaps; CDC::GetTextMetrics; CDC::IntersectClipRect; CDC::LPtoHIMETRIC; CDC::LineTo; CDC::MoveTo; CDC::Rectangle; CDC::RestoreDC; CDC::SaveDC; CDC::SelectObject; CDC::SetBkMode; CDC::SetWindowExt; CDC::SetWindowOrg; CDC::StretchBlt; CDC::TextOut; CDialog::Create; CDialog::DoModal; CDialog::OnInitDialog; CDocTemplate::SetServerInfo; CDocument::DeleteContents; CDocument::GetFirstViewPosition; CDocument::GetNextView; CEditView::GetEditCtrl; CEditView::GetPrinterFont; CEditView::PrintInsideRect; CEditView::SerializeRaw; CEditView::SetPrinterFont; CEditView::SetTabStops; CEditView::dwStyleDefault; CFile::Write; CFont::CreateFontIndirect; CFontDialog::DoModal; CFrameWnd::ActivateFrame; CFrameWnd::Create; CFrameWnd::LoadFrame; CGdiObject::CreateStockObject; CGdiObject::DeleteObject; CGdiObject::GetObject; CObject::AssertValid; CObject::Dump; CObject::IsKindOf; CObject::Serialize; COleIPFrameWnd::OnCreateControlBars; COleLinkingDoc::OnGetLinkedItem; COleResizeBar::Create; COleServerDoc::IsInPlaceActive; COleServerDoc::OnDeactivateUI; COleServerDoc::OnGetEmbeddedItem; COleServerDoc::UpdateAllItems; COleServerItem::CopyToClipboard; COleServerItem::GetDataSource; COleServerItem::GetDocument; COleServerItem::OnDraw; COleServerItem::OnGetExtent; COleServerItem::OnRenderFileData; COleServerItem::OnShow; COleServerItem::SetItemName; COleTemplateServer::ConnectTemplate; COleTemplateServer::UpdateRegistry; CPrintDialog::CreatePrinterDC; CPrintInfo::SetMaxPage; CRect::Height; CRect::InflateRect; CRect::IsRectEmpty; CRect::SetRect; CRect::Size; CRect::Width; CStatusBar::Create; CStatusBar::SetIndicators; CString::Find; CString::GetBuffer; CString::GetLength; CString::IsEmpty; CString::Left; CString::LoadString; CString::Mid; CString::ReleaseBuffer; CTime::Format; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::GetDocument; CView::OnBeginPrinting; CView::OnPrepareDC; CView::OnPrint; CWinApp::AddDocTemplate; CWinApp::EnableShellOpen; CWinApp::ExitInstance; CWinApp::GetProfileInt; CWinApp::GetProfileString; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::OnIdle; CWinApp::PreTranslateMessage; CWinApp::RegisterShellFileTypes; CWinApp::WriteProfileInt; CWinApp::WriteProfileString; CWnd::BringWindowToTop; CWnd::CenterWindow; CWnd::DestroyWindow; CWnd::Detach; CWnd::DoDataExchange; CWnd::FromHandle; CWnd::GetClientRect; CWnd::GetDC; CWnd::GetDlgCtrlID; CWnd::GetFocus; CWnd::GetFont; CWnd::GetParent; CWnd::GetParentFrame; CWnd::GetStyle; CWnd::GetSuperWndProcAddr; CWnd::GetWindowPlacement; CWnd::GetWindowRect; CWnd::GetWindowText; CWnd::GetWindowTextLength; CWnd::IsZoomed; CWnd::KillTimer; CWnd::OnClose; CWnd::OnCreate; CWnd::OnEraseBkgnd; CWnd::OnRButtonDown; CWnd::OnSize; CWnd::OnTimer; CWnd::PreCreateWindow; CWnd::ReleaseDC; CWnd::ScreenToClient; CWnd::SendMessage; CWnd::SetDlgCtrlID; CWnd::SetDlgItemText; CWnd::SetFocus; CWnd::SetFont; CWnd::SetOwner; CWnd::SetTimer; CWnd::SetWindowPlacement; CWnd::SetWindowPos; CWnd::SetWindowText; CWnd::ShowWindow; CWnd::SubclassDlgItem; CWnd::SubclassWindow; CWnd::UpdateWindow; CreateWindow; DragAcceptFiles; GetCurrentTime; GetObject; GetProfileInt; GetProfileString; GetStockObject; GetSystemMetrics; GlobalMemoryStatus; IsIconic; IsWindowVisible; LOWORD; LoadIcon; MulDiv; SetWindowLong; SetWindowPos; UpdateWindow; WideCharToMultiByte; WriteProfileString; _alloca; _getdrive; lstrcpyn; lstrlen; min; wcstombs; wsprintf
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. |