SUPERPAD-Beispiel: Veranschaulicht einen Server, die mithilfe von CEditView Text bearbeitet zur visuellen Bearbeitung
Das SUPERPAD-Beispiel veranschaulicht, wie die CEditView-Klasse in Verbindung mit Unterstützung für visuelle Bearbeitung Server verwenden.
Sicherheitshinweis |
---|
Dieser Beispielcode soll ein Konzept veranschaulichen, und es wird nur den Code, der für dieses Konzept relevant sind. Möglicherweise erfüllt dieser nicht die Sicherheitsanforderungen für eine bestimmte Umgebung, und er sollte nicht genau wie dargestellt verwendet werden. Wir empfehlen, Sicherheits- und Fehlerbehandlungscode hinzuzufügen, um Ihre Projekte sicherer und stabiler zu machen. Microsoft stellt diesen Beispielcode "Wie besehen"keine Garantien. |
So erhalten Sie Beispiele und Anweisungen für deren Installation:
Um Beispiele von Visual Studio zuzugreifen
im Menü Hilfe Menü klicken Beispiele.
Standardmäßig sind die Beispiele in installiert. Laufwerk: \Programme\Microsoft visual Studio 10.0\Samples\.
- Die neueste Version dieses Beispiels und eine Liste der anderen Beispiele finden Sie unter Visual Studio Samples auf der MSDN-Website.
Erstellen und Ausführen des Beispiels
So erstellen Sie und führen das SUPERPAD-Beispiel
Öffnen Sie die Projektmappe superpad.sln.
erstellen Sie Menü, klicken Sie auf erstellen.
Um SUPERPAD als Server für eine visuelle Bearbeitung verwenden, führen Sie einmal als eigenständige Anwendung damit es sich beim System registrieren kann.
Wenn Sie SUPERPAD erstmalig ausführen, wird ein Begrüßungsfenster, der aussieht wie ein Info-Dialogfeld angezeigt. Dieses Dialogfeld bleibt auf dem Bildschirm kurz und dann nach einem Timeout verschwinden. Das Begrüßungsfenster schließen, drücken Sie eine beliebige Taste, oder klicken Sie mit der Maus.
SUPERPAD speichert die Fensterposition der letzten Sie ausgeführt haben. Er speichert außerdem, ob das Dokumentfenster im MDI-Rahmenfenster maximiert wurde.
Weitere SUPERPAD-Features
SUPERPAD veranschaulicht erweiterte Verwendungen von CEditView durch Klassenableitung, einschließlich Umschalten des Wort umgebrochen Zustand des Bearbeitungssteuerelements und Ändern der Bildschirm- und Druckerschriftart. SUPERPAD veranschaulicht außerdem eine Vielzahl von MFC-Programmiertechniken.
Infos zum Dialogfeld Systemressourcenauslastung anzeigt.
Begrüßungsfenster, die beim ersten der Anwendung starten angezeigt wird.
Permanente Fenster Platzierung indem Fenster Positionsinformationen in einer privaten INI-Datei speichert.
Leerlaufschleife Verarbeitung.
Verwenden ein Wartecursor.
Bilden von Unterklassen eines Fensters.
Hinzufügen von Kopf- und Fußzeilen während des Druckens.
Die Seite während des Druckvorgangs unterbrechen.
Seitenansicht mit der aktuellen Auswahl im Dokument wird gestartet.
Rückgabe aus der Seitenansicht an derselben Position in das Dokument als letzten Vorschau.
Standarddialogfeld für Schriftarten (CFontDialog).
SUPERPAD-Menüs
Dateimenü enthält Standardbefehle – Dateiliste (MRU) und **neue von, Öffnen von, Schließen von,**speichern **,**speichern unter **,**Print **,**Seitenansicht **,**Exit Druckeinrichtung-, kürzlich die am häufigsten verwendet.
Das Datei Menü enthält auch eine Option Seite einrichten Sie können einen pro Seite Kopf und/oder Fuß an. Lassen Sie die Kopf- oder Fußzeile leer, wenn keine soll. Sie können einen beliebigen Text in die Kopf- und Fußzeile angeben. Sie können auch eine der folgenden Formatierungscodes angeben.
&f für den Namen der Datei.
&p für die Seitenzahl.
Jeder für die C Run-Time Strftime-Funktion definierten Formatierungscodes. Beispielsweise können %a für den abgekürzten Wochentagsnamen, %B für den vollständigen Monatsnamen Namen, %d für den Tag des Monats und %Y für das Jahr mit Jahrhundert angegeben werden. Diese Formatierungen Optionen sind nicht verfügbar, wenn Sie SUPERPAD mit der DLL-Version von MFC, verknüpfen da strftime nicht in einer DLL verfügbar ist.
SUPERPAD bietet die folgenden Menübefehle bearbeiten, die durch CEditView standardmäßig verarbeitet werden: Ausschneiden von, kopierenSeite, löschen, suchen. Weiter ersetzen, Wählen Sie alleund rückgängig. The Edit menu also offers a WordWrap command to turn word wrapping on or off.
Im Ansicht enthält die folgenden Befehle, die verschiedene Features von CEditView:
Festlegen von TAB reagiert – geben Sie eine einzelne Ganzzahl im Dialogfeld für Abstand zu Tabstopps.
Festlegen der Schriftart – geben Sie die Schriftart beim Anzeigen der Datei auf dem Bildschirm verwendet werden.
Festlegen Drucker Zeichen – geben Sie die Schriftart beim Drucken verwendet werden.
Spiegeln Display Font – diese Umschaltzustand auf aktivieren, wenn Sie aktuell eingestellte Druckerschriftart zeitweise deaktivieren und stattdessen eine Druckerschriftart, die der Bildschirmschriftart möglichst verwenden möchten.
SUPERPAD-Klassen
SUPERPAD leitet seine Ansicht Klasse CPadView von CEditView. CPadView greift auf die Attribute und Vorgänge von CEditView an der Funktionalität von CEditView, hinzufügen und wie hier beschrieben.
CPadView CEditView::SetFont und SetPrinterFont zu initialisieren und ändern die Bildschirm- und Druckerschriftarten aufgerufen.
Zum Implementieren von Befehls Edit Word Wrap schaltet CPadView den Zustand des Zeilenumbruchs um, indem ein neues Edit-Steuerelement (, deren WNDCLASS ist die Windows-Bearbeitungssteuerelement). Die ES_AUTOHSCROLL und WS_HSCROLL Stile des Steuerelements, die gemeinsam bestimmen, ob ein Edit-Steuerelement Zeilenumbruch durchführt umgeschaltet. CPadView speichert den Puffer des alten Bearbeitungssteuerelements und verschiebt ihn in das neue Bearbeitungssteuerelement. Abschließend zerstört das alte Bearbeitungssteuerelement und verknüpft das hWnd des neuen Bearbeitungssteuerelements mit der CPadView -Klasse durch Aufrufen von CWnd::SubclassWindow.
CPadView überschreibt OnPrint Kopf- und Fußzeilen hinzufügen. Er überschreibt OnBeginPrinting, um die aktuelle Uhrzeit festzulegen, die optional in der Kopfzeile, Fußzeile oder in beiden angezeigt wird. Seitenansicht mit der aktuellen Auswahl beginnt im Bearbeitungssteuerelement.
CPadView überschreibt CView::OnScrollTo in der Ansicht einen Bildlauf zu der gleichen Position wie letzten Seitenansicht.
Schlüsselwörter
Dieses Beispiel demonstriert die Verwendung der folgenden Schlüsselwörter:
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
Hinweis
Einige Beispiele, z. B. eine, wurden nicht geändert, um Änderungen in der Visual C++-Assistenten, Bibliotheken und Compiler, demonstrieren aber dennoch wie Sie die gewünschte Aufgabe durchführen.