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.
Hiermee kunt u een item op verschillende manieren weergeven, verplaatsen en het formaat ervan wijzigen.
Syntaxis
class CRectTracker
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CRectTracker::CRectTracker | Maakt een CRectTracker object. |
Openbare methoden
| Naam | Description |
|---|---|
| CRectTracker::AdjustRect | Aangeroepen wanneer het formaat van de rechthoek wordt gewijzigd. |
| CRectTracker::D raw | Geeft de rechthoek weer. |
| CRectTracker::D rawTrackerRect | Aangeroepen bij het tekenen van de rand van een CRectTracker object. |
| CRectTracker::GetHandleMask | Wordt aangeroepen om het masker van de formaatgrepen van een CRectTracker item op te halen. |
| CRectTracker::GetTrueRect | Retourneert de breedte en hoogte van rechthoeken, inclusief formaatgrepen. |
| CRectTracker::HitTest | Retourneert de huidige positie van de cursor die is gerelateerd aan het CRectTracker object. |
| CRectTracker::NormalizeHit | Normaliseert een hit-testcode. |
| CRectTracker::OnChangedRect | Aangeroepen wanneer de rechthoek is gewijzigd of verplaatst. |
| CRectTracker::SetCursor | Hiermee stelt u de cursor in, afhankelijk van de positie van de rechthoek. |
| CRectTracker::Track | Hiermee kan de gebruiker de rechthoek bewerken. |
| CRectTracker::TrackRubberBand | Hiermee kan de gebruiker de selectie 'rubber-band' maken. |
Leden van openbare gegevens
| Naam | Description |
|---|---|
| CRectTracker::m_nHandleSize | Bepaalt de grootte van formaatgrepen. |
| CRectTracker::m_nStyle | Huidige stijl(en) van de tracker. |
| CRectTracker::m_rect | Huidige positie (in pixels) van de rechthoek. |
| CRectTracker::m_sizeMin | Bepaalt de minimale breedte en hoogte van de rechthoek. |
Opmerkingen
CRectTracker heeft geen basisklasse.
Hoewel de CRectTracker klasse is ontworpen om de gebruiker te laten communiceren met OLE-items met behulp van een grafische interface, is het gebruik ervan niet beperkt tot toepassingen met OLE-functionaliteit. Het kan overal worden gebruikt waar een dergelijke gebruikersinterface is vereist.
CRectTracker randen kunnen ononderbroken of stippellijnen zijn. Het item kan een uitgebroede rand krijgen of overlappen met een uitgebroed patroon om verschillende statussen van het item aan te geven. U kunt acht formaatgrepen aan de buitenkant of de binnenrand van het item plaatsen. (Zie GetHandleMask voor een uitleg van de formaatgrepen.) Ten slotte CRectTracker kunt u de afdrukstand van een item wijzigen tijdens het wijzigen van het formaat.
Als u wilt gebruiken CRectTracker, maakt u een CRectTracker object en geeft u op welke weergavestatussen worden geïnitialiseerd. Vervolgens kunt u deze interface gebruiken om de gebruikersvisual feedback te geven over de huidige status van het OLE-item dat aan het CRectTracker object is gekoppeld.
Zie het artikel Trackers voor meer informatie over het gebruikCRectTracker.
Overnamehiërarchie
CRectTracker
Requirements
Koptekst: afxext.h
CRectTracker::AdjustRect
Aangeroepen door het framework wanneer de rechthoek voor het bijhouden van het formaat wordt gewijzigd met behulp van een formaatgreep.
virtual void AdjustRect(
int nHandle,
LPRECT lpRect);
Parameterwaarden
nHandle
Index van gebruikte ingang.
lpRect
Aanwijzer naar de huidige grootte van de rechthoek. (De grootte van een rechthoek wordt bepaald door de hoogte en breedte.)
Opmerkingen
Met het standaardgedrag van deze functie kan de afdrukstand van de rechthoek alleen worden gewijzigd wanneer Track en TrackRubberBand worden aangeroepen met omkering toegestaan.
Overschrijf deze functie om de aanpassing van de rechthoek voor het bijhouden te beheren tijdens een sleepbewerking. Een methode is het aanpassen van de coördinaten die zijn opgegeven door lpRect voordat u terugkeert.
Speciale functies die niet rechtstreeks worden ondersteund door CRectTracker, zoals snap-to-grid of keep-aspect-ratio, kunnen worden geïmplementeerd door deze functie te overschrijven.
CRectTracker::CRectTracker
Hiermee maakt en initialiseert u een CRectTracker object.
CRectTracker();
CRectTracker(
LPCRECT lpSrcRect,
UINT nStyle);
Parameterwaarden
lpSrcRect
De coördinaten van het rechthoekobject.
nStyle
Hiermee geeft u de stijl van het CRectTracker object. De volgende stijlen worden ondersteund:
CRectTracker::solidLineGebruik een ononderbroken lijn voor de rechthoekrand.CRectTracker::dottedLineGebruik een stippellijn voor de rechthoekrand.CRectTracker::hatchedBorderGebruik een uitgebroed patroon voor de rechthoekrand.CRectTracker::resizeInsideFormaatgrepen in de rechthoek wijzigen.CRectTracker::resizeOutsideFormaatgrepen buiten de rechthoek wijzigen.CRectTracker::hatchInsideHet uitgebroed patroon bedekt de hele rechthoek.
Opmerkingen
De standaardconstructor initialiseert het CRectTracker object met de waarden van lpSrcRect en initialiseert andere grootten naar systeemstandaarden. Als het object zonder parameters wordt gemaakt, worden de m_rect en m_nStyle gegevensleden niet geïnitialiseerd.
CRectTracker::D raw
Roep deze functie aan om de buitenste lijnen en het binnenste gebied van de rechthoek te tekenen.
void Draw(CDC* pDC) const;
Parameterwaarden
Pdc
Aanwijzer naar de apparaatcontext waarop u wilt tekenen.
Opmerkingen
De stijl van de tracker bepaalt hoe de tekening wordt uitgevoerd. Zie de constructor voor CRectTracker meer informatie over de beschikbare stijlen.
CRectTracker::D rawTrackerRect
Aangeroepen door het framework wanneer de positie van de tracker is gewijzigd in de Track functie of TrackRubberBand lid.
virtual void DrawTrackerRect(
LPCRECT lpRect,
CWnd* pWndClipTo,
CDC* pDC,
CWnd* pWnd);
Parameterwaarden
lpRect
Aanwijzer naar de RECT rechthoek die u wilt tekenen.
pWndClipTo
Aanwijzer naar het venster dat moet worden gebruikt bij het knippen van de rechthoek.
Pdc
Aanwijzer naar de apparaatcontext waarop u wilt tekenen.
pWnd
Aanwijzer naar het venster waarop de tekening plaatsvindt.
Opmerkingen
Met de standaard implementatie wordt een aanroep uitgevoerd naar CDC::DrawFocusRect, waarmee een gestippelde rechthoek wordt gemaakt.
Overschrijf deze functie om verschillende feedback te geven tijdens de traceringsbewerking.
CRectTracker::GetHandleMask
In het framework wordt deze lidfunctie aangeroepen om het masker op te halen voor de formaatgrepen van een rechthoek.
virtual UINT GetHandleMask() const;
Retourwaarde
Het masker van de formaatgrepen van een CRectTracker item.
Opmerkingen
De formaatgrepen worden weergegeven aan de zijkanten en hoeken van de rechthoek en stellen de gebruiker in staat om de vorm en grootte van de rechthoek te bepalen.
Een rechthoek heeft 8 formaatgrepen genummerd 0-7. Elke formaatgreep wordt vertegenwoordigd door een beetje in het masker; de waarde van die bit is 2^ n, waarbij n het formaatgreepnummer is. Bits 0-3 komen overeen met de hoekgroottegrepen, beginnend bij de linkerbovenhoek met de klok mee. Bits 4-7 komen overeen met de formaatgrepen aan de zijkant vanaf de bovenkant met de klok mee. In de volgende afbeelding ziet u de formaatgrepen van een rechthoek en de bijbehorende formaatgreepnummers en -waarden:
De standaard implementatie van GetHandleMask retourneert het masker van de bits, zodat de formaatgrepen worden weergegeven. Als de enkele bit is ingeschakeld, wordt de bijbehorende formaatgreep getekend.
Overschrijf deze lidfunctie om de aangegeven formaatgrepen te verbergen of weer te geven.
CRectTracker::GetTrueRect
Roep deze functie aan om de coördinaten van de rechthoek op te halen.
void GetTrueRect(LPRECT lpTrueRect) const;
Parameterwaarden
lpTrueRect
Wijs de RECT structuur aan die de apparaatcoördinaten van het CRectTracker object bevat.
Opmerkingen
De afmetingen van de rechthoek bevatten de hoogte en breedte van eventuele formaatgrepen die zich op de buitenrand bevinden. Bij terugkeer is lpTrueRect altijd een genormaliseerde rechthoek in apparaatcoördinaten.
CRectTracker::HitTest
Roep deze functie aan om erachter te komen of de gebruiker een formaatgreep heeft opgehaald.
int HitTest(CPoint point) const;
Parameterwaarden
Punt
Het punt, in apparaatcoördinaten, om te testen.
Retourwaarde
De geretourneerde waarde is gebaseerd op het geïnventariseerd type CRectTracker::TrackerHit en kan een van de volgende waarden hebben:
CRectTracker::hitNothing-1CRectTracker::hitTopLeft0CRectTracker::hitTopRight1CRectTracker::hitBottomRight2CRectTracker::hitBottomLeft3CRectTracker::hitTop4CRectTracker::hitRight5CRectTracker::hitBottom6CRectTracker::hitLeft7CRectTracker::hitMiddle8
CRectTracker::m_nHandleSize
De grootte, in pixels, van de CRectTracker formaatgrepen.
int m_nHandleSize;
Opmerkingen
Geïnitialiseerd met de standaardsysteemwaarde.
CRectTracker::m_rect
De huidige positie van de rechthoek in clientcoördinaten (pixels).
CRect m_rect;
CRectTracker::m_sizeMin
De minimale grootte van de rechthoek.
CSize m_sizeMin;
Opmerkingen
Zowel standaardwaarden als cxcy, worden berekend op basis van de standaardsysteemwaarde voor de randbreedte. Dit gegevenslid wordt alleen gebruikt door de AdjustRect lidfunctie.
CRectTracker::m_nStyle
Huidige stijl van de rechthoek.
UINT m_nStyle;
Opmerkingen
Zie CRectTracker::CRectTracker voor een lijst met mogelijke stijlen.
CRectTracker::NormalizeHit
Roep deze functie aan om een mogelijk omgekeerde ingang te converteren.
int NormalizeHit(int nHandle) const;
Parameterwaarden
nHandle
Afhandelen die door de gebruiker is geselecteerd.
Retourwaarde
De index van de genormaliseerde ingang.
Opmerkingen
Wanneer CRectTracker::Track of CRectTracker::TrackRubberBand wordt aangeroepen met omkering, is het mogelijk dat de rechthoek wordt omgekeerd op de x-as, de y-as of beide. Als dit gebeurt, HitTest worden er ingangen geretourneerd die ook worden omgekeerd met betrekking tot de rechthoek. Dit is ongepast voor het tekenen van cursorfeedback omdat de feedback afhankelijk is van de schermpositie van de rechthoek, niet het gedeelte van de gegevensstructuur van de rechthoek die wordt gewijzigd.
CRectTracker::OnChangedRect
Aangeroepen door het framework wanneer de rechthoek van de tracker is gewijzigd tijdens een aanroep naar Track.
virtual void OnChangedRect(const CRect& rectOld);
Parameterwaarden
rectOld
Bevat de oude apparaatcoördinaten van het CRectTracker object.
Opmerkingen
Op het moment dat deze functie wordt aangeroepen, is alle feedback waarmee DrawTrackerRect wordt getekend, verwijderd. De standaard implementatie van deze functie doet niets.
Overschrijf deze functie wanneer u acties wilt uitvoeren nadat het formaat van de rechthoek is gewijzigd.
CRectTracker::SetCursor
Roep deze functie aan om de cursorshape te wijzigen terwijl deze zich boven het gebied van het CRectTracker object bevindt.
BOOL SetCursor(
CWnd* pWnd,
UINT nHitTest) const;
Parameterwaarden
pWnd
Verwijst naar het venster dat momenteel de cursor bevat.
nHitTest
Resultaten van de vorige hittest, uit het WM_SETCURSOR bericht.
Retourwaarde
Nonzero als de vorige hit over de rechthoek van de tracker ging; anders 0.
Opmerkingen
Roep deze functie aan vanuit de functie van het venster dat het WM_SETCURSOR bericht verwerkt (meestal OnSetCursor).
CRectTracker::Track
Roep deze functie aan om de gebruikersinterface weer te geven voor het wijzigen van het formaat van de rechthoek.
BOOL Track(
CWnd* pWnd,
CPoint point,
BOOL bAllowInvert = FALSE,
CWnd* pWndClipTo = NULL);
Parameterwaarden
pWnd
Het vensterobject dat de rechthoek bevat.
Punt
Apparaatcoördinaten van de huidige muispositie ten opzichte van het clientgebied.
bAllowInvert
Indien WAAR, kan de rechthoek worden omgekeerd langs de x-as of y-as; anders ONWAAR.
pWndClipTo
Het venster waarnaar tekenbewerkingen worden geknipt. Als NULL, wordt pWnd gebruikt als de rechthoek voor knippen.
Retourwaarde
Als de ESC-toets wordt ingedrukt, wordt het traceringsproces gestopt, wordt de rechthoek die is opgeslagen in de tracker niet gewijzigd en wordt 0 geretourneerd. Als de wijziging wordt doorgevoerd door de muis te verplaatsen en de linkermuisknop los te laten, wordt de nieuwe positie en/of grootte vastgelegd in de rechthoek van de tracker en wordt niet-nul geretourneerd.
Opmerkingen
Dit wordt meestal aangeroepen vanuit de functie van uw toepassing die het WM_LBUTTONDOWN bericht verwerkt (meestal OnLButtonDown).
Met deze functie wordt de muis vastgelegd totdat de gebruiker de linkermuisknop loslaat, op esc drukt of op de rechtermuisknop drukt. Wanneer de gebruiker de muisaanwijzer verplaatst, wordt de feedback bijgewerkt door te bellen DrawTrackerRect en OnChangedRect.
Als bAllowInvert TRUE is, kan de rechthoek voor het bijhouden worden omgekeerd op de x-as of y-as.
CRectTracker::TrackRubberBand
Roep deze functie aan om rubber-bandselectie uit te voeren.
BOOL TrackRubberBand(
CWnd* pWnd,
CPoint point,
BOOL bAllowInvert = TRUE);
Parameterwaarden
pWnd
Het vensterobject dat de rechthoek bevat.
Punt
Apparaatcoördinaten van de huidige muispositie ten opzichte van het clientgebied.
bAllowInvert
Indien WAAR, kan de rechthoek worden omgekeerd langs de x-as of y-as; anders ONWAAR.
Retourwaarde
Niet-nul als de muis is verplaatst en de rechthoek niet leeg is; anders 0.
Opmerkingen
Het wordt meestal aangeroepen vanuit de functie van uw toepassing die het WM_LBUTTONDOWN bericht (meestal OnLButtonDown) verwerkt.
Met deze functie wordt de muis vastgelegd totdat de gebruiker de linkermuisknop loslaat, op esc drukt of op de rechtermuisknop drukt. Wanneer de gebruiker de muisaanwijzer verplaatst, wordt de feedback bijgewerkt door te bellen DrawTrackerRect en OnChangedRect.
Bijhouden wordt uitgevoerd met een rubber-band-type selectie uit de rechterbenedenhoek. Als omkering is toegestaan, kan de rechthoek worden aangepast door omhoog en naar links of omlaag en naar rechts te slepen.
Zie ook
MFC Sample TRACKER
MFC-voorbeeldTEKENING
Hiërarchiegrafiek
Klasse COleResizeBar
CRect-klasse