Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Biedt de basisfunctionaliteit voor door de gebruiker gedefinieerde weergaveklassen.
Syntaxis
class AFX_NOVTABLE CView : public CWnd
Leden
Beveiligde constructors
| Naam | Description |
|---|---|
CView::CView |
Maakt een CView-object. |
Openbare methoden
| Naam | Description |
|---|---|
CView::DoPreparePrinting |
Hiermee wordt het dialoogvenster Afdrukken weergegeven en wordt de context van het printerapparaat gemaakt; aanroepen bij het overschrijven van de OnPreparePrinting lidfunctie. |
CView::GetDocument |
Retourneert het document dat is gekoppeld aan de weergave. |
CView::IsSelected |
Hiermee wordt getest of een documentitem is geselecteerd. Vereist voor OLE-ondersteuning. |
CView::OnDragEnter |
Aangeroepen wanneer een item voor het eerst wordt gesleept naar het gebied met slepen en neerzetten van een weergave. |
CView::OnDragLeave |
Aangeroepen wanneer een gesleept item het gebied met slepen en neerzetten van een weergave verlaat. |
CView::OnDragOver |
Aangeroepen wanneer een item wordt gesleept over het gebied met slepen en neerzetten van een weergave. |
CView::OnDragScroll |
Aangeroepen om te bepalen of de cursor naar het schuifgebied van het venster wordt gesleept. |
CView::OnDrop |
Aangeroepen wanneer een item is neergezet in het gebied voor slepen en neerzetten van een weergave, standaardhandler. |
CView::OnDropEx |
Aangeroepen wanneer een item is neergezet in het gebied voor slepen en neerzetten van een weergave, primaire handler. |
CView::OnInitialUpdate |
Aangeroepen nadat een weergave voor het eerst aan een document is gekoppeld. |
CView::OnPrepareDC |
Aangeroepen voordat de OnDraw lidfunctie wordt aangeroepen voor schermweergave of de OnPrint lidfunctie wordt aangeroepen voor afdrukken of afdrukvoorbeelden. |
CView::OnScroll |
Aangeroepen wanneer OLE-items buiten de randen van de weergave worden gesleept. |
CView::OnScrollBy |
Aangeroepen wanneer een weergave met actieve OLE-items ter plaatse wordt gescrold. |
Beveiligde methoden
| Naam | Description |
|---|---|
CView::OnActivateFrame |
Wordt aangeroepen wanneer het framevenster met de weergave wordt geactiveerd of gedeactiveerd. |
CView::OnActivateView |
Aangeroepen wanneer een weergave wordt geactiveerd. |
CView::OnBeginPrinting |
Aangeroepen wanneer een afdruktaak begint; overschrijven om GDI-resources (Graphics Device Interface) toe te wijzen. |
CView::OnDraw |
Wordt aangeroepen om een afbeelding van het document weer te geven voor schermweergave, afdrukken of afdrukvoorbeelden. Implementatie vereist. |
CView::OnEndPrinting |
Aangeroepen wanneer een afdruktaak eindigt; overschrijven om de toewijzing van GDI-resources ongedaan te maken. |
CView::OnEndPrintPreview |
Aangeroepen wanneer de preview-modus wordt afgesloten. |
CView::OnPreparePrinting |
Aangeroepen voordat een document wordt afgedrukt of een voorbeeld ervan wordt bekeken; overschrijven om het dialoogvenster Afdrukken te initialiseren. |
CView::OnPrint |
Wordt aangeroepen om een pagina van het document af te drukken of te bekijken. |
CView::OnUpdate |
Wordt aangeroepen om een weergave te melden dat het document is gewijzigd. |
Opmerkingen
Een weergave is gekoppeld aan een document en fungeert als intermediair tussen het document en de gebruiker: de weergave geeft een afbeelding weer van het document op het scherm of de printer en interpreteert gebruikersinvoer als bewerkingen op het document.
Een weergave is een onderliggend element van een framevenster. Meer dan één weergave kan een framevenster delen, zoals in het geval van een splitsvenster. De relatie tussen een weergaveklasse, een framevensterklasse en een documentklasse wordt tot stand gebracht door een CDocTemplate object. Wanneer de gebruiker een nieuw venster opent of een bestaand venster splitst, wordt er een nieuwe weergave gemaakt en aan het document gekoppeld.
Een weergave kan slechts aan één document worden gekoppeld, maar een document kan meerdere weergaven tegelijk bevatten, bijvoorbeeld als het document wordt weergegeven in een splitsvenster of in meerdere onderliggende vensters in een MDI-toepassing (Document Interface). Uw toepassing kan verschillende typen weergaven voor een bepaald documenttype ondersteunen; Een tekstverwerkingsprogramma kan bijvoorbeeld zowel een volledige tekstweergave van een document als een overzichtsweergave bieden waarin alleen de sectiekoppen worden weergegeven. Deze verschillende typen weergaven kunnen worden geplaatst in afzonderlijke framevensters of in afzonderlijke deelvensters van één framevenster als u een splitsvenster gebruikt.
Een weergave kan verantwoordelijk zijn voor het verwerken van verschillende typen invoer, zoals toetsenbordinvoer, muisinvoer of invoer via slepen en neerzetten, evenals opdrachten van menu's, werkbalken of schuifbalken. Een weergave ontvangt opdrachten die worden doorgestuurd door het framevenster. Als de weergave een bepaalde opdracht niet verwerkt, wordt de opdracht doorgestuurd naar het bijbehorende document. Net als alle opdrachtdoelen verwerkt een weergave berichten via een berichtoverzicht.
De weergave is verantwoordelijk voor het weergeven en wijzigen van de gegevens van het document, maar niet voor het opslaan ervan. Het document biedt de weergave de benodigde details over de gegevens. U kunt de weergave rechtstreeks toegang geven tot de gegevensleden van het document of u kunt lidfuncties in de documentklasse opgeven om de weergaveklasse aan te roepen.
Wanneer de gegevens van een document worden gewijzigd, roept de weergave die verantwoordelijk is voor de wijzigingen doorgaans de CDocument::UpdateAllViews functie voor het document aan, waarmee alle andere weergaven worden aangeroepen door de OnUpdate lidfunctie voor elke weergave aan te roepen. De standaardimplementatie van OnUpdate maakt het gehele clientgebied van de weergave ongeldig. U kunt deze overschrijven om alleen die regio's van het clientgebied die overeenkomstig zijn met de gewijzigde gedeelten van het document te invalideren.
Als u deze wilt gebruiken CView, moet u een klasse afleiden en de OnDraw lidfunctie implementeren om schermweergave uit te voeren. U kunt ook het OnDraw afdruk- en afdrukvoorbeeld uitvoeren. Het framework verwerkt de afdruklus voor het afdrukken en bekijken van uw document.
Een weergave verwerkt berichten op de schuifbalk met de CWnd::OnHScroll functies en CWnd::OnVScroll leden. U kunt de verwerking van berichten in de schuifbalk in deze functies implementeren of u kunt de CView afgeleide klasse CScrollView gebruiken om schuiven voor u af te handelen.
Bovendien CScrollViewbiedt de Microsoft Foundation Class Library negen andere klassen die zijn afgeleid van CView:
CCtrlView, een weergave die het gebruik van documenten toestaat: architectuur weergeven met structuur-, lijst- en uitgebreide besturingselementen voor bewerken.CDaoRecordView, een weergave waarin databaserecords in dialoogvensterbesturingselementen worden weergegeven.CEditView, een weergave die een eenvoudige teksteditor met meerdere regels biedt. U kunt eenCEditViewobject gebruiken als een besturingselement in een dialoogvenster, evenals een weergave in een document.CFormView, een schuifbare weergave met besturingselementen voor dialoogvensters en is gebaseerd op een dialoogvenstersjabloonresource.CListView, een weergave die het gebruik van document toestaat : architectuur weergeven met lijstbesturingselementen.CRecordView, een weergave waarin databaserecords in dialoogvensterbesturingselementen worden weergegeven.CRichEditView, een weergave die het gebruik van documenten toestaat: architectuur weergeven met uitgebreide besturingselementen voor bewerken.CScrollView, een weergave die automatisch ondersteuning biedt voor scrollen.CTreeView, een weergave die het gebruik van documenten toestaat: architectuur weergeven met structuurbesturingselementen.
De CView klasse heeft ook een afgeleide implementatieklasse genaamd CPreviewView, die wordt gebruikt door het framework om afdrukvoorbeelden uit te voeren. Deze klasse biedt ondersteuning voor de functies die uniek zijn voor het afdrukvoorbeeldvenster, zoals een werkbalk, een voorbeeld van één of twee pagina's en zoomen, dat wil gezegd, het vergroten van de voorbeeldafbeelding. U hoeft geen lidfuncties aan te roepen of te overschrijven CPreviewView, tenzij u uw eigen interface wilt implementeren voor afdrukvoorbeelden (bijvoorbeeld als u bewerking in de afdrukvoorbeeldmodus wilt ondersteunen). Zie De document-/weergavearchitectuur en het afdrukken voor meer informatie over het gebruikCView. Zie bovendien Technische opmerking 30 voor meer informatie over het aanpassen van afdrukvoorbeelden.
Overnamehiërarchie
CView
Requirements
Rubriek:afxwin.h
CView::CView
Maakt een CView-object.
CView();
Opmerkingen
Het framework roept de constructor aan wanneer een nieuw framevenster wordt gemaakt of een venster wordt gesplitst. Overschrijf de OnInitialUpdate lidfunctie om de weergave te initialiseren nadat het document is bijgevoegd.
CView::DoPreparePrinting
Roep deze functie aan vanaf uw onderdrukking om OnPreparePrinting het dialoogvenster Afdrukken aan te roepen en een context voor een printerapparaat te maken.
BOOL DoPreparePrinting(CPrintInfo* pInfo);
Parameterwaarden
pInfo
Verwijst naar een CPrintInfo structuur die de huidige afdruktaak beschrijft.
Retourwaarde
Niet-nul als het afdrukken of het afdrukvoorbeeld kan beginnen; 0 als de bewerking is geannuleerd.
Opmerkingen
Het gedrag van deze functie is afhankelijk van het feit of deze wordt aangeroepen voor afdrukvoorbeelden (opgegeven door het m_bPreview lid van de pInfo parameter). Als een bestand wordt afgedrukt, roept deze functie het dialoogvenster Afdrukken aan met behulp van de waarden in de CPrintInfo structuur waarnaar pInfo wordt verwezen. Nadat de gebruiker het dialoogvenster heeft gesloten, maakt de functie een printerapparaatcontext op basis van de instellingen die de gebruiker in het dialoogvenster heeft opgegeven en retourneert deze apparaatcontext via de pInfo parameter. Deze apparaatcontext wordt gebruikt om het document af te drukken.
Als er een voorbeeld van een bestand wordt weergegeven, wordt met deze functie een context van een printerapparaat gemaakt met behulp van de huidige printerinstellingen; deze apparaatcontext wordt gebruikt voor het simuleren van de printer tijdens de preview-versie.
CView::GetDocument
Roep deze functie aan om een aanwijzer te krijgen naar het document van de weergave.
CDocument* GetDocument() const;
Retourwaarde
Een aanwijzer naar het CDocument object dat aan de weergave is gekoppeld.
NULL als de weergave niet is gekoppeld aan een document.
Opmerkingen
Hiermee kunt u de lidfuncties van het document aanroepen.
CView::IsSelected
Wordt aangeroepen door het framework om te controleren of het opgegeven documentitem is geselecteerd.
virtual BOOL IsSelected(const CObject* pDocItem) const;
Parameterwaarden
pDocItem
Verwijst naar het documentitem dat wordt getest.
Retourwaarde
Niet-nul als het opgegeven documentitem is geselecteerd; anders 0.
Opmerkingen
De standaard implementatie van deze functie retourneert FALSE. Overschrijf deze functie als u selectie implementeert met behulp van CDocItem objecten. U moet deze functie overschrijven als uw weergave OLE-items bevat.
CView::OnActivateFrame
Aangeroepen door het framework wanneer het framevenster met de weergave wordt geactiveerd of gedeactiveerd.
virtual void OnActivateFrame(
UINT nState,
CFrameWnd* pFrameWnd);
Parameterwaarden
nState
Hiermee geeft u op of het framevenster wordt geactiveerd of gedeactiveerd. Dit kan een van de volgende waarden zijn:
WA_INACTIVEHet framevenster wordt gedeactiveerd.WA_ACTIVEHet framevenster wordt geactiveerd via een andere methode dan een muisklik (bijvoorbeeld door de toetsenbordinterface te gebruiken om het venster te selecteren).WA_CLICKACTIVEHet framevenster wordt geactiveerd door een muisklik
pFrameWnd
Aanwijzer naar het framevenster dat moet worden geactiveerd.
Opmerkingen
Overschrijf deze lidfunctie als u speciale verwerking wilt uitvoeren wanneer het framevenster dat is gekoppeld aan de weergave is geactiveerd of gedeactiveerd. Voert deze onderdrukking bijvoorbeeld CFormView uit wanneer het het besturingselement met focus opslaat en herstelt.
CView::OnActivateView
Aangeroepen door het framework wanneer een weergave wordt geactiveerd of gedeactiveerd.
virtual void OnActivateView(
BOOL bActivate,
CView* pActivateView,
CView* pDeactiveView);
Parameterwaarden
bActivate
Geeft aan of de weergave wordt geactiveerd of gedeactiveerd.
pActivateView
Verwijst naar het weergaveobject dat wordt geactiveerd.
pDeactiveView
Verwijst naar het weergaveobject dat wordt gedeactiveerd.
Opmerkingen
Met de standaard implementatie van deze functie wordt de focus ingesteld op de weergave die wordt geactiveerd. Overschrijf deze functie als u speciale bewerkingen wilt uitvoeren wanneer een weergave wordt geactiveerd of gedeactiveerd. Als u bijvoorbeeld speciale visuele aanwijzingen wilt opgeven die de actieve weergave onderscheiden van de inactieve weergaven, bekijkt u de bActivate parameter en werkt u het uiterlijk van de weergave dienovereenkomstig bij.
De pActivateView en pDeactiveView parameters wijzen naar dezelfde weergave als het hoofdframevenster van de toepassing wordt geactiveerd zonder wijzigingen in de actieve weergave, bijvoorbeeld als de focus wordt overgedragen van een andere toepassing naar deze, in plaats van van de ene weergave naar een andere in de toepassing of wanneer u schakelt tussen onderliggende MDI-vensters. Hierdoor kan een weergave het palet opnieuw realiseren, indien nodig.
Deze parameters verschillen wanneer CFrameWnd::SetActiveView ze worden aangeroepen met een weergave die verschilt van wat CFrameWnd::GetActiveView er zou worden geretourneerd. Dit gebeurt meestal met splitsvensters.
CView::OnBeginPrinting
Aangeroepen door het framework aan het begin van een afdruk- of afdrukvoorbeeldtaak, nadat OnPreparePrinting deze is aangeroepen.
virtual void OnBeginPrinting(
CDC* pDC,
CPrintInfo* pInfo);
Parameterwaarden
pDC
Verwijst naar de context van het printerapparaat.
pInfo
Verwijst naar een CPrintInfo structuur die de huidige afdruktaak beschrijft.
Opmerkingen
De standaard implementatie van deze functie doet niets. Overschrijf deze functie om GDI-resources, zoals pennen of lettertypen, toe te wijzen die specifiek nodig zijn voor afdrukken. Selecteer de GDI-objecten in de apparaatcontext vanuit de OnPrint lidfunctie voor elke pagina die deze gebruikt. Als u hetzelfde weergaveobject gebruikt om zowel schermweergave als afdrukken uit te voeren, gebruikt u afzonderlijke variabelen voor de GDI-resources die nodig zijn voor elke weergave; Hiermee kunt u het scherm bijwerken tijdens het afdrukken.
U kunt deze functie ook gebruiken om initialisaties uit te voeren die afhankelijk zijn van de eigenschappen van de context van het printerapparaat. Het aantal pagina's dat nodig is om het document af te drukken, is bijvoorbeeld afhankelijk van de instellingen die de gebruiker heeft opgegeven in het dialoogvenster Afdrukken (zoals paginalengte). In een dergelijke situatie kunt u de documentlengte in de OnPreparePrinting lidfunctie niet opgeven, waar u dit normaal gesproken zou doen. U moet wachten totdat de context van het printerapparaat is gemaakt op basis van de instellingen van het dialoogvenster.
OnBeginPrinting is de eerste overschrijfbare functie waarmee u toegang krijgt tot het CDC object dat de context van het printerapparaat vertegenwoordigt, zodat u de documentlengte van deze functie kunt instellen. Houd er rekening mee dat als de documentlengte op dit moment niet is opgegeven, een schuifbalk niet wordt weergegeven tijdens het afdrukvoorbeeld.
CView::OnDragEnter
Aangeroepen door het framework wanneer de muis voor het eerst het niet-scrollende gebied van het doelvenster van de drop binnenkomt.
virtual DROPEFFECT OnDragEnter(
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parameterwaarden
pDataObject
Verwijst naar het COleDataObject slepen naar het neergebied van de weergave.
dwKeyState
Bevat de status van de wijzigingssleutels. Dit is een combinatie van een willekeurig aantal van de volgende: , , , , en MK_RBUTTONMK_MBUTTON. MK_LBUTTONMK_ALTMK_SHIFTMK_CONTROL
point
De huidige muispositie ten opzichte van het clientgebied van de weergave.
Retourwaarde
Een waarde van het DROPEFFECT geïnventariseerd type, wat aangeeft welk type neerval zou optreden als de gebruiker het object op deze positie heeft verwijderd. Het type daling is meestal afhankelijk van de huidige sleutelstatus die wordt aangegeven door dwKeyState. Een standaardtoewijzing van keystates aan DROPEFFECT waarden is:
DROPEFFECT_NONEHet gegevensobject kan niet in dit venster worden verwijderd.DROPEFFECT_LINKvoorMK_CONTROL|MK_SHIFTMaakt een koppeling tussen het object en de bijbehorende server.DROPEFFECT_COPYvoorMK_CONTROLMaakt een kopie van het verwijderde object.DROPEFFECT_MOVEvoorMK_ALTMaakt een kopie van het verwijderde object en verwijdert u het oorspronkelijke object. Dit is doorgaans het standaardvervaleffect, wanneer de weergave dit gegevensobject kan accepteren.
Zie het MFC Advanced Concepts-voorbeeld OCLIENTvoor meer informatie.
Opmerkingen
De standaard implementatie is om niets te doen en terug te keren DROPEFFECT_NONE.
Overschrijf deze functie om toekomstige aanroepen naar de OnDragOver lidfunctie voor te bereiden. Alle gegevens die vereist zijn voor het gegevensobject, moeten op dit moment worden opgehaald voor later gebruik in de OnDragOver lidfunctie. De weergave moet op dit moment ook worden bijgewerkt om de gebruiker visuele feedback te geven. Zie het artikel OLE-slepen en neerzetten voor meer informatie: Een doel voor neerzetten implementeren.
CView::OnDragLeave
Aangeroepen door het framework tijdens een sleepbewerking wanneer de muis wordt verplaatst uit het geldige drop area voor dat venster.
virtual void OnDragLeave();
Opmerkingen
Overschrijf deze functie als de huidige weergave alle acties moet opschonen die worden uitgevoerd tijdens of OnDragOver aanroepenOnDragEnter, zoals het verwijderen van visuele gebruikersfeedback terwijl het object is gesleept en verwijderd.
CView::OnDragOver
Aangeroepen door het framework tijdens een sleepbewerking wanneer de muis wordt verplaatst over het doelvenster voor neerzetten.
virtual DROPEFFECT OnDragOver(
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parameterwaarden
pDataObject
Verwijst naar het COleDataObject te slepen doel.
dwKeyState
Bevat de status van de wijzigingssleutels. Dit is een combinatie van een willekeurig aantal van de volgende: , , , , en MK_RBUTTONMK_MBUTTON. MK_LBUTTONMK_ALTMK_SHIFTMK_CONTROL
point
De huidige muispositie ten opzichte van het weergaveclientgebied.
Retourwaarde
Een waarde van het DROPEFFECT geïnventariseerd type, wat aangeeft welk type neerval zou optreden als de gebruiker het object op deze positie heeft verwijderd. Het type daling is vaak afhankelijk van de huidige sleutelstatus zoals aangegeven door dwKeyState. Een standaardtoewijzing van keystates aan DROPEFFECT waarden is:
DROPEFFECT_NONEHet gegevensobject kan niet in dit venster worden verwijderd.DROPEFFECT_LINKvoorMK_CONTROL|MK_SHIFTMaakt een koppeling tussen het object en de bijbehorende server.DROPEFFECT_COPYvoorMK_CONTROLMaakt een kopie van het verwijderde object.DROPEFFECT_MOVEvoorMK_ALTMaakt een kopie van het verwijderde object en verwijdert u het oorspronkelijke object. Dit is meestal het standaardvervaleffect, wanneer de weergave het gegevensobject kan accepteren.
Zie het MFC Advanced Concepts-voorbeeld OCLIENTvoor meer informatie.
Opmerkingen
De standaard implementatie is om niets te doen en terug te keren DROPEFFECT_NONE.
Overschrijf deze functie om de visuele feedback van de gebruiker te geven tijdens de sleepbewerking. Omdat deze functie continu wordt aangeroepen, moet elke code in deze functie zoveel mogelijk worden geoptimaliseerd. Zie het artikel OLE-slepen en neerzetten voor meer informatie: Een doel voor neerzetten implementeren.
CView::OnDragScroll
Wordt aangeroepen door het framework voordat u aanroept OnDragEnter of OnDragOver om te bepalen of het punt zich in het schuifgebied bevindt.
virtual DROPEFFECT OnDragScroll(
DWORD dwKeyState,
CPoint point);
Parameterwaarden
dwKeyState
Bevat de status van de wijzigingssleutels. Dit is een combinatie van een willekeurig aantal van de volgende: , , , , en MK_RBUTTONMK_MBUTTON. MK_LBUTTONMK_ALTMK_SHIFTMK_CONTROL
point
Bevat de locatie van de cursor, in pixels, ten opzichte van het scherm.
Retourwaarde
Een waarde van het DROPEFFECT geïnventariseerd type, wat aangeeft welk type neerval zou optreden als de gebruiker het object op deze positie heeft verwijderd. Het type daling is meestal afhankelijk van de huidige sleutelstatus die wordt aangegeven door dwKeyState. Een standaardtoewijzing van keystates aan DROPEFFECT waarden is:
DROPEFFECT_NONEHet gegevensobject kan niet in dit venster worden verwijderd.DROPEFFECT_LINKvoorMK_CONTROL|MK_SHIFTMaakt een koppeling tussen het object en de bijbehorende server.DROPEFFECT_COPYvoorMK_CONTROLMaakt een kopie van het verwijderde object.DROPEFFECT_MOVEvoorMK_ALTMaakt een kopie van het verwijderde object en verwijdert u het oorspronkelijke object.DROPEFFECT_SCROLLGeeft aan dat een schuifbewerking voor slepen op het punt staat of zich in de doelweergave bevindt.
Zie het MFC Advanced Concepts-voorbeeld OCLIENTvoor meer informatie.
Opmerkingen
Overschrijf deze functie als u speciaal gedrag wilt opgeven voor deze gebeurtenis. De standaard implementatie schuift automatisch door vensters wanneer de cursor wordt gesleept naar het standaard schuifgebied binnen de rand van elk venster. Zie het artikel OLE-slepen en neerzetten voor meer informatie: Een doel voor neerzetten implementeren.
CView::OnDraw
Aangeroepen door het framework om een afbeelding van het document weer te geven.
virtual void OnDraw(CDC* pDC) = 0;
Parameterwaarden
pDC
Verwijst naar de apparaatcontext die moet worden gebruikt voor het weergeven van een afbeelding van het document.
Opmerkingen
Dit framework roept deze functie aan om schermweergave, afdrukken en afdrukvoorbeelden uit te voeren en geeft in elk geval een andere apparaatcontext door. Er is geen standaard implementatie.
U moet deze functie overschrijven om uw weergave van het document weer te geven. U kunt GDI-aanroepen (Graphic Device Interface) maken met behulp van het CDC object waarnaar wordt verwezen door de pDC parameter. U kunt GDI-resources, zoals pennen of lettertypen, selecteren in de apparaatcontext voordat u ze tekent en deze daarna deselecteren. Vaak kan uw tekencode apparaatonafhankelijk zijn; Dat wil gezegd, het vereist geen informatie over het type apparaat dat de afbeelding weergeeft.
Als u de tekening wilt optimaliseren, roept u de RectVisible lidfunctie van de apparaatcontext aan om erachter te komen of een bepaalde rechthoek wordt getekend. Als u onderscheid wilt maken tussen de normale schermweergave en het afdrukken, roept u de IsPrinting lidfunctie van de apparaatcontext aan.
CView::OnDrop
Aangeroepen door het framework wanneer de gebruiker een gegevensobject vrijgeeft boven een geldig neerhalend doel.
virtual BOOL OnDrop(
COleDataObject* pDataObject,
DROPEFFECT dropEffect,
CPoint point);
Parameterwaarden
pDataObject
Verwijst naar het COleDataObject neervallende doel.
dropEffect
Het neervallende effect dat de gebruiker heeft aangevraagd.
DROPEFFECT_COPYHiermee maakt u een kopie van het gegevensobject dat wordt verwijderd.DROPEFFECT_MOVEHiermee verplaatst u het gegevensobject naar de huidige muislocatie.DROPEFFECT_LINKHiermee maakt u een koppeling tussen een gegevensobject en de bijbehorende server.
point
De huidige muispositie ten opzichte van het weergaveclientgebied.
Retourwaarde
Niet-nul als de daling is geslaagd; anders 0.
Opmerkingen
De standaard implementatie doet niets en retourneert FALSE.
Overschrijf deze functie om het effect van een OLE-neerval in het clientgebied van de weergave te implementeren. Het gegevensobject kan worden onderzocht via pDataObject gegevensindelingen van klembord en gegevens die op het opgegeven punt zijn verwijderd.
Opmerking
Dit framework roept deze functie niet aan als er een onderdrukking OnDropEx is in deze weergaveklasse.
CView::OnDropEx
Aangeroepen door het framework wanneer de gebruiker een gegevensobject vrijgeeft boven een geldig neerhalend doel.
virtual DROPEFFECT OnDropEx(
COleDataObject* pDataObject,
DROPEFFECT dropDefault,
DROPEFFECT dropList,
CPoint point);
Parameterwaarden
pDataObject
Verwijst naar het COleDataObject neervallende doel.
dropDefault
Het effect dat de gebruiker heeft gekozen voor de standaardvervalbewerking op basis van de huidige sleutelstatus. Het kan zijn DROPEFFECT_NONE. Effecten voor neerzetten worden besproken in de sectie Opmerkingen.
dropList
Een lijst met de drop effects die door de drop source worden ondersteund. Waarden voor neerzetten kunnen worden gecombineerd met behulp van de bitsgewijze OR( |)-bewerking. Effecten voor neerzetten worden besproken in de sectie Opmerkingen.
point
De huidige muispositie ten opzichte van het weergaveclientgebied.
Retourwaarde
Het neervallende effect dat het gevolg was van de droppoging op de locatie die is opgegeven door point. Dit moet een van de waarden zijn die worden aangegeven door dropEffectList. Effecten voor neerzetten worden besproken in de sectie Opmerkingen.
Opmerkingen
De standaard implementatie is niets te doen en een dummywaarde (-1) te retourneren om aan te geven dat het framework de OnDrop handler moet aanroepen.
Overschrijf deze functie om het effect van een slepen en neerzetten met de rechtermuisknop te implementeren. Met slepen en neerzetten met de rechtermuisknop wordt meestal een menu met opties weergegeven wanneer de rechtermuisknop wordt losgelaten.
Uw onderdrukking van OnDropEx moet een query uitvoeren op de rechtermuisknop. U kunt de status van de rechtermuisknop aanroepen GetKeyState of opslaan vanuit uw OnDragEnter handler.
Als de rechtermuisknop niet beschikbaar is, moet uw onderdrukking een pop-upmenu weergeven dat ondersteuning biedt voor de drop effects door de vervolgkeuzelijst.
Onderzoek
dropListom de drop-effecten te bepalen die worden ondersteund door de neerhalende bron. Schakel alleen deze acties in het pop-upmenu in.Gebruiken
SetMenuDefaultItemom de standaardactie in te stellen opdropDefaultbasis van .Voer ten slotte de actie uit die wordt aangegeven door de gebruikersselectie in het pop-upmenu.
Als de rechtermuisknop niet omlaag is, moet uw onderdrukking dit verwerken als een standaard drop request. Gebruik het drop-effect dat is opgegeven in
dropDefault. U kunt ook de dummywaarde (-1) retourneren om aan te geven datOnDropdeze neervalbewerking wordt verwerkt.
Gebruik pDataObject deze indeling om de indeling van klembordgegevens COleDataObject en gegevens te onderzoeken die op het opgegeven punt zijn verwijderd.
Met neervaleffecten wordt de actie beschreven die is gekoppeld aan een neervalbewerking. Zie de volgende lijst met drop effects:
DROPEFFECT_NONEEen druppel zou niet zijn toegestaan.DROPEFFECT_COPYEr wordt een kopieerbewerking uitgevoerd.DROPEFFECT_MOVEEr wordt een verplaatsingsbewerking uitgevoerd.DROPEFFECT_LINKEr wordt een koppeling van de verwijderde gegevens naar de oorspronkelijke gegevens tot stand gebracht.DROPEFFECT_SCROLLGeeft aan dat een sleepsrolbewerking op het punt staat of zich in het doel bevindt.
Zie de Windows SDK en CMenu::GetSafeHmenu dit volume voor meer informatie over het instellen van de standaardmenuopdrachtSetMenuDefaultItem.
CView::OnEndPrinting
Aangeroepen door het framework nadat een document is afgedrukt of een voorbeeld ervan is bekeken.
virtual void OnEndPrinting(
CDC* pDC,
CPrintInfo* pInfo);
Parameterwaarden
pDC
Verwijst naar de context van het printerapparaat.
pInfo
Verwijst naar een CPrintInfo structuur die de huidige afdruktaak beschrijft.
Opmerkingen
De standaard implementatie van deze functie doet niets. Overschrijf deze functie om alle GDI-resources die u hebt toegewezen in de OnBeginPrinting lidfunctie vrij te maken.
CView::OnEndPrintPreview
Aangeroepen door het framework wanneer de gebruiker de afdrukvoorbeeldmodus verlaat.
virtual void OnEndPrintPreview(
CDC* pDC,
CPrintInfo* pInfo,
POINT point,
CPreviewView* pView);
Parameterwaarden
pDC
Verwijst naar de context van het printerapparaat.
pInfo
Verwijst naar een CPrintInfo structuur die de huidige afdruktaak beschrijft.
point
Hiermee geeft u het punt op de pagina die voor het laatst is weergegeven in de preview-modus.
pView
Verwijst naar het weergaveobject dat wordt gebruikt voor voorbeeldweergave.
Opmerkingen
Met de standaard implementatie van deze functie wordt de OnEndPrinting lidfunctie aangeroepen en wordt het hoofdframevenster hersteld naar de status waarin deze zich bevond voordat het afdrukvoorbeeld begon. Overschrijf deze functie om speciale verwerking uit te voeren wanneer de preview-modus wordt beëindigd. Als u bijvoorbeeld de positie van de gebruiker in het document wilt behouden wanneer u overschakelt van de voorbeeldmodus naar de normale weergavemodus, kunt u schuiven naar de positie die wordt beschreven door de point parameter en het m_nCurPage lid van de CPrintInfo structuur waarnaar de pInfo parameter verwijst.
Roep altijd de basisklasseversie van OnEndPrintPreview uw onderdrukking aan, meestal aan het einde van de functie.
CView::OnInitialUpdate
Aangeroepen door het framework nadat de weergave voor het eerst aan het document is gekoppeld, maar voordat de weergave in eerste instantie wordt weergegeven.
virtual void OnInitialUpdate();
Opmerkingen
Met de standaard implementatie van deze functie wordt de OnUpdate lidfunctie aangeroepen zonder hintgegevens (dat wil gezegd, met behulp van de standaardwaarden van 0 voor de lHint parameter en NULL voor de pHint parameter). Overschrijf deze functie om eenmalige initialisatie uit te voeren waarvoor informatie over het document is vereist. Als uw toepassing bijvoorbeeld documenten met een vaste grootte heeft, kunt u deze functie gebruiken om de schuiflimieten van een weergave te initialiseren op basis van de documentgrootte. Als uw toepassing documenten van variabele grootte ondersteunt, kunt u de OnUpdate schuiflimieten bijwerken telkens wanneer het document wordt gewijzigd.
CView::OnPrepareDC
Aangeroepen door het framework voordat de OnDraw lidfunctie wordt aangeroepen voor schermweergave en voordat de OnPrint lidfunctie wordt aangeroepen voor elke pagina tijdens het afdrukken of het afdrukvoorbeeld.
virtual void OnPrepareDC(
CDC* pDC,
CPrintInfo* pInfo = NULL);
Parameterwaarden
pDC
Verwijst naar de apparaatcontext die moet worden gebruikt voor het weergeven van een afbeelding van het document.
pInfo
Verwijst naar een CPrintInfo structuur waarin de huidige afdruktaak wordt beschreven als OnPrepareDC er een afdrukvoorbeeld wordt aangeroepen. Het m_nCurPage lid geeft aan dat de pagina moet worden afgedrukt. Deze parameter is NULL als OnPrepareDC deze wordt aangeroepen voor schermweergave.
Opmerkingen
De standaard implementatie van deze functie doet niets als de functie wordt aangeroepen voor schermweergave. Deze functie wordt echter overschreven in afgeleide klassen, zoals CScrollViewhet aanpassen van kenmerken van de apparaatcontext. Daarom moet u altijd de implementatie van de basisklasse aanroepen aan het begin van de onderdrukking.
Als de functie wordt aangeroepen voor afdrukken, onderzoekt de standaard implementatie de paginagegevens die zijn opgeslagen in de pInfo parameter. Als de lengte van het document niet is opgegeven, OnPrepareDC wordt ervan uitgegaan dat het document één pagina lang is en de afdruklus wordt gestopt nadat één pagina is afgedrukt. De functie stopt de afdruklus door het m_bContinuePrinting lid van de structuur in te stellen op FALSE.
Overschrijven OnPrepareDC om een van de volgende redenen:
Kenmerken van de apparaatcontext aanpassen als dat nodig is voor de opgegeven pagina. Als u bijvoorbeeld de toewijzingsmodus of andere kenmerken van de apparaatcontext wilt instellen, doet u dit in deze functie.
Afdruktijdpaginering uitvoeren. Normaal gesproken geeft u de lengte van het document op wanneer het afdrukken begint, met behulp van de
OnPreparePrintinglidfunctie. Als u echter niet van tevoren weet hoe lang het document is (bijvoorbeeld wanneer u een niet-bepaald aantal records uit een database afdrukt), overschrijvenOnPrepareDCom te testen op het einde van het document terwijl het wordt afgedrukt. Als het document niet meer moet worden afgedrukt, stelt u hetm_bContinuePrintinglid van deCPrintInfostructuur in opFALSE.Escapecodes naar de printer verzenden op paginabasis. Als u escapecodes wilt verzenden,
OnPrepareDCroept u deEscapelidfunctie van depDCparameter aan.
Roep de basisklasseversie van OnPrepareDC aan het begin van de onderdrukking aan.
Example
void CMyView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrepareDC(pDC, pInfo);
// If we are printing, set the mapmode and the window
// extent properly, then set viewport extent. Use the
// SetViewportOrg member function in the CDC class to
// move the viewport origin to the center of the view.
if (pDC->IsPrinting()) // Is the DC a printer DC.
{
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_ISOTROPIC);
CSize ptOldWinExt = pDC->SetWindowExt(1000, 1000);
ASSERT(ptOldWinExt.cx != 0 && ptOldWinExt.cy != 0);
CSize ptOldViewportExt = pDC->SetViewportExt(rect.Width(), -rect.Height());
ASSERT(ptOldViewportExt.cx != 0 && ptOldViewportExt.cy != 0);
CPoint ptOldOrigin = pDC->SetViewportOrg(rect.Width() / 2, rect.Height() / 2);
}
}
CView::OnPreparePrinting
Aangeroepen door het framework voordat een document wordt afgedrukt of als voorbeeld wordt weergegeven.
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
Parameterwaarden
pInfo
Verwijst naar een CPrintInfo structuur die de huidige afdruktaak beschrijft.
Retourwaarde
Niet-nul om te beginnen met afdrukken; 0 als de afdruktaak is geannuleerd.
Opmerkingen
De standaard implementatie doet niets.
U moet deze functie overschrijven om afdrukvoorbeelden en afdrukvoorbeelden in te schakelen. Roep de DoPreparePrinting lidfunctie aan, geef deze door aan de pInfo parameter en retourneer vervolgens de retourwaarde. DoPreparePrinting Het dialoogvenster Afdrukken wordt weergegeven en er wordt een printerapparaatcontext gemaakt. Als u het dialoogvenster Afdrukken wilt initialiseren met andere waarden dan de standaardwaarden, wijst u waarden toe aan de leden van pInfo. Als u bijvoorbeeld de lengte van het document weet, geeft u de waarde door aan de functie SetMaxPage-lid van pInfo voordat u aanroept DoPreparePrinting. Deze waarde wordt weergegeven in het vak Aan: in het gedeelte Bereik van het dialoogvenster Afdrukken.
DoPreparePrinting het dialoogvenster Afdrukken voor een voorbeeldtaak wordt niet weergegeven. Als u het dialoogvenster Afdrukken voor een afdruktaak wilt overslaan, controleert u of het m_bPreview lid pInfo is FALSE en stelt u dit TRUE in op voordat u het doorgeeft aan DoPreparePrinting; zet u het daarna opnieuw in FALSE .
Als u initialisaties wilt uitvoeren die toegang vereisen tot het CDC object dat de context van het printerapparaat vertegenwoordigt (bijvoorbeeld als u het paginaformaat moet kennen voordat u de lengte van het document opgeeft), overschrijft u de OnBeginPrinting lidfunctie.
Als u de waarde van de m_nNumPreviewPages parameter of m_strPageDesc leden van de pInfo parameter wilt instellen, doet u dit na het aanroepen DoPreparePrinting. De DoPreparePrinting lidfunctie stelt m_nNumPreviewPages de waarde in die in de toepassing is gevonden. INI-bestand en stelt deze m_strPageDesc in op de standaardwaarde.
Example
Overschrijven OnPreparePrinting en aanroepen DoPreparePrinting vanuit de onderdrukking, zodat in het framework een dialoogvenster Afdrukken wordt weergegeven en een printerdomeincontroller voor u wordt gemaakt.
BOOL CMyEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
return CEditView::DoPreparePrinting(pInfo);
}
Als u weet hoeveel pagina's het document bevat, stelt u de maximumpagina in OnPreparePrinting voordat u aanroept DoPreparePrinting. In het framework wordt het maximum paginanummer weergegeven in het vak 'aan' van het dialoogvenster Afdrukken.
BOOL CExampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
//The document has 2 pages.
pInfo->SetMaxPage(2);
return CView::DoPreparePrinting(pInfo);
}
CView::OnPrint
Wordt aangeroepen door het framework om een pagina van het document af te drukken of te bekijken.
virtual void OnPrint(
CDC* pDC,
CPrintInfo* pInfo);
Parameterwaarden
pDC
Verwijst naar de context van het printerapparaat.
pInfo
Verwijst naar een CPrintInfo structuur die de huidige afdruktaak beschrijft.
Opmerkingen
Voor elke pagina die wordt afgedrukt, roept het framework deze functie onmiddellijk aan nadat de OnPrepareDC lidfunctie is aangeroepen. De pagina die wordt afgedrukt, wordt opgegeven door het m_nCurPage lid van de CPrintInfo structuur waarnaar pInfo wordt verwezen. De standaard implementatie roept de OnDraw lidfunctie aan en geeft deze door aan de context van het printerapparaat.
Overschrijf deze functie om een van de volgende redenen:
Afdrukken van documenten met meerdere pagina's toestaan. Alleen het gedeelte van het document weergeven dat overeenkomt met de pagina die momenteel wordt afgedrukt. Als u
OnDrawde weergave gebruikt, kunt u de origin van de viewport aanpassen zodat alleen het juiste gedeelte van het document wordt afgedrukt.Als u wilt dat de afgedrukte afbeelding er anders uitziet dan de schermafbeelding (dat wil gezegd, als uw toepassing niet WYSIWYG is). In plaats van de context van het printerapparaat door te
OnDrawgeven, gebruikt u de apparaatcontext om een afbeelding weer te geven met kenmerken die niet op het scherm worden weergegeven.Als u GDI-resources nodig hebt om af te drukken die u niet gebruikt voor schermweergave, selecteert u deze in de apparaatcontext voordat u ze tekent en deselecteert u ze daarna. Deze GDI-resources moeten worden toegewezen in
OnBeginPrintingen vrijgegeven inOnEndPrinting.Kop- of voetteksten implementeren. U kunt de rendering nog steeds gebruiken
OnDrawdoor het gebied te beperken waarop het kan afdrukken.
Houd er rekening mee dat het m_rectDraw lid van de pInfo parameter het afdrukbare gebied van de pagina in logische eenheden beschrijft.
Niet inbellen OnPrepareDC in uw onderdrukking van OnPrint; het framework roept automatisch aan voordat u aanroept OnPrepareDCOnPrint.
Example
Hier volgt een skelet voor een overschreven OnPrint functie:
void CMyView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
UNREFERENCED_PARAMETER(pInfo);
// Print headers and/or footers, if desired.
// Find portion of document corresponding to pInfo->m_nCurPage.
OnDraw(pDC);
}
Zie voor een ander voorbeeld CRichEditView::PrintInsideRect.
CView::OnScroll
Wordt aangeroepen door het framework om te bepalen of schuiven mogelijk is.
virtual BOOL OnScroll(
UINT nScrollCode,
UINT nPos,
BOOL bDoScroll = TRUE);
Parameterwaarden
nScrollCode
Een schuifbalkcode die de schuifaanvraag van de gebruiker aangeeft. Deze parameter bestaat uit twee delen: een byte met een lage volgorde, die bepaalt welk type scrollen horizontaal plaatsvindt en een byte met hoge volgorde, waarmee het type schuiven verticaal wordt bepaald:
SB_BOTTOMSchuift naar beneden.SB_LINEDOWNSchuift één regel omlaag.SB_LINEUPSchuift één regel omhoog.SB_PAGEDOWNSchuift één pagina omlaag.SB_PAGEUPSchuift één pagina omhoog.SB_THUMBTRACKSleept het schuifvak naar de opgegeven positie. De huidige positie is opgegeven innPos.SB_TOPSchuift naar boven.
nPos
Bevat de huidige positie van het schuifvak als de schuifbalkcode is SB_THUMBTRACK; anders wordt deze niet gebruikt. Afhankelijk van het eerste schuifbereik nPos kan dit negatief zijn en indien nodig worden omgezet in een int .
bDoScroll
Bepaalt of u de opgegeven schuifactie daadwerkelijk moet uitvoeren. Als TRUE, dan moet schuiven plaatsvinden; als FALSE, dan moet schuiven niet plaatsvinden.
Retourwaarde
Als bDoScroll dat het is TRUE en de weergave daadwerkelijk is gescrold, retourneer dan niet nul; anders 0. Als bDoScroll dat het is FALSE, retourneer dan de waarde die u zou hebben geretourneerd, bDoScrollTRUEook al hoeft u niet daadwerkelijk te schuiven.
Opmerkingen
In één geval wordt deze functie aangeroepen door het framework dat bDoScroll is ingesteld op TRUE wanneer de weergave een schuifbalkbericht ontvangt. In dit geval moet u in feite door de weergave schuiven. In het andere geval wordt deze functie aangeroepen met bDoScroll ingesteld op FALSE wanneer een OLE-item in eerste instantie wordt gesleept naar het gebied voor automatisch schuiven van een doel voordat het schuiven daadwerkelijk plaatsvindt. In dit geval moet u niet daadwerkelijk door de weergave schuiven.
CView::OnScrollBy
Aangeroepen door het framework wanneer de gebruiker een gebied buiten de huidige weergave van het document bekijkt, door een OLE-item te slepen tegen de huidige randen van de weergave of door de verticale of horizontale schuifbalken te bewerken.
virtual BOOL OnScrollBy(
CSize sizeScroll,
BOOL bDoScroll = TRUE);
Parameterwaarden
sizeScroll
Het aantal pixels is horizontaal en verticaal geschoven.
bDoScroll
Bepaalt of het schuiven van de weergave plaatsvindt. Als TRUE, dan scrollen vindt plaats; als FALSE, dan schuiven niet plaatsvindt.
Retourwaarde
Niet-nul als de weergave kon worden gescrold; anders 0.
Opmerkingen
In afgeleide klassen controleert deze methode of de weergave schuifbaar is in de richting die de gebruiker heeft aangevraagd en werkt deze indien nodig de nieuwe regio bij. Deze functie wordt automatisch aangeroepen door CWnd::OnHScroll en CWnd::OnVScroll om de daadwerkelijke schuifaanvraag uit te voeren.
De standaard implementatie van deze methode wijzigt de weergave niet, maar als deze niet wordt aangeroepen, schuift de weergave niet in een CScrollView-afgeleide klasse.
Als de documentbreedte of -hoogte groter is dan 32767 pixels, mislukt het schuiven in de afgelopen 32767 omdat OnScrollBy het wordt aangeroepen met een ongeldig sizeScroll argument.
CView::OnUpdate
Aangeroepen door het framework nadat het document van de weergave is gewijzigd; deze functie wordt aangeroepen CDocument::UpdateAllViews door en stelt de weergave in staat om de weergave bij te werken om deze wijzigingen weer te geven.
virtual void OnUpdate(
CView* pSender,
LPARAM lHint,
CObject* pHint);
Parameterwaarden
pSender
Verwijst naar de weergave die het document heeft gewijzigd of NULL als alle weergaven moeten worden bijgewerkt.
lHint
Bevat informatie over de wijzigingen.
pHint
Verwijst naar een object met informatie over de wijzigingen.
Opmerkingen
Het wordt ook wel de standaard implementatie van OnInitialUpdate. De standaard implementatie ongeldig het gehele clientgebied, waarmee het wordt gemarkeerd voor schilderen wanneer het volgende WM_PAINT bericht wordt ontvangen. Overschrijf deze functie als u alleen de regio's wilt bijwerken die zijn toegewezen aan de gewijzigde gedeelten van het document. Hiervoor moet u informatie doorgeven over de wijzigingen met behulp van de hintparameters.
Als u wilt gebruiken lHint, definieert u speciale hintwaarden, meestal een bitmasker of een geïnventariseerd type en laat u het document een van deze waarden doorgeven. Als u een hintklasse wilt gebruiken pHint, moet u een hintklasse afleiden van CObject en het document een aanwijzer laten doorgeven aan een hintobject. Wanneer u OnUpdatedeze functie overschrijft, gebruikt u de CObject::IsKindOf lidfunctie om het runtime-type van het hintobject te bepalen.
Normaal gesproken moet u geen tekening rechtstreeks vanuit OnUpdate. Bepaal in plaats daarvan de rechthoek die in apparaatcoördinaten beschrijft, het gebied dat moet worden bijgewerkt; geef deze rechthoek door aan CWnd::InvalidateRect. Dit zorgt ervoor dat het schilderen plaatsvindt wanneer een WM_PAINT bericht de volgende keer wordt ontvangen.
Als lHint dit 0 is en pHint is NULL, heeft het document een algemene updatemelding verzonden. Als een weergave een algemene updatemelding ontvangt of als deze de hints niet kan decoderen, moet het gehele clientgebied ongeldig worden gemaakt.
Zie ook
MFC-voorbeeld MDIDOCVW
CWnd klasse
Hiërarchiegrafiek
CWnd klasse
CFrameWnd klasse
CSplitterWnd klasse
CDC klasse
CDocTemplate klasse
CDocument klasse