Megosztás:


CDC osztály

Az eszközkörnyezeti objektumok osztályát határozza meg.

Syntax

class CDC : public CObject

Members

Public Constructors

Name Description
CDC::CDC Egy CDC objektumot hoz létre.

Public Methods

Name Description
CDC::AbortDoc Leállítja az aktuális nyomtatási feladatot, és töröl mindent, amit az alkalmazás írt az eszközre a StartDoc tagfüggvény utolsó hívása óta.
CDC::AbortPath Bezárja és elveti az eszközkörnyezetben lévő elérési utakat.
CDC::AddMetaFileComment Másolja a megjegyzést egy pufferből egy megadott továbbfejlesztett formátumú metafájlba.
CDC::AlphaBlend Áttetsző vagy félig transzparens képpontokkal rendelkező bitképeket jelenít meg.
CDC::AngleArc Rajzol egy vonalszegmenst és egy ívet, és az aktuális pozíciót az ív végpontjára helyezi.
CDC::Arc Egy háromliptikus ívet rajzol.
CDC::ArcTo Egy háromliptikus ívet rajzol. Ez a függvény hasonló Arcahhoz, kivéve, hogy az aktuális pozíció frissül.
CDC::Attach Windows-eszközkörnyezetet csatol ehhez az CDC objektumhoz.
CDC::BeginPath Megnyílik egy elérésiút-zárójel az eszközkörnyezetben.
CDC::BitBlt Bitkép másolása egy megadott eszközkörnyezetből.
CDC::Chord Von egy húrt (egy három pont és egy vonalszegmens metszete által határolt zárt alakzatot).
CDC::CloseFigure Bezár egy nyitott ábrát egy elérési úton.
CDC::CreateCompatibleDC Olyan memória-eszköz környezetet hoz létre, amely kompatibilis egy másik eszközkörnyezettel. Ezzel előkészítheti a memóriában lévő képeket.
CDC::CreateDC Eszközkörnyezetet hoz létre egy adott eszközhöz.
CDC::CreateIC Egy adott eszköz információs környezetét hozza létre. Így gyorsan lekérheti az eszköz adatait anélkül, hogy eszközkörnyezetet hoz létre.
CDC::DeleteDC Törli az objektumhoz CDC társított Windows-eszközkörnyezetet.
CDC::DeleteTempMap Az üresjárati idő kezelője CWinApp meghívta a rendszer által létrehozott CDCideiglenes FromHandle objektumok törlésére. Leválasztja az eszközkörnyezetet is.
CDC::Detach Leválasztja a Windows-eszközkörnyezetet erről az CDC objektumról.
CDC::DPtoHIMETRIC Az eszközegységeket egységekké HIMETRIC alakítja.
CDC::DPtoLP Az eszközegységeket logikai egységekké alakítja.
CDC::Draw3dRect Háromdimenziós téglalapot rajzol.
CDC::DrawDragRect Húzás közben törli és újrarajzolta a téglalapot.
CDC::DrawEdge Egy téglalap széleit rajzolja meg.
CDC::DrawEscape A grafikus eszköz felületén (GDI) keresztül közvetlenül nem elérhető videómegjelenítés rajzfunkcióihoz fér hozzá.
CDC::DrawFocusRect A fókusz jelzésére használt stílusban téglalapot rajzol.
CDC::DrawFrameControl Keretvezérlő rajzolása.
CDC::DrawIcon Rajzol egy ikont.
CDC::DrawState Megjelenít egy képet, és vizualizációs effektust alkalmaz az állapot jelzésére.
CDC::DrawText Formázott szöveget rajzol a megadott téglalapban.
CDC::DrawTextEx Formázott szöveget rajzol a megadott téglalapban más formátumok használatával.
CDC::Ellipse Három pontot rajzol.
CDC::EndDoc A tagfüggvény által StartDoc indított nyomtatási feladat befejezése.
CDC::EndPage Tájékoztatja az eszközillesztőt, hogy egy oldal véget ér.
CDC::EndPath Bezár egy elérésiút-szögletes zárójelet, és kiválasztja a szögletes zárójel által definiált útvonalat az eszközkörnyezetbe.
CDC::EnumObjects Az eszközkörnyezetben elérhető tollak és ecsetek számbavétele.
CDC::Escape Lehetővé teszi az alkalmazások számára, hogy elérhessék azokat a létesítményeket, amelyek nem érhetők el közvetlenül egy adott eszközről a GDI-en keresztül. Emellett lehetővé teszi a Windows-feloldó függvények elérését is. Az alkalmazás által indított feloldóhívásokat a rendszer lefordítja és elküldi az eszközillesztőnek.
CDC::ExcludeClipRect Létrehoz egy új kivágási régiót, amely a meglévő kivágási régióból és a megadott téglalapból áll.
CDC::ExcludeUpdateRgn Megakadályozza, hogy az ablak érvénytelen területein belül rajzoljon, ha kizár egy frissített régiót az ablakban egy kivágási régióból.
CDC::ExtFloodFill Kitölt egy területet az aktuális ecsettel. Nagyobb rugalmasságot biztosít, mint a CDC::FloodFill tagfüggvény.
CDC::ExtTextOut Egy négyszögletes régióban lévő karaktersztringet ír az aktuálisan kijelölt betűtípussal.
CDC::FillPath Bezárja az aktuális útvonal minden nyitott ábráját, és kitölti az útvonal belső terét az aktuális ecset és sokszög kitöltési móddal.
CDC::FillRect Egy adott téglalapot egy adott ecsettel tölt ki.
CDC::FillRgn Kitölt egy adott régiót a megadott ecsettel.
CDC::FillSolidRect Egy téglalap kitöltése egyszínű színnel.
CDC::FlattenPath Átalakítja a kijelölt elérési út görbéit az aktuális eszközkörnyezetbe, és az egyes görbéket vonalak sorozatává alakítja.
CDC::FloodFill Kitölt egy területet az aktuális ecsettel.
CDC::FrameRect Szegélyt rajzol egy téglalap köré.
CDC::FrameRgn Ecsettel szegélyt rajzol egy adott régió körül.
CDC::FromHandle Mutatót ad vissza egy CDC objektumhoz, ha egy fogópontot ad egy eszközkörnyezetnek. Ha egy CDC objektum nincs csatolva a leíróhoz, egy ideiglenes CDC objektum jön létre és csatolva.
CDC::GetArcDirection Az eszközkörnyezet aktuális ívirányát adja vissza.
CDC::GetAspectRatioFilter Lekéri az aktuális méretarány-szűrő beállításait.
CDC::GetBkColor Lekéri az aktuális háttérszínt.
CDC::GetBkMode Lekéri a háttérmódot.
CDC::GetBoundsRect A megadott eszközkörnyezet aktuális halmozott határolókeretét adja vissza.
CDC::GetBrushOrg Lekéri az aktuális ecset eredetét.
CDC::GetCharABCWidths Lekéri egy adott tartomány egymást követő karaktereinek szélességét logikai egységekben az aktuális betűtípustól.
CDC::GetCharABCWidthsI Lekéri az egymást követő karakterjelindexek szélességét logikai egységekben egy megadott tartományban az aktuális TrueType betűtípustól.
CDC::GetCharacterPlacement Egy karaktersztring különböző típusú információit kéri le.
CDC::GetCharWidth Egy adott tartomány egymást követő karaktereinek törtszélességeit kéri le az aktuális betűtípusból.
CDC::GetCharWidthI Lekéri az egymást követő karakterjelindexek szélességét logikai koordinátákban egy megadott tartományban az aktuális betűtípustól.
CDC::GetClipBox Lekéri az aktuális kivágási határ körüli legszűkebb határoló téglalap méreteit.
CDC::GetColorAdjustment Lekéri az eszközkörnyezet színbeállítási értékeit.
CDC::GetCurrentBitmap Az aktuálisan kijelölt objektumra mutató mutatót ad CBitmap vissza.
CDC::GetCurrentBrush Az aktuálisan kijelölt objektumra mutató mutatót ad CBrush vissza.
CDC::GetCurrentFont Az aktuálisan kijelölt objektumra mutató mutatót ad CFont vissza.
CDC::GetCurrentPalette Az aktuálisan kijelölt objektumra mutató mutatót ad CPalette vissza.
CDC::GetCurrentPen Az aktuálisan kijelölt objektumra mutató mutatót ad CPen vissza.
CDC::GetCurrentPosition Lekéri a toll aktuális pozícióját (logikai koordinátákban).
CDC::GetDCBrushColor Lekéri az aktuális ecsetszínt.
CDC::GetDCPenColor Lekéri a toll aktuális színét.
CDC::GetDeviceCaps Adott típusú eszközspecifikus információkat kér le egy adott megjelenítési eszköz képességeiről.
CDC::GetFontData Lekéri a betűmetrika adatait egy méretezhető betűtípusfájlból. A lekérni kívánt információ a betűtípusfájl eltolásának és a visszaadandó információk hosszának megadásával azonosítható.
CDC::GetFontLanguageInfo A megadott megjelenítési környezethez jelenleg kijelölt betűtípussal kapcsolatos információkat adja vissza.
CDC::GetGlyphOutline Lekéri a vázlatgörbét vagy a bitképet az aktuális betűtípusban lévő szerkezeti karakterhez.
CDC::GetGraphicsMode Lekéri a megadott eszközkörnyezet aktuális grafikus módját.
CDC::GetHalftoneBrush Lekéri a félhangos ecsetet.
CDC::GetKerningPairs Lekéri a megadott eszközkörnyezetben jelenleg kijelölt betűtípus karakterkerítési párjait.
CDC::GetLayout Lekéri az eszközkörnyezet (DC) elrendezését. Az elrendezés lehet balról jobbra (alapértelmezett) vagy jobbról balra (tükrözött).
CDC::GetMapMode Lekéri az aktuális leképezési módot.
CDC::GetMiterLimit Az eszközkörnyezet korlátját adja vissza.
CDC::GetNearestColor Lekéri a legközelebbi logikai színt egy adott logikai színhez, amelyet az adott eszköz képviselhet.
CDC::GetOutlineTextMetrics Beolvassa a TrueType betűtípusok betűmetrikáinak adatait.
CDC::GetOutputCharWidth Lekéri az egyes karakterek szélességét egy egymást követő karaktercsoportban az aktuális betűtípusból a kimeneti eszköz környezetével.
CDC::GetOutputTabbedTextExtent Kiszámítja egy karaktersztring szélességét és magasságát a kimeneti eszköz környezetében.
CDC::GetOutputTextExtent Kiszámítja egy szövegsor szélességét és magasságát a kimeneti eszköz környezetében az aktuális betűtípussal a méretek meghatározásához.
CDC::GetOutputTextMetrics Lekéri az aktuális betűtípus metrikáit a kimeneti eszköz környezetéből.
CDC::GetPath Lekéri a vonalak végpontjait meghatározó koordinátákat és az eszközkörnyezetbe kijelölt útvonalon található görbék vezérlőpontjait.
CDC::GetPixel Lekéri a képpont RGB-színértékét a megadott ponton.
CDC::GetPolyFillMode Lekéri az aktuális sokszögkitöltési módot.
CDC::GetROP2 Lekéri az aktuális rajzmódot.
CDC::GetSafeHdc Visszaadja CDC::m_hDCa kimeneti eszköz környezetét.
CDC::GetStretchBltMode Lekéri az aktuális bitkép-nyújtás módot.
CDC::GetTabbedTextExtent Kiszámítja egy karaktersztring szélességét és magasságát az attribútumeszköz környezetében.
CDC::GetTextAlign Lekéri a szövegigazítási jelzőket.
CDC::GetTextCharacterExtra Lekéri az aktuális beállítást az intercharacter térközének mennyiségéhez.
CDC::GetTextColor Lekéri az aktuális szövegszínt.
CDC::GetTextExtent Kiszámítja egy szövegsor szélességét és magasságát az attribútumeszköz környezetében az aktuális betűtípussal a dimenziók meghatározásához.
CDC::GetTextExtentExPointI Lekéri egy adott sztring azon karaktereinek számát, amelyek elférnek egy adott területen belül, és kitölt egy tömböt az egyes karakterek szövegének terjedelmével.
CDC::GetTextExtentPointI Lekéri a megadott karakterjelindexek tömbjének szélességét és magasságát.
CDC::GetTextFace Az aktuális betűtípus betűtípusának nevét null értékű sztringként másolja egy pufferbe.
CDC::GetTextMetrics Lekéri az aktuális betűtípus metrikáit az attribútumeszköz környezetéből.
CDC::GetViewportExt Lekéri a nézetport x és y kiterjedésű részeit.
CDC::GetViewportOrg Lekéri a nézetport forrásának x és y koordinátáit.
CDC::GetWindow A megjelenítési eszköz környezetéhez társított ablakot adja vissza.
CDC::GetWindowExt Lekéri a társított ablak x és y kiterjedéseit.
CDC::GetWindowOrg Lekéri a társított ablak eredetének x és y koordinátáit.
CDC::GetWorldTransform Lekéri az aktuális világteret a laptér átalakításához.
CDC::GradientFill Téglalap- és háromszögszerkezeteket tölt ki osztályozási színnel.
CDC::GrayString Halványított (szürkén) szöveget rajzol az adott helyen.
CDC::HIMETRICtoDP A HIMETRIC egységeket eszközegységekké alakítja.
CDC::HIMETRICtoLP A HIMETRIC-egységeket logikai egységekké alakítja.
CDC::IntersectClipRect Új kivágási régiót hoz létre az aktuális régió metszetének és egy téglalapnak a kialakításával.
CDC::InvertRect Egy téglalap tartalmának megfordítása.
CDC::InvertRgn Egy régió színeinek megfordítása.
CDC::IsPrinting Meghatározza, hogy az eszközkörnyezetet használja-e nyomtatáshoz.
CDC::LineTo Egy vonalat rajzol az aktuális pozíciótól egy pontig, de nem beleértendőig.
CDC::LPtoDP A logikai egységeket eszközegységekké alakítja.
CDC::LPtoHIMETRIC A logikai egységeket HIMETRIC-egységekké alakítja.
CDC::MaskBlt A forrás- és célbitképek színadatait egyesíti az adott maszk és raszter művelettel.
CDC::ModifyWorldTransform Az eszközkörnyezet világátalakítását a megadott mód használatával módosítja.
CDC::MoveTo Az aktuális pozíció áthelyezése.
CDC::OffsetClipRgn Áthelyezi az adott eszköz kivágási régióját.
CDC::OffsetViewportOrg Módosítja a nézetport forrását az aktuális nézetport-forrás koordinátáihoz képest.
CDC::OffsetWindowOrg Módosítja az ablak eredetét az aktuális ablak forrásának koordinátáihoz viszonyítva.
CDC::PaintRgn Kitölt egy régiót a kijelölt ecsettel.
CDC::PatBlt Létrehoz egy bitmintát.
CDC::Pie Kör alakú ék rajzolása.
CDC::PlayMetaFile A megadott metafájl tartalmát játssza le az adott eszközön. A továbbfejlesztett verzió PlayMetaFile megjeleníti az adott továbbfejlesztett formátumú metafájlban tárolt képet. A metafájl tetszőleges számú alkalommal lejátszható.
CDC::PlgBlt Bitblokkos átvitelt hajt végre a színadatok bitjeinek a forráseszköz környezetében megadott téglalapból a megadott párhuzamossági értékre az adott eszközkörnyezetben.
CDC::PolyBezier Egy vagy több Bzier splines rajzolása. Az aktuális pozíció nincs használatban vagy frissítve.
CDC::PolyBezierTo Egy vagy több Bzier spline rajzolása, majd az aktuális pozíció áthelyezése az utolsó Bzier spline végpontjára.
CDC::PolyDraw Vonalszegmenseket és Bzier-gördvonalakat rajzol. Ez a függvény frissíti az aktuális pozíciót.
CDC::Polygon Vonallal összekapcsolt két vagy több pontból (csúcspontból) álló sokszöget rajzol.
CDC::Polyline A megadott pontokat összekötő vonalszegmensek halmazát rajzolja meg.
CDC::PolylineTo Egy vagy több egyenes vonal rajzolása, és az aktuális pozíció áthelyezése az utolsó sor végpontjára.
CDC::PolyPolygon Két vagy több olyan sokszöget hoz létre, amelyek az aktuális sokszögkitöltési móddal vannak kitöltve. A sokszögek különállóak lehetnek, vagy átfedésben lehetnek.
CDC::PolyPolyline Több összekapcsolt vonalszakaszt rajzol. A függvény nem használja vagy frissíti az aktuális pozíciót.
CDC::PtVisible Megadja, hogy az adott pont a kivágási régión belül van-e.
CDC::RealizePalette Az aktuális logikai palettán lévő palettabejegyzéseket a rendszerkatalógusra képezi le.
CDC::Rectangle Téglalapot rajzol az aktuális tollal, és kitölti az aktuális ecsettel.
CDC::RectVisible Meghatározza, hogy a megadott téglalap bármely része a kivágási régión belül található-e.
CDC::ReleaseAttribDC m_hAttribDCKiadások , az attribútumeszköz-környezet.
CDC::ReleaseOutputDC m_hDCKiadások , a kimeneti eszköz környezete.
CDC::ResetDC Frissíti az m_hAttribDC eszközkörnyezetet.
CDC::RestoreDC Visszaállítja az eszközkörnyezetet a következővel mentett korábbi állapotra SaveDC: .
CDC::RoundRect Egy téglalapot rajzol lekerekített sarkokkal az aktuális tollal, és kitölti az aktuális ecsettel.
CDC::SaveDC Menti az eszközkörnyezet aktuális állapotát.
CDC::ScaleViewportExt Módosítja a nézetportok mértékét az aktuális értékekhez képest.
CDC::ScaleWindowExt Módosítja az ablak terjedelmét az aktuális értékekhez képest.
CDC::ScrollDC Vízszintesen és függőlegesen görgeti a bitek téglalapját.
CDC::SelectClipPath Kiválasztja az aktuális elérési utat az eszközkörnyezet kivágási régiójaként, és a megadott móddal kombinálja az új régiót bármely meglévő kivágási régióval.
CDC::SelectClipRgn A megadott móddal egyesíti az adott régiót az aktuális kivágási régióval.
CDC::SelectObject Kiválaszt egy GDI rajzobjektumot, például tollat.
CDC::SelectPalette Kiválasztja a logikai palettát.
CDC::SelectStockObject Kiválasztja a Windows által biztosított előre definiált tollak, ecsetek vagy betűtípusok egyikét.
CDC::SetAbortProc Beállít egy programozó által megadott visszahívási függvényt, amelyet a Windows hív meg, ha egy nyomtatási feladatot le kell szakítanak.
CDC::SetArcDirection Beállítja az ív- és téglalapfüggvényekhez használandó rajzirányt.
CDC::SetAttribDC Beállítja m_hAttribDCaz attribútumeszköz környezetét.
CDC::SetBkColor Beállítja az aktuális háttérszínt.
CDC::SetBkMode Beállítja a háttérmódot.
CDC::SetBoundsRect A megadott eszközkörnyezethez tartozó határolókeret-információk felhalmozódását szabályozza.
CDC::SetBrushOrg Megadja az eszközkörnyezetbe kijelölt következő ecset forrását.
CDC::SetColorAdjustment Az eszközkörnyezet színbeállítási értékeit a megadott értékekkel állítja be.
CDC::SetDCBrushColor Beállítja az aktuális ecsetszínt.
CDC::SetDCPenColor Beállítja az aktuális tollszínt.
CDC::SetGraphicsMode Beállítja az aktuális grafikus módot a megadott eszközkörnyezethez.
CDC::SetLayout Az eszközkörnyezet (DC) elrendezésének módosítása.
CDC::SetMapMode Beállítja az aktuális leképezési módot.
CDC::SetMapperFlags Módosítja a betűtípus-leképező által használt algoritmust, amikor logikai betűtípusokat képez le fizikai betűtípusokra.
CDC::SetMiterLimit Beállítja az eszközkörnyezethez tartozó gércsatlakozások hosszának korlátját.
CDC::SetOutputDC A kimeneti eszköz környezetének beállítása m_hDC.
CDC::SetPixel Beállítja a képpontot a megadott ponton a megadott szín legközelebbi közelítésére.
CDC::SetPixelV Beállítja a képpontot a megadott koordinátákon a megadott szín legközelebbi közelítésére. SetPixelV gyorsabb, mint SetPixel mert nem kell visszaadnia a pont színértékét.
CDC::SetPolyFillMode Beállítja a sokszög kitöltési módot.
CDC::SetROP2 Beállítja az aktuális rajzmódot.
CDC::SetStretchBltMode Beállítja a bitkép-nyújtás módot.
CDC::SetTextAlign Beállítja a szövegigazítási jelzőket.
CDC::SetTextCharacterExtra Beállítja az intercharacter térközét.
CDC::SetTextColor Beállítja a szöveg színét.
CDC::SetTextJustification Szóközt ad a sztring töréskaraktereihez.
CDC::SetViewportExt Beállítja a nézetport x és y kiterjedésű részeit.
CDC::SetViewportOrg Beállítja a nézet forrását.
CDC::SetWindowExt Beállítja a társított ablak x és y kiterjedéseit.
CDC::SetWindowOrg Beállítja az eszközkörnyezet ablakának eredetét.
CDC::SetWorldTransform Az aktuális világteret oldaltér-átalakításra állítja.
CDC::StartDoc Tájékoztatja az eszközillesztőt, hogy egy új nyomtatási feladat indul el.
CDC::StartPage Tájékoztatja az eszközillesztőt, hogy egy új lap indul el.
CDC::StretchBlt A bitképet áthelyezi egy forrás téglalapból és eszközből egy cél téglalapba, és szükség esetén kinyújtja vagy tömöríti a bitképet, hogy elférjen a cél téglalap mérete.
CDC::StrokeAndFillPath Bezárja az elérési út nyitott ábráit, az aktuális tollal megüti az út körvonalát, és az aktuális ecsettel kitölti a belső térét.
CDC::StrokePath A megadott elérési utat az aktuális tollal jeleníti meg.
CDC::TabbedTextOut Karaktersztringet ír egy megadott helyre, és a tabulátorpozíciók tömbjében megadott értékekre bontja a tabulátorokat.
CDC::TextOut Egy karaktersztringet ír egy megadott helyre az aktuálisan kijelölt betűtípus használatával.
CDC::TransparentBlt A színadatok bitblokkját a megadott forráseszköz-környezetből egy céleszköz-környezetbe továbbítja, és transzparenssé teszi a megadott színt az átvitelben.
CDC::UpdateColors Frissíti az eszközkörnyezet ügyfélterületét úgy, hogy képpontonként megfelelteti az ügyfélterület aktuális színeit a rendszerkatalógusnak.
CDC::WidenPath Az aktuális útvonal újradefiniálja azt a területet, amely akkor lenne festve, ha az elérési utat az eszköz környezetébe jelenleg kijelölt tollal vonnák be.

Public Operators

Name Description
CDC::operator HDC Lekéri az eszközkörnyezet leíróját.

Nyilvános adatok tagjai

Name Description
CDC::m_hAttribDC Az objektum által CDC használt attribútum-eszköz környezet.
CDC::m_hDC Az objektum által CDC használt kimeneti-eszköz környezet.

Remarks

Az CDC objektum tagfüggvényeket biztosít az eszközkörnyezetek, például kijelzők vagy nyomtatók használatához, valamint az ablak ügyfélterületéhez társított megjelenítési környezettel kapcsolatos tagok számára.

Végezze el az objektumok tagfüggvényeinek végigrajzolását CDC . Az osztály tagfüggvényeket biztosít az eszközkörnyezeti műveletekhez, a rajzeszközökkel való munkához, a típusbiztos grafikus eszközillesztő (GDI) objektum kiválasztásához, valamint a színek és paletták kezeléséhez. Tagfüggvényeket is biztosít a rajzattribútumok lekéréséhez és beállításához, a leképezéshez, a nézetporttal való munkához, az ablak kiterjedésének kezeléséhez, a koordináták konvertálásához, a régiókkal való munkához, a kivágáshoz, a rajzvonalakhoz és az egyszerű alakzatok, három pontra és sokszögek rajzolásához. A tagfüggvények a szöveg rajzolására, a betűtípusok használatára, a nyomtató menekülésére, a görgetésre és a metafájlok lejátszására is használhatók.

Objektum CDC használatához hozza létre, majd hívja meg az eszközkörnyezetet használó Windows-függvényeket párhuzamos tagfüggvényeket.

Note

A Windows 95/98 rendszerben az összes képernyőkoordináta 16 bitre korlátozódik. Ezért a int tagfüggvénynek átadott függvénynek CDC a -32768 és a 32767 közötti tartományban kell lennie.

Bizonyos célokra a Microsoft Foundation osztálykönyvtára több osztályt CDC is biztosít. CPaintDC beágyazza a hívásokat a következőre BeginPaint : és EndPaint. CClientDC kezeli az ablak ügyfélterületéhez társított megjelenítési környezetet. CWindowDC Egy teljes ablakhoz társított megjelenítési környezetet kezel, beleértve annak keretét és vezérlőit is. CMetaFileDC egy eszközkörnyezetet társít egy metafájlhoz.

CDC két tagfüggvényt biztosít, GetLayout és SetLayoutaz eszközkörnyezet elrendezésének megfordítására, amely nem örökli az elrendezését egy ablakból. Ilyen jobbról balra tájolás szükséges olyan kultúrákhoz írt alkalmazásokhoz, mint az arab vagy a héber, ahol a karakterelrendezés nem európai szabvány.

CDC két eszközkörnyezetet tartalmaz, m_hDC és m_hAttribDCamelyek egy CDC objektum létrehozásakor ugyanarra az eszközre hivatkoznak. CDC Az összes kimeneti GDI-hívást a GDI-hívásokhoz irányítja, m_hDC és a legtöbb attribútumot a következőre m_hAttribDCirányítja: . (Az attribútumhívásra GetTextColorpélda, míg SetTextColor kimeneti hívás.)

A keretrendszer például ezt a két eszközkörnyezetet használja egy CMetaFileDC objektum implementálásához, amely kimenetet küld egy metafájlnak, miközben attribútumokat olvas egy fizikai eszközről. A nyomtatási kép hasonló módon van implementálva a keretrendszerben. A két eszközkörnyezetet az alkalmazásspecifikus kódhoz hasonlóan is használhatja.

Előfordulhat, hogy szöveges metrikaadatokra van szüksége mind az eszközkörnyezetből, mind pedig az m_hDCm_hAttribDC eszközkörnyezetből. A következő függvénypárok biztosítják ezt a képességet:

Uses m_hAttribDC Uses m_hDC
GetTextExtent GetOutputTextExtent
GetTabbedTextExtent GetOutputTabbedTextExtent
GetTextMetrics GetOutputTextMetrics
GetCharWidth GetOutputCharWidth

További információ: CDCEszközkörnyezetek.

Inheritance Hierarchy

CObject

CDC

Requirements

Header:afxwin.h

CDC::AbortDoc

Leállítja az aktuális nyomtatási feladatot, és törli az alkalmazás által az eszközre írt összes adatot a StartDoc tagfüggvény utolsó hívása óta.

int AbortDoc();

Return Value

Sikeres esetben 0-nál nagyobb vagy egyenlő érték, hiba esetén negatív érték. Az alábbi lista a gyakori hibaértékeket és jelentésüket mutatja be:

  • SP_ERROR Általános hiba.

  • SP_OUTOFDISK Jelenleg nem áll rendelkezésre elegendő lemezterület a várólistához, és nem lesz több szabad hely.

  • SP_OUTOFMEMORY Nincs elegendő memória a várólistához.

  • SP_USERABORT A felhasználó megszakította a feladatot a Nyomtatókezelőn keresztül.

Remarks

Ez a tagfüggvény helyettesíti a nyomtató menekülését ABORTDOC .

AbortDoc a következők leállításához kell használni:

  • Olyan nyomtatási műveletek, amelyek nem adnak meg megszakításfüggvényt a használatával SetAbortProc.

  • Azok a nyomtatási műveletek, amelyek még nem érték el az első NEWFRAME vagy NEXTBAND a menekülési hívásukat.

Ha egy alkalmazás nyomtatási hibát vagy megszakított nyomtatási műveletet tapasztal, nem kísérelheti meg a műveletet az osztály CDCvagy AbortDoc a EndDoc tagfüggvények használatával leállítani. A GDI a hibaérték visszaadása előtt automatikusan leállítja a műveletet.

Ha az alkalmazás megjelenít egy párbeszédpanelt, amely lehetővé teszi, hogy a felhasználó megszakítsa a nyomtatási műveletet, a párbeszédpanel megsemmisítése előtt fel kell hívnia AbortDoc .

Ha a Nyomtatási kezelővel indítják el a nyomtatási feladatot, a hívás AbortDoc törli a teljes nyomtatásisor-feladatot – a nyomtató semmit sem kap. Ha a Nyomtatókezelőt nem használták a nyomtatási feladat elindításához, előfordulhat, hogy az adatok a hívás előtt AbortDoc lettek elküldve a nyomtatónak. Ebben az esetben a nyomtatóillesztő alaphelyzetbe állította a nyomtatót (ha lehetséges), és bezárta a nyomtatási feladatot.

Example

Lásd a példát a CDC::StartDoc.

CDC::AbortPath

Bezárja és elveti az eszközkörnyezetben lévő elérési utakat.

BOOL AbortPath();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ha az eszközkörnyezetben van egy nyitott elérésiút-szögletes zárójel, az elérési út szögletes zárójele bezárul, és az elérési út el lesz vetve. Ha az eszközkörnyezetben van egy zárt elérési út, a rendszer elveti az elérési utat.

CDC::AddMetaFileComment

Másolja a megjegyzést egy pufferből egy megadott továbbfejlesztett formátumú metafájlba.

BOOL AddMetaFileComment(
    UINT nDataSize,
    const BYTE* pCommentData);

Parameters

nDataSize
A megjegyzéspuffer bájtban megadott hosszát adja meg.

pCommentData
A megjegyzést tartalmazó pufferre mutat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A megjegyzések tartalmazhatnak bármilyen személyes információt – például a kép forrását és a létrehozás dátumát. A megjegyzésnek egy alkalmazás-aláírással kell kezdődnie, amelyet az adatok követnek. A megjegyzések nem tartalmazhatnak pozícióspecifikus adatokat. A helyspecifikus adatok egy rekord helyét határozzák meg, és nem szabad belefoglalni, mert előfordulhat, hogy egy metafájl egy másik metafájlba van beágyazva. Ez a függvény csak továbbfejlesztett metafájlokkal használható.

CDC::AlphaBlend

Ennek a tagfüggvénynek a meghívása áttetsző vagy félig transzparens képpontokkal rendelkező bitképek megjelenítéséhez.

BOOL AlphaBlend(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    BLENDFUNCTION blend);

Parameters

xDest
A cél téglalap bal felső sarkának x koordinátáját adja meg logikai egységekben.

yDest
A cél téglalap bal felső sarkának y koordinátáját adja meg logikai egységekben.

nDestWidth
A cél téglalap szélességét adja meg logikai egységekben.

nDestHeight
A cél téglalap magasságát adja meg logikai egységekben.

pSrcDC
Mutató a forráseszköz környezetére.

xSrc
A forrás téglalap bal felső sarkának x koordinátáját adja meg logikai egységekben.

ySrc
A forrás téglalap bal felső sarkának y koordinátáját adja meg logikai egységekben.

nSrcWidth
A forrás téglalap szélességét adja meg logikai egységekben.

nSrcHeight
A forrás téglalap magasságát adja meg logikai egységekben.

blend
Egy struktúrát BLENDFUNCTION határoz meg.

Return Value

sikeres TRUE; egyéb esetben FALSE.

Remarks

További AlphaBlend információt a Windows SDK-ban talál.

CDC::AngleArc

Vonalszegmens és ív rajzolása.

BOOL AngleArc(
    int x,
    int y,
    int nRadius,
    float fStartAngle,
    float fSweepAngle);

Parameters

x
A kör középpontjának logikai x koordinátáját adja meg.

y
A kör középpontjának logikai y koordinátáját adja meg.

nRadius
Logikai egységekben adja meg a kör sugarát. Ennek az értéknek pozitívnak kell lennie.

fStartAngle
Megadja az x tengelyhez viszonyított kezdő szöget fokban.

fSweepAngle
A kezdő szöghez viszonyított fokban adja meg a söprési szöget.

Return Value

Nonzero, ha sikeres; egyéb esetben 0.

Remarks

A vonalszegmens az aktuális pozíciótól az ív elejéig húzódik. Az ívet egy kör szegélye mentén rajzolják meg a megadott sugárral és középponttal. Az ív hosszát a megadott kezdő- és söprési szögek határozzák meg.

AngleArc az aktuális pozíciót az ív végpontjára helyezi át. A függvény által rajzolt ív az aktuális átalakítási és leképezési módtól függően elliptikusnak tűnhet. Az ív rajzolása előtt ez a függvény az aktuális pozíciótól az ív elejéig rajzolja a vonalszegmenst. Az ívet úgy rajzolja meg, hogy egy képzeletbeli kört hoz létre a megadott sugárral a megadott középpont körül. Az ív kezdőpontját úgy határozzuk meg, hogy az óramutató járásával ellentétes irányban méri a kör x tengelyét a kezdő szögben lévő fokok számával. A végpont hasonlóképpen helyezkedik el úgy, hogy az óramutató járásával ellentétes irányban méri a kezdőpontot a söprési szögben lévő fokok számával.

Ha a söprési szög nagyobb, mint 360 fok, az ívet többször söpörik. Ez a függvény vonalakat rajzol az aktuális tollal. Az ábra nincs kitöltve.

CDC::Arc

Egy háromliptikus ívet rajzol.

BOOL Arc(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Arc(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
A határoló téglalap bal felső sarkának x koordinátáját adja meg (logikai egységekben).

y1
A határoló téglalap bal felső sarkának y koordinátáját adja meg (logikai egységekben).

x2
A határoló téglalap jobb alsó sarkának x koordinátáját adja meg (logikai egységekben).

y2
A határoló téglalap jobb alsó sarkának y koordinátáját adja meg (logikai egységekben).

x3
Az ív kiindulási pontját meghatározó pont x koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

y3
Az ív kiindulási pontját meghatározó pont y koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

x4
Az arc végpontját meghatározó pont x koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

y4
Az arc végpontját meghatározó pont y koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

lpRect
A határoló téglalapot adja meg (logikai egységekben). A paraméterhez átadhat egy LPRECT vagy egy CRect objektumot.

ptStart
Az ív kiindulási pontját meghatározó pont x- és y koordinátáit adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

ptEnd
Az ív végpontját meghatározó pont x- és y koordinátáit adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A függvény használatával rajzolt ív a megadott határolókeret által meghatározott három pont szegmense.

Az ív tényleges kiindulási pontja az a pont, ahol a határoló téglalap közepéről a megadott kezdőponton át rajzolt sugár metszi a három pontot. Az ív tényleges végpontja az a pont, ahol a határoló téglalap közepéről a megadott végponton át rajzolt sugár metszi a három pontot. Az ív az óramutató járásával ellentétes irányban van rajzolva. Mivel az ívek nem zárt ábrák, nincs kitöltve. A téglalap szélességének és magasságának egyaránt 2 egységnél nagyobbnak és 32 767 egységnél kisebbnek kell lennie.

Example

void CDCView::DrawArc(CDC *pDC)
{
   // Fill the client area with a thin circle. The circle's
   // interior is not filled. The circle's perimeter is
   // blue from 6 o'clock to 3 o'clock and red from 3
   // o'clock to 6 o'clock.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens.
   CPen penBlue;
   CPen penRed;
   CPen *pOldPen;

   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen.

   pOldPen = pDC->SelectObject(&penBlue);

   pDC->Arc(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw from 6 o'clock to 3 o'clock, counterclockwise,
   // in a red pen.
   pDC->SelectObject(&penRed);

   // Keep the same parameters, but reverse start
   // and end points.
   pDC->Arc(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::ArcTo

Egy háromliptikus ívet rajzol.

BOOL ArcTo(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL ArcTo(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
A határoló téglalap bal felső sarkának x koordinátáját adja meg (logikai egységekben).

y1
A határoló téglalap bal felső sarkának y koordinátáját adja meg (logikai egységekben).

x2
A határoló téglalap jobb alsó sarkának x koordinátáját adja meg (logikai egységekben).

y2
A határoló téglalap jobb alsó sarkának y koordinátáját adja meg (logikai egységekben).

x3
Az ív kiindulási pontját meghatározó pont x koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

y3
Az ív kiindulási pontját meghatározó pont y koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

x4
Az arc végpontját meghatározó pont x koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

y4
Az arc végpontját meghatározó pont y koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

lpRect
A határoló téglalapot adja meg (logikai egységekben). A mutatót átadhatja egy RECT adatstruktúrának vagy a paraméter objektumának CRect .

ptStart
Az ív kiindulási pontját meghatározó pont x- és y koordinátáit adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie. A paraméterhez adatstruktúrát POINT vagy objektumot CPoint is átadhat.

ptEnd
Az ív végpontját meghatározó pont x- és y koordinátáit adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie. A paraméterhez adatstruktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a függvény hasonló CDC::Arcahhoz, kivéve, hogy az aktuális pozíció frissül. A pontok ( x1, y1) és ( x2, y2) megadják a határolókeretet. Az adott határoló téglalap által létrehozott három pont határozza meg az ív görbét. Az ív az óramutató járásával ellentétes irányban (az alapértelmezett ívirány) kiterjeszthető attól a ponttól, ahol a határoló téglalap középpontjától a ( x3, y3) közötti tárcsavonalat metszi. Az ív végződik, ahol metszi a tárcsavonalat a határoló téglalap közepétől a ( x4, ). y4 Ha a kezdőpont és a végpont megegyezik, a rendszer egy teljes három pontot rajzol.

A rendszer egy vonalat rajzol az aktuális pozícióból az ív kiindulási pontjára. Ha nem történik hiba, az aktuális pozíció az ív végpontjára van állítva. Az ív rajzolása az aktuális tollal történik; nincs kitöltve.

CDC::Attach

Ezzel a tagfüggvénysel csatolhat egy hDC objektumot CDC .

BOOL Attach(HDC hDC);

Parameters

hDC
Windows-eszközkörnyezet.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A hDC rendszer mind a kimeneti eszközkörnyezetbenm_hAttribDC, mind m_hDCpedig az attribútumeszköz-környezetben tárolja.

CDC::BeginPath

Megnyílik egy elérésiút-zárójel az eszközkörnyezetben.

BOOL BeginPath();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az elérésiút-szögletes zárójel megnyitása után az alkalmazás elkezdheti meghívni a GDI rajzfüggvényeket az elérési úton található pontok definiálásához. Az alkalmazások a tagfüggvény meghívásával bezárhatnak egy nyitott elérésiút-szögletes EndPath zárójelet. Amikor egy alkalmazás hív BeginPath, a rendszer elveti a korábbi elérési utakat.

A Windows SDK-ban megtekintheti BeginPath az elérési út pontjait meghatározó rajzfüggvények listáját.

Example

// This implementation uses GDI paths to draw the outline of
// some text in a TrueType font. The path is used to record the way
// the TrueType font would be drawn. Then, the function uses the data
// returned from CDC::GetPath() to draw the font--without filling it.
void CDCView::DrawPath(CDC *pDC)
{
   // Describe a 24-point truetype font of normal weight
   LOGFONT lf;
   memset(&lf, 0, sizeof(lf));
   lf.lfHeight = -MulDiv(24, pDC->GetDeviceCaps(LOGPIXELSY), 72);
   lf.lfWeight = FW_NORMAL;
   lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;

   // create and select it
   CFont newFont;
   if (!newFont.CreateFontIndirect(&lf))
      return;
   CFont *pOldFont = pDC->SelectObject(&newFont);

   // use a path to record how the text was drawn
   pDC->BeginPath();
   pDC->TextOut(10, 10, _T("Outline this!"));
   pDC->EndPath();

   // Find out how many points are in the path. Note that
   // for long strings or complex fonts, this number might be
   // gigantic!
   int nNumPts = pDC->GetPath(NULL, NULL, 0);
   if (nNumPts == 0)
      return;

   // Allocate memory to hold points and stroke types from
   // the path.
   LPPOINT lpPoints = NULL;
   LPBYTE lpTypes = NULL;
   try
   {
      lpPoints = new POINT[nNumPts];
      lpTypes = new BYTE[nNumPts];
   }
   catch (CException *pe)
   {
      delete[] lpPoints;
      lpPoints = NULL;
      delete[] lpTypes;
      lpTypes = NULL;
      pe->Delete();
   }
   if (lpPoints == NULL || lpTypes == NULL)
      return;

   // Now that we have the memory, really get the path data.
   nNumPts = pDC->GetPath(lpPoints, lpTypes, nNumPts);

   // If it worked, draw the lines. Windows 98 doesn't support
   // the PolyDraw API, so we use our own member function to do
   // similar work. If you're targeting only later versions of
   // Windows, you can use the PolyDraw() API and avoid the
   // COutlineView::PolyDraw() member function.

   if (nNumPts != -1)
      pDC->PolyDraw(lpPoints, lpTypes, nNumPts);

   // Release the memory we used
   delete[] lpPoints;
   delete[] lpTypes;

   // Put back the old font
   pDC->SelectObject(pOldFont);

   return;
}

CDC::BitBlt

Bitképet másol a forráseszköz környezetéből ebbe az aktuális eszközkörnyezetbe.

BOOL BitBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    DWORD dwRop);

Parameters

x
A cél téglalap bal felső sarkának logikai x koordinátáját adja meg.

y
A cél téglalap bal felső sarkának logikai y koordinátáját adja meg.

nWidth
A cél téglalap és a forrásbitkép szélességét (logikai egységekben) adja meg.

nHeight
Megadja a cél téglalap és a forrásbitkép magasságát (logikai egységekben).

pSrcDC
Mutasson egy CDC objektumra, amely azonosítja azt az eszközkörnyezetet, amelyből a bitképet kimásolja. Ennek akkor kell lennie NULL , ha dwRop olyan raszteres műveletet ad meg, amely nem tartalmaz forrást.

xSrc
A forrásbitkép bal felső sarkának logikai x koordinátáját adja meg.

ySrc
A forrásbitkép bal felső sarkának logikai y koordinátáját adja meg.

dwRop
A végrehajtandó raszterműveletet adja meg. A raszteres műveleti kódok határozzák meg, hogy a GDI hogyan egyesíti a színeket az aktuális ecsetet, egy lehetséges forrásbitképet és egy célbitképet tartalmazó kimeneti műveletekben. A BitBlt Windows SDK-ban megtalálja a raszterműveleti kódok dwRop listáját és azok leírását

A raszteres műveleti kódok teljes listáját a Windows SDK Raster műveleti kódjai című témakörben találja.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az alkalmazás a bájtok határán igazíthatja az ablakokat vagy ügyfélterületeket, így biztosítva, hogy a BitBlt műveletek bájtokkal igazított téglalapokon történjenek. (Az ablakosztályok regisztrálásakor állítsa be a CS_BYTEALIGNWINDOWCS_BYTEALIGNCLIENT jelölőket.)

BitBlt A byte-aligned téglalapokon végzett műveletek lényegesen gyorsabbak, mint BitBlt a nem bájthoz igazított téglalapokon végzett műveletek. Ha olyan osztálystílusokat szeretne megadni, mint például a bájtigazítás a saját eszközkörnyezetéhez, akkor ahelyett, hogy a Microsoft Foundation-osztályokra támaszkodna, regisztrálnia kell egy ablakosztályt. Használja a globális függvényt AfxRegisterWndClass.

A GDI átalakítja nWidth és nHeightegyszer a céleszköz környezetével, egyszer pedig a forráseszköz környezetével. Ha az eredményül kapott mértékek nem egyeznek, a GDI a Windows StretchBlt függvénnyel szükség szerint tömöríti vagy feszíti a forrásbitképet.

Ha a cél-, forrás- és mintabitképek nem azonos színformátummal rendelkeznek, a függvény a BitBlt forrás- és mintabitképeket a célnak megfelelően konvertálja. Az átalakítás során a célbitkép előterét és háttérszíneit használja a rendszer.

Amikor a BitBlt függvény színre konvertál egy monokróm bitképet, a fehér biteket (1) a háttérszínre, a fekete biteket (0) pedig az előtérszínre állítja. A céleszköz-környezet előtér- és háttérszíneit használja a rendszer. A szín monokrómmá BitBlt alakításához a háttérszínnek megfelelő képpontokat fehérre állítja, és az összes többi képpontot feketére állítja. BitBlt A színeszköz-környezet előtér- és háttérszíneit használja a színről monokrómra való konvertáláshoz.

Nem minden eszközkörnyezet támogatja BitBlt. Annak ellenőrzéséhez, hogy egy adott eszközkörnyezet támogatja-e BitBlt, használja a GetDeviceCaps tagfüggvényt, és adja meg a RASTERCAPS-indexet.

Example

Lásd a példát a CDC::CreateCompatibleDC.

CDC::CDC

Egy CDC objektumot hoz létre.

CDC();

CDC::Chord

Von egy húrt (egy három pont és egy vonalszegmens metszete által határolt zárt alakzatot).

BOOL Chord(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Chord(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
A húr határoló téglalapjának bal felső sarkának x koordinátáját adja meg (logikai egységekben).

y1
A húr határoló téglalapjának bal felső sarkának y koordinátáját adja meg (logikai egységekben).

x2
A húr határoló téglalapjának jobb alsó sarkának x koordinátáját adja meg (logikai egységekben).

y2
A húr határoló téglalapjának jobb alsó sarkának y koordinátáját adja meg (logikai egységekben).

x3
A húr kiindulási pontját meghatározó pont x koordinátáját adja meg (logikai egységekben).

y3
A húr kiindulási pontját meghatározó pont y koordinátáját adja meg (logikai egységekben).

x4
A húr végpontját meghatározó pont x koordinátáját adja meg (logikai egységekben).

y4
A húr végpontját meghatározó pont y koordinátáját adja meg (logikai egységekben).

lpRect
A határoló téglalapot adja meg (logikai egységekben). Ennek a paraméternek egy LPRECT vagy egy CRect objektumát is átadhatja.

ptStart
A húr kiindulási pontját meghatározó pont x- és y koordinátáit adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan a húron feküdnie. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

ptEnd
A húr végpontját meghatározó pont x- és y koordinátáit adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan a húron feküdnie. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A ( x1, y1) és ( x2, ) y2paraméterek a húr részét képező három pontot határoló téglalap bal felső és jobb alsó sarkát határozzák meg. A ( x3, y3) és ( x4, ) y4paraméterek határozzák meg a három pontot metsző vonal végpontjait. A húrt a kiválasztott tollal rajzoljuk meg, és a kiválasztott ecsettel töltünk ki.

A függvény által Chord rajzolt ábra egészen addig terjed ki, de nem tartalmazza a jobb és az alsó koordinátákat. Ez azt jelenti, hogy az ábra y2 - y1 magassága és szélessége .x2 - x1

Example

void CDCView::DrawChord(CDC *pDC)
{
   // Fill the client area with a circle. The circle is
   // blue and filled with blue, but has a chord cut out
   // of it from 3 o'clock to 6 o'clock. That chord is
   // red and filled with a red diagonal hatch.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.
   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Chord(rectClient,
              CPoint(rectClient.right, rectClient.CenterPoint().y),
              CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter chord from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen
   // with the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Keep the same parameters, but reverse start and
   // end points.
   pDC->Chord(rectClient,
              CPoint(rectClient.CenterPoint().x, rectClient.right),
              CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::CloseFigure

Bezár egy nyitott ábrát egy elérési úton.

BOOL CloseFigure();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A függvény úgy zárja be az ábrát, hogy egy vonalat rajzol az aktuális pozícióból az ábra első pontjára (általában a tagfüggvény legutóbbi hívása MoveTo által megadott pontra), és a vonalillesztés stílusával összekapcsolja a vonalakat. Ha egy ábra a tagfüggvény helyett CloseFigurea LineTo végpontok használatával van lezárva, akkor a rendszer a sarkot illesztés helyett a végpontok használatával hozza létre. CloseFigure csak akkor hívható meg, ha az eszközkörnyezetben van egy nyitott elérésiút-zárójel.

Az elérési út egy ábrája nyitva van, kivéve, ha ez a függvény kifejezetten bezárja. (Az ábra akkor is megnyitható, ha az aktuális pont és az ábra kezdőpontja megegyezik.) Bármely vonal vagy görbe, amely egy új ábra elindítása után CloseFigure az elérési úthoz van adva.

CDC::CreateCompatibleDC

Létrehoz egy memóriaeszköz-környezetet, amely kompatibilis a megadott pDCeszközzel.

BOOL CreateCompatibleDC(CDC* pDC);

Parameters

pDC
Egy eszközkörnyezetre mutató mutató. Ha pDC igen NULL, a függvény létrehoz egy memóriaeszköz-környezetet, amely kompatibilis a rendszermegjelenítéssel.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A memóriaeszköz-környezet egy memóriablokk, amely egy megjelenítési felületet jelöl. A rendszerképek memóriában való előkészítésére használható, mielőtt a kompatibilis eszköz tényleges felületére másolja őket.

Memóriaeszköz-környezet létrehozásakor a GDI automatikusan kiválaszt egy 1-by-1 monokróm részvénybitképet. A GDI kimeneti függvények csak akkor használhatók memóriaeszköz-környezettel, ha bitképet hoztak létre és választottak ki ebbe a környezetbe.

Ez a függvény csak a raszteres műveleteket támogató eszközök kompatibilis eszközkörnyezeteinek létrehozására használható. Az eszközkörnyezetek közötti bitblokk-átvitelről a CDC::BitBlt tagfüggvényben tájékozódhat. Annak megállapításához, hogy egy eszközkörnyezet támogatja-e a raszteres műveleteket, tekintse meg a RC_BITBLT tagfüggvény CDC::GetDeviceCapsraszterképességét.

Example

// This handler loads a bitmap from system resources,
// centers it in the view, and uses BitBlt() to paint the bitmap
// bits.
void CDCView::DrawBitmap(CDC *pDC)
{
   // load IDB_BITMAP1 from our resources
   CBitmap bmp;
   if (bmp.LoadBitmap(IDB_BITMAP1))
   {
      // Get the size of the bitmap
      BITMAP bmpInfo;
      bmp.GetBitmap(&bmpInfo);

      // Create an in-memory DC compatible with the
      // display DC we're using to paint
      CDC dcMemory;
      dcMemory.CreateCompatibleDC(pDC);

      // Select the bitmap into the in-memory DC
      CBitmap *pOldBitmap = dcMemory.SelectObject(&bmp);

      // Find a centerpoint for the bitmap in the client area
      CRect rect;
      GetClientRect(&rect);
      int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
      int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;

      // Copy the bits from the in-memory DC into the on-
      // screen DC to actually do the painting. Use the centerpoint
      // we computed for the target offset.
      pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
                  0, 0, SRCCOPY);

      dcMemory.SelectObject(pOldBitmap);
   }
   else
   {
      TRACE0("ERROR: Where's IDB_BITMAP1?\n");
   }
}

CDC::CreateDC

Létrehoz egy eszközkörnyezetet a megadott eszközhöz.

BOOL CreateDC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

Parameters

lpszDriverName
Egy null értékű sztringre mutat, amely megadja az eszközillesztő fájlnevét (kiterjesztés nélkül) (például "EPSON"). A paraméterhez objektumot is átadhat CString .

lpszDeviceName
Egy null értékű sztringre mutat, amely megadja a támogatandó eszköz nevét (például "EPSON FX-80"). A lpszDeviceName paraméter akkor használatos, ha a modul egynél több eszközt támogat. A paraméterhez objektumot is átadhat CString .

lpszOutput
Egy null értékű sztringre mutat, amely megadja a fizikai kimeneti adathordozó (fájl vagy kimeneti port) fájl- vagy eszköznevét. A paraméterhez objektumot is átadhat CString .

lpInitData
DEVMODE Az eszközillesztő eszközspecifikus inicializálási adatait tartalmazó struktúrára mutat. A Windows DocumentProperties függvény lekéri ezt a struktúrát egy adott eszközhöz kitöltve. A lpInitData paraméternek akkor kell lennie NULL , ha az eszközillesztő a felhasználó által a Vezérlőpulton megadott alapértelmezett inicializálást (ha van ilyen) használja.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A PRINT.H fejlécfájlra a struktúra használata esetén DEVMODE van szükség.

Az eszköznevek a következő konvenciókat követik: záró kettőspont (:) ajánlott, de nem kötelező. A Windows csíkozza a záró kettőspontot, hogy a kettősponttal végződő eszköznév ugyanarra a portra legyen leképezve, mint ugyanaz a név kettőspont nélkül. Az illesztő és a port neve nem tartalmazhat bevezető vagy záró szóközöket. A GDI kimeneti függvényei nem használhatók információs környezetekkel.

CDC::CreateIC

Létrehoz egy információs környezetet a megadott eszközhöz.

BOOL CreateIC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

Parameters

lpszDriverName
Egy null értékű sztringre mutat, amely megadja az eszközillesztő fájlnevét (kiterjesztés nélkül) (például "EPSON"). Ehhez a paraméterhez megadhat egy CString objektumot.

lpszDeviceName
Egy null értékű sztringre mutat, amely megadja a támogatandó eszköz nevét (például "EPSON FX-80"). A lpszDeviceName paraméter akkor használatos, ha a modul egynél több eszközt támogat. Ehhez a paraméterhez megadhat egy CString objektumot.

lpszOutput
Egy null értékű sztringre mutat, amely megadja a fizikai kimeneti adathordozó (fájl vagy port) fájlját vagy eszköznevét. Ehhez a paraméterhez megadhat egy CString objektumot.

lpInitData
Az eszközillesztő eszközspecifikus inicializálási adataira mutat. A lpInitData paraméternek akkor kell lennie NULL , ha az eszközillesztő a felhasználó által a Vezérlőpulton megadott alapértelmezett inicializálást (ha van ilyen) használja. Tekintse meg CreateDC az eszközspecifikus inicializálás adatformátumát.

Return Value

Nonzero, ha sikeres; egyéb esetben 0.

Remarks

Az információs környezet gyors módot kínál az eszközre vonatkozó információk lekérésére eszközkörnyezet létrehozása nélkül.

Az eszköznevek a következő konvenciókat követik: záró kettőspont (:) ajánlott, de nem kötelező. A Windows csíkozza a záró kettőspontot, hogy a kettősponttal végződő eszköznév ugyanarra a portra legyen leképezve, mint ugyanaz a név kettőspont nélkül. Az illesztő és a port neve nem tartalmazhat bevezető vagy záró szóközöket. A GDI kimeneti függvényei nem használhatók információs környezetekkel.

CDC::DeleteDC

Általában ne hívja ezt a függvényt; a destruktor megteszi önért.

BOOL DeleteDC();

Return Value

Nonzero, ha a függvény sikeresen befejeződött; egyéb esetben 0.

Remarks

A DeleteDC tagfüggvény törli az aktuális CDC objektumhoz társított m_hDC Windows-eszközkörnyezeteket. Ha ez CDC az objektum egy adott eszköz utolsó aktív eszközkörnyezete, az eszköz által használt összes tároló- és rendszererőforrás felszabadul.

Egy alkalmazásnak nem szabad meghívnia DeleteDC , ha objektumokat jelölt ki az eszközkörnyezetben. Az objektumokat először ki kell jelölni az eszközkörnyezetből a törlés előtt.

Az alkalmazások nem törölhetik azt az eszközkörnyezetet, amelynek leíróját hívással CWnd::GetDCszerezték be. Ehelyett fel kell hívnia CWnd::ReleaseDC az eszközkörnyezet felszabadítására. A CClientDC funkció körbefuttatásához az osztályok és CWindowDC az osztályok is rendelkezésre állnak.

A DeleteDC függvény általában az CreateDC, CreateICvagy CreateCompatibleDC.

Example

Lásd a példát a CPrintDialog::GetPrinterDC.

CDC::DeleteTempMap

Az üresjárati idő kezelője CWinApp automatikusan meghívja, DeleteTempMap törli a létrehozott FromHandleideiglenes CDC objektumokat, de nem pusztítja el az objektumokkal CDC ideiglenesen társított eszközkörnyezeti leírókat.hDC

static void PASCAL DeleteTempMap();

CDC::Detach

Hívja meg ezt a függvényt, hogy leválasztsa m_hDC (a kimeneti eszköz környezetét) az CDC objektumról, és állítsa be mindkettőt m_hDC és m_hAttribDC a következőt NULL.

HDC Detach();

Return Value

Windows-eszközkörnyezet.

CDC::DPtoHIMETRIC

Ezt a függvényt akkor használja, ha méretet ad HIMETRIC az OLE-nek, és képpontokat HIMETRICkonvertál.

void DPtoHIMETRIC(LPSIZE lpSize) const;

Parameters

lpSize
A SIZE szerkezetre vagy CSize objektumra mutat.

Remarks

Ha az eszköz környezeti objektumának MM_LOENGLISHleképezési módja , MM_HIENGLISHMM_LOMETRICvagy MM_HIMETRIC, akkor az átalakítás a fizikai hüvelykben lévő képpontok számán alapul. Ha a leképezési mód az egyik másik nem korlátozott mód (például MM_TEXT), akkor az átalakítás a logikai hüvelykben lévő képpontok számán alapul.

CDC::DPtoLP

Az eszközegységeket logikai egységekké alakítja.

void DPtoLP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void DPtoLP(LPRECT lpRect) const;
void DPtoLP(LPSIZE lpSize) const;

Parameters

lpPoints
Struktúrák vagy CPoint objektumok tömbjeire POINT mutat.

nCount
A tömb pontjainak száma.

lpRect
Egy szerkezetre vagy RECT objektumra CRect mutat. Ez a paraméter arra az egyszerű esetre használható, amikor egy téglalapot konvertál az eszközpontokból logikai pontokká.

lpSize
Egy szerkezetre vagy SIZE objektumra CSize mutat.

Remarks

A függvény az eszközkoordináta-rendszertől a GDI logikai koordinátarendszerébe leképezi az egyes pontok vagy méret koordinátáit. Az átalakítás az aktuális leképezési módtól, valamint az eszköz ablakának és nézetportjának forrásának és kiterjedésének beállításaitól függ.

CDC::Draw3dRect

A tagfüggvény meghívása háromdimenziós téglalap rajzolásához.

void Draw3dRect(
    LPCRECT lpRect,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

void Draw3dRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

Parameters

lpRect
A határoló téglalapot adja meg (logikai egységekben). A paraméter mutatóját átadhatja egy RECT szerkezetnek vagy egy CRect objektumnak.

clrTopLeft
A háromdimenziós téglalap felső és bal oldalának színét adja meg.

clrBottomRight
A háromdimenziós téglalap alsó és jobb oldalának színét adja meg.

x
A háromdimenziós téglalap bal felső sarkának logikai x koordinátáját adja meg.

y
A háromdimenziós téglalap bal felső sarkának logikai y koordinátáját adja meg.

cx
A háromdimenziós téglalap szélességét adja meg.

cy
A háromdimenziós téglalap magasságát adja meg.

Remarks

A téglalapot a program a megadott clrTopLeft színben a felső és a bal oldalon, az alsó és a jobb oldalon pedig a megadott színnel rajzolja clrBottomRightmeg.

Example

void CDCView::Draw3dRect(CDC *pDC)
{
   // get the client area
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels on all sides
   rect.DeflateRect(20, 20);

   // draw a rectangle with red top and left sides, and
   // green right and bottom sides.
   pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 255, 0));

   // This call to the four-integer override would draw
   // the same rectangle with a little less convenience:

   // pDC->Draw3dRect(rect.left, rect.top, rect.Width(), rect.Height(),
   //    RGB(255, 0, 0), RGB(0, 255, 0));
}

CDC::DrawDragRect

A tagfüggvény ismételt meghívása húzási téglalap újraírásához.

void DrawDragRect(
    LPCRECT lpRect,
    SIZE size,
    LPCRECT lpRectLast,
    SIZE sizeLast,
    CBrush* pBrush = NULL,
    CBrush* pBrushLast = NULL);

Parameters

lpRect
Olyan szerkezetre RECT vagy CRect objektumra mutat, amely egy téglalap logikai koordinátáit adja meg – ebben az esetben az újrarajzolt téglalap végpozícióját.

size
A külső szegély bal felső sarkától a téglalap belső szegélyének bal felső sarkáig (azaz a szegély vastagságához) való elmozdulást adja meg.

lpRectLast
Egy olyan struktúrára RECT vagy CRect objektumra mutat, amely meghatározza a téglalap pozíciójának logikai koordinátáit – ebben az esetben az újrarajzolt téglalap eredeti pozícióját.

sizeLast
Megadja a külső szegély bal felső sarkától a belső szegély bal felső sarkáig (azaz a szegély vastagságának) az újrarajzolt eredeti téglalap bal felső sarkáig való elmozdulását.

pBrush
Mutasson egy ecsetobjektumra. Állítsa be NULL az alapértelmezett félhangos kefe használatára.

pBrushLast
Mutasson az utolsó használt ecsetobjektumra. Állítsa be NULL az alapértelmezett félhangos kefe használatára.

Remarks

A vizualizációk visszajelzése érdekében az egér helyzetének mintavételezése közben hurokban hívja meg. Híváskor DrawDragRecta rendszer törli az előző téglalapot, és újat rajzol. Ha például a felhasználó egy téglalapot húz át a képernyőn, akkor törli az eredeti téglalapot, DrawDragRect és újrarajzolva egy újat az új pozíciójában. Alapértelmezés szerint DrawDragRect a téglalapot egy féltonnás ecsettel rajzolja meg a villódzás megszüntetéséhez és a zökkenőmentesen mozgó téglalap megjelenésének létrehozásához.

Az első híváskor DrawDragRecta lpRectLast paraméternek kell lennie NULL.

CDC::DrawEdge

Ennek a tagfüggvénynek a meghívásával rajzolhatja meg a megadott típusú és stílusú téglalap széleit.

BOOL DrawEdge(
    LPRECT lpRect,
    UINT nEdge,
    UINT nFlags);

Parameters

lpRect
A téglalap logikai koordinátáit tartalmazó struktúra mutatója RECT .

nEdge
Megadja a rajzolni kívánt belső és külső él típusát. Ennek a paraméternek egy belső és egy külső szegélyjelölő kombinációjának kell lennie. A DrawEdge paraméter típusait a Windows SDK-ban tekinti meg.

nFlags
A rajzolandó szegély típusát meghatározó jelzők. A DrawEdge paraméter értékeit a Windows SDK-ban tekinti meg. Átlós vonalak esetén a BF_RECT jelölők a téglalap paraméter által határolt vektor végpontját határozzák meg.

Return Value

Nonzero, ha sikeres; egyéb esetben 0.

CDC::DrawEscape

A grafikus eszköz felületén (GDI) keresztül közvetlenül nem elérhető videómegjelenítés rajzfunkcióihoz fér hozzá.

int DrawEscape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData);

Parameters

nEscape
Megadja a végrehajtandó feloldófüggvényt.

nInputSize
A paraméter által lpszInputData mutatott adatbájtok számát adja meg.

lpszInputData
A megadott feloldáshoz szükséges bemeneti struktúrára mutat.

Return Value

A függvény eredményét adja meg. Sikeres esetben a nullánál nagyobb, kivéve a QUERYESCSUPPORT rajzkioldót, amely csak a végrehajtást ellenőrzi; vagy nullát, ha a feloldás nincs implementálva, vagy nullánál kisebb, ha hiba történt.

Remarks

Amikor egy alkalmazás meghívja DrawEscapeazokat az adatokat, amelyeket nInputSize a megadott megjelenítési illesztőprogram azonosít és lpszInputData továbbít közvetlenül.

CDC::DrawFocusRect

Egy téglalapot rajzol a stílusban, amely jelzi, hogy a téglalap fókuszban van.

void DrawFocusRect(LPCRECT lpRect);

Parameters

lpRect
RECT A rajzolandó téglalap logikai koordinátáit meghatározó szerkezetre vagy CRect objektumra mutat.

Remarks

Mivel ez egy logikai XOR (^) függvény, a függvény meghívása egy második alkalommal ugyanazzal a téglalapdal eltávolítja a téglalapot a kijelzőről. A függvény által rajzolt téglalap nem görgethető. Ha a függvény által rajzolt téglalapot tartalmazó területet szeretne görgetni, először hívja meg DrawFocusRect , hogy távolítsa el a téglalapot a kijelzőről, majd görgessen a területen, majd hívja DrawFocusRect újra a téglalapot az új pozícióba húzásához.

Caution

DrawFocusRect csak MM_TEXT módban működik. Más módban ez a függvény nem rajzolja megfelelően a fókusz téglalapját, de nem ad vissza hibaértékeket.

CDC::DrawFrameControl

Hívja meg ezt a tagfüggvényt a megadott típus és stílus keretvezérlőjének rajzolásához.

BOOL DrawFrameControl(
    LPRECT lpRect,
    UINT nType,
    UINT nState);

Parameters

lpRect
A téglalap logikai koordinátáit tartalmazó struktúra mutatója RECT .

nType
Megadja a rajzolni kívánt keretvezérlő típusát. uType A paraméter lehetséges értékeinek listáját a Windows SDK-ban DrawFrameControl találja.

nState
A keretvezérlő kezdeti állapotát adja meg. A Windows SDK-ban DrawFrameControl a paraméterhez uState leírt értékek közül egy vagy több is lehet. nState Az érték DFCS_ADJUSTRECT használatával állítsa be a határoló téglalapot, hogy kizárja a nyomógomb környező szélét.

Return Value

Nonzero, ha sikeres; egyéb esetben 0.

Remarks

Több esetben nState a paramétertől függ nType . Az alábbi lista a négy nType érték nStateés a következő értékek közötti kapcsolatot mutatja be:

  • DFC_BUTTON

    • DFCS_BUTTON3STATE Háromállapotú gomb

    • DFCS_BUTTONCHECK Jelölőnégyzet

    • DFCS_BUTTONPUSH Leküldés gomb

    • DFCS_BUTTONRADIO Választógomb

    • DFCS_BUTTONRADIOIMAGE A választógomb képe (nem megfelelő kép szükséges)

    • DFCS_BUTTONRADIOMASK Maszk a választógombhoz (a nem megfelelőnek maszkra van szüksége)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE Bezárás gomb

    • DFCS_CAPTIONHELP Súgó gomb

    • DFCS_CAPTIONMAX Teljes méret gomb

    • DFCS_CAPTIONMIN Kis méret gomb

    • DFCS_CAPTIONRESTORE Visszaállítás gomb

  • DFC_MENU

    • DFCS_MENUARROW Almenü nyíl

    • DFCS_MENUBULLET Golyó

    • DFCS_MENUCHECK Pipa

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX Kombinált lista görgetősávja

    • DFCS_SCROLLDOWN Lefelé mutató nyíl a görgetősávon

    • DFCS_SCROLLLEFT A görgetősáv balra mutató nyíl

    • DFCS_SCROLLRIGHT Jobbra mutató nyíl a görgetősávon

    • DFCS_SCROLLSIZEGRIP Fogóméret az ablak jobb alsó sarkában

    • DFCS_SCROLLUP Felfelé mutató nyíl a görgetősávon

Example

Ez a kód az ablak jobb alsó sarkában rajzolja meg a méretfogót. Megfelelő egy OnPaint párbeszédpanel kezelőjének, amely nem rendelkezik stílusokkal, és általában nem tartalmaz más vezérlőket (például állapotsorokat), amelyek méretet adhatnak neki.

void CDCView::DrawFC(CDC *pDC)
{
   CRect rc;
   GetClientRect(&rc);

   rc.left = rc.right - ::GetSystemMetrics(SM_CXHSCROLL);
   rc.top = rc.bottom - ::GetSystemMetrics(SM_CYVSCROLL);

   pDC->DrawFrameControl(rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
}

CDC::DrawIcon

Az aktuális CDC objektum által képviselt eszköz ikonját rajzolja meg.

BOOL DrawIcon(
    int x,
    int y,
    HICON hIcon);

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

Parameters

x
Az ikon bal felső sarkának logikai x koordinátáját adja meg.

y
Az ikon bal felső sarkának logikai y koordinátáját adja meg.

hIcon
A rajzolandó ikon fogópontját azonosítja.

point
Az ikon bal felső sarkának logikai x és y koordinátáit adja meg. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nonzero, ha a függvény sikeresen befejeződött; egyéb esetben 0.

Remarks

A függvény az ikon bal felső sarkát a megadott xyhelyre helyezi. A hely az eszközkörnyezet aktuális leképezési módjától függ.

Az ikonerőforrást korábban a függvények vagy a függvények CWinApp::LoadIconCWinApp::LoadStandardIconCWinApp::LoadOEMIconhasználatával kellett betölteni. A MM_TEXT leképezési módot a függvény használata előtt ki kell választani.

Example

Lásd a példát a CWnd::IsIconic.

CDC::DrawState

Hívja meg ezt a tagfüggvényt, hogy megjelenítsen egy képet, és vizualizációs effektussal jelezze az állapotot, például letiltott vagy alapértelmezett állapotot.

Note

nFlag DSS_NORMALA kép a vizualizáció effektus alkalmazása előtt monokrómmá alakul.

BOOL DrawState(
    CPoint pt,
    CSize size,
    HBITMAP hBitmap,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    CBitmap* pBitmap,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    CBrush* pBrush = NULL);

Parameters

pt
Megadja a kép helyét.

size
Megadja a kép méretét.

hBitmap
Egy bitképhez tartozó fogópont.

nFlags
A kép típusát és állapotát meghatározó jelzők. Tekintse meg DrawState a Windows SDK-ban az nFlags lehetséges típusait és állapotát.

hBrush
Egy fogópont egy ecsethez.

pBitmap
Egy objektumra mutató CBitmap mutató.

pBrush
Egy objektumra mutató CBrush mutató.

hIcon
Egy ikon fogópontja.

lpszText
Mutató a szöveghez.

bPrefixText
Olyan szöveg, amely gázpedált tartalmazhat. A lData paraméter a sztring címét adja meg, a paraméter pedig a nTextLen hosszt. Ha nTextLen 0, akkor a sztring null értékű lesz.

nTextLen
A hivatkozott szöveges sztring lpszTexthossza. Ha nTextLen 0, akkor a sztring null értékű lesz.

lpDrawProc
Egy kép rendereléséhez használt visszahívási függvényre mutató mutató. Ez a paraméter akkor szükséges, ha a kép típusa be van DST_COMPLEXadvanFlags. Ez nem kötelező, és lehetNULL, ha a kép típusa .DST_TEXT Az összes többi képtípus esetében a rendszer figyelmen kívül hagyja ezt a paramétert. A visszahívási függvényről további információt a DrawStateProc Windows SDK-ban található függvényben talál.

lData
A rendszerképre vonatkozó információkat adja meg. A paraméter jelentése a kép típusától függ.

Return Value

Nonzero, ha sikeres; egyéb esetben 0.

CDC::DrawText

Hívja meg ezt a tagfüggvényt a megadott téglalap szövegének formázásához. További formázási beállítások megadásához használja CDC::DrawTextExa következőt:

virtual int DrawText(
    LPCTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat);

int DrawText(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat);

Parameters

lpszString
A rajzolandó sztringre mutat. Ha nCount -1, a sztringnek null értékűnek kell lennie.

nCount
A sztring karaktereinek számát adja meg. Ha nCount -1, akkor lpszString a függvény azt feltételezi, hogy egy null értékű sztring hosszú mutatója, és DrawText automatikusan kiszámítja a karakterszámot.

lpRect
Egy olyan struktúrára vagy CRect objektumra RECT mutat, amely tartalmazza azt a téglalapot (logikai koordinátákban), amelyben a szöveget formázni kell.

str
A CString megrajzolandó karaktereket tartalmazó objektum.

nFormat
Megadja a szöveg formázásának módját. A Windows SDK-ban DrawText a paraméterhez uFormat leírt értékek bármilyen kombinációja lehet. (kombinálja a bitenkénti VAGY operátorral):

Note

Egyes uFormat jelölőkombinációk az átadott sztring módosítását okozhatják. Ha a sztringet vagy azzal együtt használjaDT_MODIFYSTRING, vagy DT_PATH_ELLIPSIS a sztringet módosítja, az a felülbírálásban CString való helyességhez DT_END_ELLIPSIS vezethet. Az értékek DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIPés DT_NOPREFIX nem használhatók az DT_TABSTOP értékkel.

Return Value

A szöveg magassága, ha a függvény sikeres.

Remarks

A tabulátorok megfelelő szóközökre való kibontásával, a szövegnek az adott téglalap bal, jobb vagy középre igazításával, valamint a szövegnek az adott téglalapon belüli vonalakra való feltörésével formázható. A formázás típusát a nFormatadja meg.

Ez a tagfüggvény az eszköz környezetének kijelölt betűtípusát, szövegszínét és háttérszínét használja a szöveg rajzolásához. Ha nem használja a DT_NOCLIP formátumot, akkor a szöveg úgy van rögzítve, DrawText hogy a szöveg ne jelenjen meg az adott téglalapon kívül. Az összes formázás több sorból áll, kivéve, ha a DT_SINGLELINE formátum meg van adva.

Ha a kijelölt betűtípus túl nagy a megadott téglalaphoz, a DrawText tagfüggvény nem próbál kisebb betűtípust helyettesíteni.

Ha a DT_CALCRECT jelölő meg van adva, a megadott téglalap lpRect frissül, hogy tükrözze a szöveg rajzolásához szükséges szélességet és magasságot.

Ha a TA_UPDATECP szövegigazítási jelző be van állítva (lásd CDC::SetTextAlign), DrawText akkor a szöveg az aktuális pozíciótól kezdve jelenik meg, nem pedig az adott téglalap bal oldalán. DrawText a jelölő beállításakor TA_UPDATECP nem tördeli a szöveget (vagyis a DT_WORDBREAK jelölőnek nincs hatása).

A szöveg színét a következő állíthatja CDC::SetTextColorbe: .

CDC::DrawTextEx

Szöveg formázása az adott téglalapban.

virtual int DrawTextEx(
    LPTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

int DrawTextEx(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

Parameters

lpszString
A rajzolandó sztringre mutat. Ha nCount -1, a sztringnek null értékűnek kell lennie.

nCount
A sztring karaktereinek számát adja meg. Ha nCount -1, akkor lpszString a függvény azt feltételezi, hogy egy null értékű sztring hosszú mutatója, és DrawText automatikusan kiszámítja a karakterszámot.

lpRect
Egy olyan struktúrára vagy CRect objektumra RECT mutat, amely tartalmazza azt a téglalapot (logikai koordinátákban), amelyben a szöveget formázni kell.

str
A CString megrajzolandó karaktereket tartalmazó objektum.

nFormat
Megadja a szöveg formázásának módját. A Windows SDK-ban DrawText a paraméterhez uFormat leírt értékek bármilyen kombinációja lehet. (Kombinálás a bitenkénti VAGY operátorral):

Note

Egyes uFormat jelölőkombinációk az átadott sztring módosítását okozhatják. Ha a sztringet vagy azzal együtt használjaDT_MODIFYSTRING, vagy DT_PATH_ELLIPSIS a sztringet módosítja, az a felülbírálásban CString való helyességhez DT_END_ELLIPSIS vezethet. Az értékek DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIPés DT_NOPREFIX nem használhatók az DT_TABSTOP értékkel.

lpDTParams
Mutasson egy DRAWTEXTPARAMS struktúrára, amely további formázási beállításokat határoz meg. Ez a paraméter lehet NULL.

Remarks

A tabulátorok megfelelő szóközökre való kibontásával, a szövegnek az adott téglalap bal, jobb vagy középre igazításával, valamint a szövegnek az adott téglalapon belüli vonalakra való feltörésével formázható. A formázás típusát az és lpDTParamsa nFormat . További információ: CDC::DrawTextDrawTextEx Windows SDK.

A szöveg színét a következő állíthatja CDC::SetTextColorbe: .

CDC::Ellipse

Három pontot rajzol.

BOOL Ellipse(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Ellipse(LPCRECT lpRect);

Parameters

x1
A három pont határoló téglalapjának bal felső sarkának logikai x koordinátáját adja meg.

y1
A három pont határoló téglalapjának bal felső sarkának logikai y koordinátáját adja meg.

x2
A három pont határoló téglalapjának jobb alsó sarkának logikai x koordinátáját adja meg.

y2
A három pont határoló téglalapjának jobb alsó sarkának logikai y koordinátáját adja meg.

lpRect
A három pont határoló téglalapját adja meg. A paraméterhez objektumot is átadhat CRect .

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A három pont közepe az x1, y1, x2és y2, vagy lpRect. A három pontot az aktuális tollal rajzolják, és a belső része tele van az aktuális ecsettel.

A függvény által rajzolt ábra a jobb és az alsó koordinátákig terjed ki, de nem tartalmazza azt. Ez azt jelenti, hogy az ábra y2 - y1 magassága és szélessége .x2 - x1

Ha a határoló téglalap szélessége vagy magassága 0, akkor nem rajzol három pontot.

CDC::EndDoc

A tagfüggvény hívásával StartDoc indított nyomtatási feladat befejezése.

int EndDoc();

Return Value

0-nál nagyobb vagy egyenlő, ha a függvény sikeres, vagy hiba esetén negatív érték.

Remarks

Ez a tagfüggvény lecseréli a ENDDOC nyomtató-feloldást, és a sikeres nyomtatási feladat befejezése után azonnal meg kell hívni.

Ha egy alkalmazás nyomtatási hibát vagy megszakított nyomtatási műveletet tapasztal, nem kísérelheti meg a műveletet egyik vagy AbortDoca másik használatával EndDoc sem. A GDI a hibaérték visszaadása előtt automatikusan leállítja a műveletet.

Ezt a függvényt nem szabad metafájlokban használni.

Example

Lásd a példát a CDC::StartDoc.

CDC::EndPage

Tájékoztatja az eszközt, hogy az alkalmazás befejezte az írást egy lapra.

int EndPage();

Return Value

0-nál nagyobb vagy egyenlő, ha a függvény sikeres, vagy hiba esetén negatív érték.

Remarks

Ez a tagfüggvény általában arra szolgál, hogy az eszközillesztőt egy új lapra irányítsa.

Ez a tagfüggvény helyettesíti a nyomtató menekülését NEWFRAME . A függvényt a rendszer a lap nyomtatása NEWFRAMEután mindig meghívja.

Example

Lásd a példát a CDC::StartDoc.

CDC::EndPath

Bezár egy elérésiút-szögletes zárójelet, és kiválasztja a szögletes zárójel által definiált útvonalat az eszközkörnyezetbe.

BOOL EndPath();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Example

Lásd a példát a CDC::BeginPath.

CDC::EnumObjects

Az eszközkörnyezetben elérhető tollak és ecsetek számbavétele.

int EnumObjects(
    int nObjectType,
    int (CALLBACK* lpfn)(
    LPVOID,
    LPARAM),
    LPARAM lpData);

Parameters

nObjectType
Megadja az objektum típusát. Lehetnek értékei OBJ_BRUSH vagy OBJ_PEN.

lpfn
Az alkalmazás által megadott visszahívási függvény eljáráspéldány-címe. Lásd az alábbi "Megjegyzések" szakaszt.

lpData
Az alkalmazás által megadott adatokra mutat. A rendszer az adatokat az objektuminformációkkal együtt továbbítja a visszahívási függvénynek.

Return Value

A visszahívási függvény által visszaadott utolsó értéket adja meg. Jelentése felhasználó által definiált.

Remarks

Az adott típusú objektumok esetében a rendszer meghívja az átadott visszahívási függvényt az adott objektum információival. A rendszer addig hívja meg a visszahívási függvényt, amíg nincs több objektum, vagy a visszahívási függvény 0-t ad vissza.

A Microsoft Visual C++ új funkciói lehetővé teszik, hogy egy szokásos függvényt használjon az átadott EnumObjectsfüggvényként. Az átadott EnumObjects cím egy pascali hívási konvencióval EXPORT exportált függvény mutatója. Védelmi módú alkalmazásokban nem kell létrehoznia ezt a függvényt a Windows MakeProcInstance függvénnyel, és nem szabadíthatja fel a függvényt a FreeProcInstance Windows függvénnyel való használat után.

A függvény nevét sem kell exportálnia az EXPORTS alkalmazás moduldefiníciós fájljában lévő utasításban. Ehelyett használhatja a EXPORT függvénymódosítót,

int CALLBACK EXPORT AFunction (LPSTR, LPSTR);

hogy a fordító aliasolás nélkül adja ki az exportáláshoz szükséges megfelelő exportálási rekordot. Ez a legtöbb igénynek megfelel. Bizonyos speciális esetekben, például egy függvény sorszámozással vagy aliasolással történő exportálásához továbbra is egy utasítást kell használnia EXPORTS egy moduldefiníciós fájlban.

A Microsoft Foundation-programok összeállításához általában a fordító és /GEs a /GA fordító beállításait kell használnia. A /Gw fordító nem használható a Microsoft Foundation-osztályokkal. (Ha a Windows függvényt MakeProcInstancehasználja, a visszaadott függvénymutatót explicit módon az API-ban szükséges típusra FARPROC kell leadnia.) A visszahívásregisztrációs felületek mostantól típusbiztosak (egy függvénymutatót kell megadnia, amely az adott visszahívás megfelelő függvénytípusára mutat).

Emellett minden visszahívási függvénynek alá kell csapnia a Microsoft Foundation-kivételeket a Windowsba való visszatérés előtt, mivel a kivételeket nem lehet átvenni a visszahívási határokon. A kivételekről további információt a Kivételek című cikkben talál.

Example

// print some info about a pen we're ready to enumerate
BOOL CALLBACK EnumObjectHandler(LPVOID lpLogObject, LPARAM /* lpData */)
{
   LOGPEN *pPen = (LOGPEN *)lpLogObject;

   switch (pPen->lopnStyle)
   {
   case PS_SOLID:
      TRACE0("PS_SOLID:      ");
      break;
   case PS_DASH:
      TRACE0("PS_DASH:       ");
      break;
   case PS_DOT:
      TRACE0("PS_DOT:        ");
      break;
   case PS_DASHDOT:
      TRACE0("PS_DASHDOT:    ");
      break;
   case PS_DASHDOTDOT:
      TRACE0("PS_DASHDOTDOT: ");
      break;
   case PS_NULL:
      TRACE0("PS_NULL:       ");
      break;
   case PS_INSIDEFRAME:
      TRACE0("PS_INSIDEFRAME:");
      break;
   default:
      TRACE0("unk style:");
   }

   TRACE2("Color: 0x%8.8X, Width: %d\n", pPen->lopnColor, pPen->lopnWidth);
   return TRUE;
}

// get the default printer and enumerate the pens it has
void CDCView::OnEnumPens()
{
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();
   HDC hdc = dlg.GetPrinterDC();

   if (hdc != NULL)
   {
      CDC dc;
      dc.Attach(hdc);
      VERIFY(dc.EnumObjects(OBJ_PEN, EnumObjectHandler, 0));
   }
}

CDC::Escape

Ez a tagfüggvény gyakorlatilag elavult a Win32-programozáshoz.

virtual int Escape(
    int nEscape,
    int nCount,
    LPCSTR lpszInData,
    LPVOID lpOutData);

int Escape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData,
    int nOutputSize,
    LPSTR lpszOutputData);

Parameters

nEscape
Megadja a végrehajtandó feloldófüggvényt.

A menekülési függvények teljes listáját a Windows SDK-ban találja Escape .

nCount
A hivatkozott lpszInDataadatok bájtjainak számát adja meg.

lpszInData
A feloldáshoz szükséges bemeneti adatstruktúrára mutat.

lpOutData
Arra a struktúrára mutat, amely a kimenetet ebből a feloldásból szeretné fogadni. A lpOutData paraméter az, NULL ha nem ad vissza adatokat.

nInputSize
A paraméter által lpszInputData mutatott adatbájtok számát adja meg.

lpszInputData
A megadott feloldáshoz szükséges bemeneti struktúrára mutat.

nOutputSize
A paraméter által lpszOutputData mutatott adatbájtok számát adja meg.

lpszOutputData
A feloldás kimenetét fogadó struktúrára mutat. Ennek a paraméternek akkor kell lennie NULL , ha nem ad vissza adatot.

Return Value

A rendszer pozitív értéket ad vissza, ha a függvény sikeres, kivéve a QUERYESCSUPPORT feloldójelet, amely csak a megvalósítást ellenőrzi. A rendszer nulla értéket ad vissza, ha a feloldás nincs megvalósítva. Hiba esetén a függvény negatív értéket ad vissza. A következő gyakori hibaértékek:

  • SP_ERROR Általános hiba.

  • SP_OUTOFDISK Jelenleg nem áll rendelkezésre elegendő lemezterület a várólistához, és nem lesz több szabad hely.

  • SP_OUTOFMEMORY Nincs elegendő memória a várólistához.

  • SP_USERABORT A felhasználó a Nyomtatási kezelőn keresztül fejezte be a feladatot.

Remarks

Az eredeti nyomtatók közül csak QUERYESCSUPPORT a Win32-alkalmazások támogatottak. Minden más nyomtató-feloldó elavult, és csak a 16 bites alkalmazásokkal való kompatibilitást támogatja.

A Win32-programozáshoz most már hat tagfüggvényt biztosít, CDC amelyek felülírják a megfelelő nyomtatót:

Emellett olyan Win32-indexeket is támogat, CDC::GetDeviceCaps amelyek felülírják a többi nyomtatót. További GetDeviceCaps információt a Windows SDK-ban talál.

Ez a tagfüggvény lehetővé teszi az alkalmazások számára, hogy hozzáférjenek egy adott eszköz létesítményeihez, amelyek nem érhetők el közvetlenül a GDI-en keresztül.

Használja az első verziót, ha az alkalmazás előre definiált feloldóértékeket használ. Használja a második verziót, ha az alkalmazás privát feloldóértékeket határoz meg. A ExtEscape második verzióról további információt a Windows SDK-ban talál.

CDC::ExcludeClipRect

Létrehoz egy új kivágási régiót, amely a meglévő kivágási régióból és a megadott téglalapból áll.

int ExcludeClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int ExcludeClipRect(LPCRECT lpRect);

Parameters

x1
A téglalap bal felső sarkának logikai x koordinátáját adja meg.

y1
A téglalap bal felső sarkának logikai y koordinátáját adja meg.

x2
A téglalap jobb alsó sarkának logikai x koordinátáját adja meg.

y2
A téglalap jobb alsó sarkának logikai y koordinátáját adja meg.

lpRect
A téglalapot adja meg. Objektum is lehet CRect .

Return Value

Megadja az új kivágási régió típusát. A következő értékek bármelyike lehet:

  • COMPLEXREGION A régió szegélye átfedésben van.

  • ERROR Nem lett létrehozva régió.

  • NULLREGION A régió üres.

  • SIMPLEREGION A régiónak nincsenek átfedésben lévő szegélyek.

Remarks

A téglalap abszolút értékével x2 - x1megadott szélessége nem haladhatja meg a 32 767 egységet. Ez a korlát a téglalap magasságára is vonatkozik.

CDC::ExcludeUpdateRgn

Megakadályozza, hogy az ablak érvénytelen területein belül rajzoljon, ha kizár egy frissített régiót az ablakban az objektumhoz CDC társított kivágási régióból.

int ExcludeUpdateRgn(CWnd* pWnd);

Parameters

pWnd
Arra az ablakobjektumra mutat, amelynek az ablaka frissül.

Return Value

A kizárt régió típusa. Az alábbi értékek bármelyike lehet:

  • COMPLEXREGION A régió szegélye átfedésben van.

  • ERROR Nem lett létrehozva régió.

  • NULLREGION A régió üres.

  • SIMPLEREGION A régiónak nincsenek átfedésben lévő szegélyek.

CDC::ExtFloodFill

Kitölti a megjelenítési felület egy területét az aktuális ecsettel.

BOOL ExtFloodFill(
    int x,
    int y,
    COLORREF crColor,
    UINT nFillType);

Parameters

x
Annak a pontnak a logikai x koordinátáját adja meg, ahol a kitöltés megkezdődik.

y
Annak a pontnak a logikai y koordinátáját adja meg, ahol a kitöltés megkezdődik.

crColor
A kitöltendő terület vagy határvonal színét adja meg. A függvény crColor értelmezése a függvény értékétől nFillTypefügg.

nFillType
Megadja a végrehajtandó árvízkitöltés típusát. A következő értékek egyikének kell lennie:

  • FLOODFILLBORDER A kitöltőterületet a megadott crColorszín határolja. Ez a stílus megegyezik a .FloodFill

  • FLOODFILLSURFACE A kitöltőterületet a megadott szín határozza meg crColor. A kitöltés minden irányban kifelé folytatódik, amíg a szín megjelenik. Ez a stílus akkor hasznos, ha többszínű határokkal tölti ki a területeket.

Return Value

Nonzero, ha a függvény sikeres; ellenkező esetben 0, ha a kitöltés nem fejezhető be, ha az adott pont határszíne crColor (ha FLOODFILLBORDER kérték), ha az adott pont nem rendelkezik a megadott színnel crColor (ha FLOODFILLSURFACE kérték), vagy ha a pont kívül esik a kivágási régión.

Remarks

Ez a tagfüggvény nagyobb rugalmasságot biztosít, mint FloodFill a kitöltési típus nFillTypemegadása.

Ha nFillType be van állítva FLOODFILLBORDER, akkor a terület a megadott szín crColoráltal meghatározott teljes határt veszi fel. A függvény a megadott x ponton kezdődik, és y minden irányban kitölti a színhatárt.

Ha nFillType be van állítva FLOODFILLSURFACE, a függvény a megadott x ponton kezdődik, és y minden irányban folytatódik, kitöltve az összes szomszédos területet, amely tartalmazza a megadott crColorszínt.

Csak a memóriaeszköz-környezetek és a raszteres megjelenítési technológiát támogató eszközök támogatják ExtFloodFill. További információ: tagfüggvény GetDeviceCaps .

CDC::ExtTextOut

Ennek a tagfüggvénynek a meghívásával írjon egy karaktersztringet egy téglalap alakú régióban az aktuálisan kijelölt betűtípussal.

virtual BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    LPCTSTR lpszString,
    UINT nCount,
    LPINT lpDxWidths);

BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    const CString& str,
    LPINT lpDxWidths);

Parameters

x
A megadott sztring első karakterének karaktercellájának logikai x koordinátáját adja meg.

y
A megadott sztring első karakteréhez tartozó karaktercella felső részének logikai y koordinátáját adja meg.

nOptions
A téglalap típusát adja meg. Ez a paraméter lehet egy, mindkettő, vagy az alábbi értékek egyikének sem:

  • ETO_CLIPPED Megadja, hogy a szöveg a téglalapra legyen vágva.

  • ETO_OPAQUE Megadja, hogy az aktuális háttérszín kitöltse a téglalapot. (Az aktuális háttérszínt a tagfüggvényekkel SetBkColor állíthatja be és GetBkColor kérdezheti le.)

lpRect
Egy olyan struktúrára RECT mutat, amely meghatározza a téglalap méretét. Ez a paraméter lehet NULL. A paraméterhez objektumot is átadhat CRect .

lpszString
A megrajzolandó karaktersztringre mutat. A paraméterhez objektumot is átadhat CString .

nCount
A sztringben szereplő karakterek számát adja meg.

lpDxWidths
Olyan értéktömbre mutat, amely a szomszédos karaktercellák forrásának távolságát jelzi. A [i] logikai egységek például lpDxWidthselválasztják a karaktercella i és a karaktercella + 1 forrását i . Ha lpDxWidths igen NULL, ExtTextOut a karakterek közötti alapértelmezett térközt használja.

str
A CString megrajzolandó karaktereket tartalmazó objektum.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A téglalap alakú régió lehet átlátszatlan (az aktuális háttérszínnel kitöltve), és kivágási régió is lehet.

Ha nOptions 0 és lpRect van NULL, a függvény téglalap alakú régió használata nélkül ír szöveget az eszközkörnyezetbe. Alapértelmezés szerint a függvény nem használja vagy frissíti az aktuális pozíciót. Ha egy alkalmazásnak frissítenie kell az aktuális pozíciót a hívások ExtTextOutsorán, az alkalmazás meghívhatja a tagfüggvényt SetTextAlignTA_UPDATECPa CDC következő beállítássalnFlags: . Ha ez a jelző be van állítva, a Windows figyelmen kívül hagyja x az aktuális pozíciótExtTextOut, és y az azt követő hívásokat is. Amikor egy alkalmazás TA_UPDATECP frissíti az aktuális pozíciót, ExtTextOut állítsa az aktuális pozíciót az előző szövegsor végére, vagy a tömb utolsó eleme által megadott pozícióra lpDxWidths, amelyik nagyobb.

CDC::FillPath

Bezárja az aktuális útvonal minden nyitott ábráját, és kitölti az útvonal belső terét az aktuális ecset és sokszög kitöltési móddal.

BOOL FillPath();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A belső tér kitöltése után az útvonal el lesz vetve az eszközkörnyezetből.

CDC::FillRect

Hívja meg ezt a tagfüggvényt egy adott téglalap kitöltéséhez a megadott ecsettel.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameters

lpRect
RECT A kitöltendő téglalap logikai koordinátáit tartalmazó szerkezetre mutat. A paraméterhez objektumot is átadhat CRect .

pBrush
Azonosítja a téglalap kitöltéséhez használt ecsetet.

Remarks

A függvény kitölti a teljes téglalapot, beleértve a bal és a felső szegélyeket is, de nem tölti ki a jobb és alsó szegélyeket.

Az ecsetet vagy a CBrush tagfüggvények CreatePatternBrushCreateHatchBrushhasználatával kell létrehozni, vagy CreateSolidBrushle kell kérnie a GetStockObject Windows függvényből.

A megadott téglalap FillRect kitöltésekor nem tartalmazza a téglalap jobb és alsó oldalát. A GDI az aktuális leképezési módtól függetlenül kitölt egy téglalapot a jobb oldali oszlopig és az alsó sorig, de nem tartalmazza azt. FillRecta megadott téglalap értékeit topbottomleftright hasonlítja össze. Ha bottom kisebb vagy egyenlő top, vagy kisebb right vagy egyenlő left, akkor a téglalap nem lesz rajzolva.

FillRect hasonló CDC::FillSolidRect; azonban fog egy kefét, FillRect és ezért használható, hogy töltse ki a téglalapot egy szilárd szín, egy elmosott szín, kikelt kefe, vagy egy minta. FillSolidRect csak egyszínű színeket használ (egy COLORREF paraméter jelzi). FillRect általában lassabb, mint FillSolidRecta .

CDC::FillRgn

Kitölti a megadott pRgn régiót a megadott ecsettel pBrush.

BOOL FillRgn(
    CRgn* pRgn,
    CBrush* pBrush);

Parameters

pRgn
A kitöltendő régióra mutató mutató. Az adott régió koordinátái logikai egységekben vannak megadva.

pBrush
Azonosítja a régió kitöltéséhez használandó ecsetet.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az ecsetet a CBrush tagfüggvények CreateHatchBrushhasználatával kell létrehozni, CreateSolidBrushCreatePatternBrushvagy le kell kérni a következővelGetStockObject: .

Example

Lásd a példát a CRgn::CreateRoundRectRgn.

CDC::FillSolidRect

Hívja meg ezt a tagfüggvényt, hogy kitöltse a megadott téglalapot a megadott egyszínű színnel.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

void FillSolidRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clr);

Parameters

lpRect
A határoló téglalapot adja meg (logikai egységekben). A mutatót átadhatja egy RECT adatstruktúrának vagy a paraméter objektumának CRect .

clr Megadja a téglalap kitöltéséhez használandó színt.

x
A téglalap bal felső sarkának logikai x koordinátáját adja meg.

y
A cél téglalap bal felső sarkának logikai y koordinátáját adja meg.

cx
A téglalap szélességét adja meg.

cy
A téglalap magasságát adja meg.

Remarks

FillSolidRect nagyon hasonló CDC::FillRect; azonban FillSolidRect csak szilárd színeket használ (a COLORREF paraméter jelzi), miközben FillRect egy kefét használ, és így használható egy téglalap kitöltésére egy szilárd színnel, egy elmosott színnel, kikelt kefével vagy mintával. FillSolidRect általában gyorsabb, mint FillRect.

Note

Híváskor FillSolidRecta korábban használt SetBkColorháttérszín a megadott színre clrvan állítva.

CDC::FlattenPath

Átalakítja a kijelölt elérési út görbéit az aktuális eszközkörnyezetbe, és az egyes görbéket vonalak sorozatává alakítja.

BOOL FlattenPath();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

CDC::FloodFill

Kitölti a megjelenítési felület egy területét az aktuális ecsettel.

BOOL FloodFill(
    int x,
    int y,
    COLORREF crColor);

Parameters

x
Annak a pontnak a logikai x koordinátáját adja meg, ahol a kitöltés megkezdődik.

y
Annak a pontnak a logikai y koordinátáját adja meg, ahol a kitöltés megkezdődik.

crColor
Megadja a határ színét.

Return Value

Nonzero, ha a függvény sikeres; ellenkező esetben a rendszer 0 értéket ad vissza, ha a kitöltés nem fejezhető be, az adott pont határszíne crColora kivágási régión kívül esik.

Remarks

A rendszer feltételezi, hogy a terület a megadott crColormódon van határolt. A FloodFill függvény a megadott x ponton kezdődik, és y a színhatárig minden irányban folytatódik.

Csak a memóriaeszköz-környezetek és a raszteres megjelenítési technológiát támogató eszközök támogatják a tagfüggvényt FloodFill . A képességről RC_BITBLT további információt a tagfüggvényben GetDeviceCaps talál.

A ExtFloodFill függvény hasonló képességet, de nagyobb rugalmasságot biztosít.

CDC::FrameRect

Szegély rajzolása a megadott lpRecttéglalap körül.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameters

lpRect
Olyan struktúrára vagy CRect objektumra RECT mutat, amely a téglalap bal felső és jobb alsó sarkának logikai koordinátáit tartalmazza. A paraméterhez objektumot is átadhat CRect .

pBrush
Azonosítja a téglalap keretezéséhez használandó kefét.

Remarks

A függvény a megadott ecsettel rajzolja meg a szegélyt. A szegély szélessége és magassága mindig 1 logikai egység.

Ha a téglalap koordinátája bottom kisebb vagy egyenlő top, vagy kisebb right vagy egyenlő left, akkor a téglalap nem lesz rajzolva.

A rajzolt FrameRect szegély ugyanabban a helyzetben van, mint a tagfüggvény által Rectangle azonos koordinátákkal rajzolt szegély (ha Rectangle 1 logikai egység széles tollat használ). A téglalap belseje nincs kitöltve FrameRect.

CDC::FrameRgn

Szegélyt rajzol a megadott pRgn régió körül a megadott pBrushecsettel.

BOOL FrameRgn(
    CRgn* pRgn,
    CBrush* pBrush,
    int nWidth,
    int nHeight);

Parameters

pRgn
CRgn A szegélybe zárandó régiót azonosító objektumra mutat. Az adott régió koordinátái logikai egységekben vannak megadva.

pBrush
CBrush A szegély rajzolásához használandó ecsetet azonosító objektumra mutat.

nWidth
Meghatározza a szegély szélességét az eszközegységekben lévő függőleges ecsetvonásokban.

nHeight
Meghatározza a szegély magasságát az eszközegységekben lévő vízszintes ecsetvonásokban.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Example

Lásd a példát a CRgn::CombineRgn.

CDC::FromHandle

Mutatót ad vissza egy CDC objektumhoz, ha egy fogópontot ad egy eszközkörnyezetnek.

static CDC* PASCAL FromHandle(HDC hDC);

Parameters

hDC
Egy Windows-eszközkörnyezet leírója.

Return Value

Előfordulhat, hogy a mutató ideiglenes, és nem szabad az azonnali használaton túl tárolni.

Remarks

Ha egy CDC objektum nincs csatolva a leíróhoz, egy ideiglenes CDC objektum jön létre és csatolva.

Example

Lásd a példát a CPrintDialog::GetPrinterDC.

CDC::GetArcDirection

Az eszközkörnyezet aktuális ívirányát adja vissza.

int GetArcDirection() const;

Return Value

Az aktuális ív irányát adja meg, ha sikeres. Az érvényes visszatérési értékek a következők:

  • AD_COUNTERCLOCKWISE Az óramutató járásával ellentétesen rajzolt ívek és téglalapok.

  • AD_CLOCKWISE Arcs és az óramutató járásával megegyező irányban rajzolt téglalapok.

Hiba esetén a visszatérési érték nulla.

Remarks

Az arc- és téglalapfüggvények az ív irányát használják.

CDC::GetAspectRatioFilter

Lekéri az aktuális méretarány-szűrő beállításait.

CSize GetAspectRatioFilter() const;

Return Value

Az CSize aktuális méretarány-szűrő által használt méretarányt képviselő objektum.

Remarks

Az oldalarány az eszköz képpontszélessége és magassága által létrehozott arány. Az eszköz méretarányával kapcsolatos információk a betűtípusok létrehozásához, kiválasztásához és megjelenítéséhez használhatók. A Windows egy speciális szűrőt, a méretarány szűrőt biztosít, amely az összes elérhető betűtípusból kiválasztja az adott méretarányhoz tervezett betűtípusokat. A szűrő a tagfüggvény által megadott méretarányt SetMapperFlags használja.

CDC::GetBkColor

Az aktuális háttérszínt adja vissza.

COLORREF GetBkColor() const;

Return Value

RGB-színérték.

Remarks

Ha a háttér mód az OPAQUE, a rendszer a háttérszínt használja a stílusvonalakban lévő rések kitöltéséhez, az ecsetek kikelt vonalai és a karaktercellák háttere közötti rések kitöltéséhez. A rendszer a háttérszínt is használja a szín- és monokróm eszközkörnyezetek közötti bitképek konvertálásához.

CDC::GetBkMode

A háttérmódot adja vissza.

int GetBkMode() const;

Return Value

Az aktuális háttér mód, amely lehet OPAQUE vagy TRANSPARENT.

Remarks

A háttér mód azt határozza meg, hogy a rendszer eltávolítja-e a meglévő háttérszíneket a rajzfelületen a szöveg rajzolása előtt, a kikelt ecsetek vagy bármilyen olyan tollstílus előtt, amely nem egy folytonos vonal.

CDC::GetBoundsRect

A megadott eszközkörnyezet aktuális halmozott határolókeretét adja vissza.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

Parameters

lpRectBounds
Egy pufferre mutat, amely megkapja az aktuális határolókeretet. A téglalap logikai koordinátákban lesz visszaadva.

flags
Megadja, hogy a határolókeretet törölni kell-e a visszaadása után. Ennek a paraméternek nullának vagy a következő értéknek kell lennie:

  • DCB_RESET Kényszeríti a határoló téglalap törlését a visszaadása után.

Return Value

A határolókeret aktuális állapotát adja meg, ha a függvény sikeres. A következő értékek kombinációja lehet:

  • DCB_ACCUMULATE Határoló téglalapok felhalmozódása történik.

  • DCB_RESET A határolókeret üres.

  • DCB_SET A határolókeret nem üres.

  • DCB_ENABLE A határfelhalmozódás be van kapcsolva.

  • DCB_DISABLE A határfelhalmozódás ki van kapcsolva.

CDC::GetBrushOrg

Lekéri az eszközkörnyezethez jelenleg kijelölt ecset forrását (eszközegységekben).

CPoint GetBrushOrg() const;

Return Value

Az ecset aktuális eredete (eszközegységekben) objektumként CPoint .

Remarks

A kezdeti kefe eredete az ügyfélterület (0,0) helyén található. A visszatérési érték ezt a pontot határozza meg az eszközegységekben az asztali ablak eredetéhez viszonyítva.

CDC::GetCharacterPlacement

Egy karaktersztring különböző típusú információit kéri le.

DWORD GetCharacterPlacement(
    LPCTSTR lpString,
    int nCount,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

DWORD GetCharacterPlacement(
    CString& str,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

Parameters

lpString
A feldolgozandó karaktersztringre mutató mutató.

nCount
A sztring hosszát adja meg. Az ANSI-verzió esetében ez egy BYTE szám, és a Unicode függvény esetében ez egy WORD darabszám. További információért lásd GetCharacterPlacement.

nMaxExtent
Meghatározza a sztring feldolgozásának maximális mértékét (logikai egységekben). A rendszer figyelmen kívül hagyja azokat a karaktereket, amelyek feldolgozása meghaladja ezt a mértéket. A szükséges rendezési vagy karaktertömbök számításai csak a belefoglalt karakterekre vonatkoznak. Ezt a paramétert csak akkor használja a rendszer, ha az GCP_MAXEXTENT érték meg van adva a dwFlags paraméterben. Ahogy a függvény feldolgozza a bemeneti sztringet, minden karakter és annak mértéke csak akkor lesz hozzáadva a kimenethez, a kiterjedéshez és más tömbökhöz, ha a teljes mérték még nem haladta meg a maximális értéket. A korlát elérése után a feldolgozás leáll.

lpResults
Mutasson egy GCP_Results olyan struktúrára, amely megkapja a függvény eredményeit.

dwFlags
Meghatározza, hogyan dolgozza fel a sztringet a szükséges tömbökbe. Ez a paraméter a témakör szakaszában dwFlagsGetCharacterPlacement felsorolt értékek közül egy vagy több lehet.

str
Egy feldolgozandó objektumra mutató mutató CString .

Return Value

Ha a függvény sikeres, a visszatérési érték a sztring szélessége és magassága logikai egységekben.

Ha a függvény sikertelen, a visszatérési érték nulla.

Remarks

Ez a tagfüggvény a Windows SDK-ban leírtak szerint emulálja a függvény GetCharacterPlacementfunkcióit.

CDC::GetCharABCWidths

Lekéri egy adott tartomány egymást követő karaktereinek szélességét az aktuális TrueType betűtípusból.

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABC lpabc) const;

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABCFLOAT lpABCF) const;

Parameters

nFirstChar
Az aktuális betűtípus karaktertartományának első karakterét adja meg, amelyhez a karakterszélességeket adja vissza.

nLastChar
Az aktuális betűtípus karaktertartományának utolsó karakterét adja meg, amelyhez a karakterszélességeket adja vissza.

lpabc
Olyan szerkezettömbre ABC mutat, amely a függvény visszatérésekor megkapja a karakterszélességeket. Ennek a tömbnek legalább annyi ABC struktúrát kell tartalmaznia, mint amennyi karakter szerepel a nFirstChar megadott és nLastChar paraméterek által megadott tartományban.

lpABCF
Egy alkalmazás által biztosított pufferre mutat egy struktúrák tömbjével ABCFLOAT , amely a függvény visszatérésekor fogadja a karakterszélességeket. A függvény által visszaadott szélességek IEEE lebegőpontos formátumban vannak.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A szélességek logikai egységekben jelennek meg. Ez a függvény csak TrueType betűtípusokkal sikeres.

A TrueType raszterizátor egy adott pontméret kiválasztása után "ABC" karakterközt biztosít. Az "A" térköz az a távolság, amelyet a rendszer hozzáad az aktuális pozícióhoz a karakterjel elhelyezése előtt. A "B" térköz a karakterjel fekete részének szélessége. A "C" térközt a rendszer hozzáadja az aktuális pozícióhoz, hogy figyelembe vegye a karakterjel jobb oldalán lévő üres helyet. A teljes speciális szélességet az A + B + C adja meg.

Ha a GetCharABCWidths tagfüggvény negatív "A" vagy "C" szélességet kér le egy karakterhez, az alányúlásokat vagy túlnyúlásokat is tartalmaz.

Az ABC szélességének betűtervező egységekké alakításához az alkalmazásnak létre kell hoznia egy olyan betűtípust, amelynek magassága (a LOGFONT szerkezet tagjában lfHeight megadottak szerint) megegyezik a ntmSizeEMNEWTEXTMETRIC szerkezet tagjában tárolt értékkel. (A tag értéke a ntmSizeEM Windows függvény meghívásával EnumFontFamilies kérhető le.)

Az alapértelmezett karakter ABC-szélessége az aktuálisan kijelölt betűtípus tartományán kívül eső karakterekhez használatos.

Ha nem TrueType betűtípusokban szeretné lekérni a karakterek szélességét, az alkalmazásoknak a Windows függvényt GetCharWidth kell használniuk.

CDC::GetCharABCWidthsI

Lekéri az egymást követő karakterjelindexek szélességét logikai egységekben egy megadott tartományban az aktuális TrueType betűtípustól.

BOOL GetCharABCWidthsI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPABC lpabc) const;

Parameters

giFirst
Az aktuális betűtípusból származó egymást követő karakterjelindexek csoportjában az első karakterjelindexet adja meg. Ezt a paramétert csak akkor használja a rendszer, ha a pgi paraméter .NULL

cgi
A glifikus indexek számát adja meg.

pgi
Glyph-indexeket tartalmazó tömbre mutató mutató. Ha az érték az NULL, akkor a giFirst paramétert használja a rendszer. A cgi paraméter megadja a tömbben lévő karakterjelindexek számát.

lpabc
A karakterszélességeket fogadó struktúrák tömbje ABC . Ennek a tömbnek legalább annyi ABC struktúrát kell tartalmaznia, mint amennyit a cgi paraméter meghatároz.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a tagfüggvény a Windows SDK-ban leírtak szerint emulálja a függvény GetCharABCWidthsIfunkcióit.

CDC::GetCharWidth

Beolvassa az egyes karakterek szélességét egy egymást követő karaktercsoportban az aktuális betűtípusból a bemeneti eszköz környezetének használatával m_hAttribDC.

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    float* lpFloatBuffer) const;

Parameters

nFirstChar
Az aktuális betűtípus egymást követő karaktercsoportjának első karakterét adja meg.

nLastChar
Az aktuális betűtípus egymást követő karaktercsoportjának utolsó karakterét adja meg.

lpBuffer
Egy pufferre mutat, amely megkapja az aktuális betűtípus egymást követő karaktercsoportjának szélességi értékeit.

lpFloatBuffer
A karakterszélességek fogadásához egy pufferre mutat. A visszaadott szélességek 32 bites IEEE lebegőpontos formátumban vannak. (A szélességeket a karakterek alapvonala mentén méri a rendszer.)

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ha például nFirstChar azonosítja az "a" betűt, és nLastChar azonosítja a "z" betűt, a függvény lekéri az összes kisbetűs karakter szélességét.

A függvény a függvény által mutatott lpBufferpufferben tárolja az értékeket. Ennek a puffernek elég nagynak kell lennie ahhoz, hogy az összes szélességet megtartsa. Vagyis a példában legalább 26 bejegyzésnek kell lennie.

Ha egy karakter az egymást követő karaktercsoportban nem szerepel egy adott betűtípusban, akkor az alapértelmezett karakter szélességi értékét fogja hozzárendelni.

CDC::GetCharWidthI

Lekéri az egymást követő karakterjelindexek szélességét logikai koordinátákban egy megadott tartományban az aktuális betűtípustól.

BOOL GetCharWidthI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPINT lpBuffer) const;

Parameters

giFirst
Az aktuális betűtípusból származó egymást követő karakterjelindexek csoportjában az első karakterjelindexet adja meg. Ezt a paramétert csak akkor használja a rendszer, ha a pgi paraméter .NULL

cgi
A glifikus indexek számát adja meg.

pgi
Glyph-indexeket tartalmazó tömbre mutató mutató. Ha az érték az NULL, akkor a giFirst paramétert használja a rendszer. A cgi paraméter megadja a tömbben lévő karakterjelindexek számát.

lpBuffer
A szélességeket fogadó pufferre mutató mutató.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a tagfüggvény a Windows SDK-ban leírtak szerint emulálja a függvény GetCharWidthIfunkcióit.

CDC::GetClipBox

Lekéri az aktuális kivágási határ körüli legszűkebb határoló téglalap méreteit.

virtual int GetClipBox(LPRECT lpRect) const;

Parameters

lpRect
RECT A téglalapméretek fogadásához szükséges szerkezetre vagy CRect objektumra mutat.

Return Value

A kivágási régió típusa. A következő értékek bármelyike lehet:

  • COMPLEXREGION A vágórégió szegélye átfedésben van.

  • ERROR Az eszközkörnyezet érvénytelen.

  • NULLREGION A kivágási régió üres.

  • SIMPLEREGION A kivágási régióban nincsenek átfedésben a szegélyek.

Remarks

A dimenziókat a program által mutatott pufferbe lpRectmásolja.

CDC::GetColorAdjustment

Lekéri az eszközkörnyezet színbeállítási értékeit.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

Parameters

lpColorAdjust
A színkorrekciós COLORADJUSTMENT értékek fogadásához egy adatszerkezetre mutat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

CDC::GetCurrentBitmap

Az aktuálisan kijelölt objektumra mutató mutatót ad CBitmap vissza.

CBitmap* GetCurrentBitmap() const;

Return Value

Ha sikeres, mutasson egy CBitmap objektumra, ellenkező esetben NULL.

Remarks

Ez a tagfüggvény ideiglenes objektumokat adhat vissza.

CDC::GetCurrentBrush

Az aktuálisan kijelölt objektumra mutató mutatót ad CBrush vissza.

CBrush* GetCurrentBrush() const;

Return Value

Ha sikeres, mutasson egy CBrush objektumra, ellenkező esetben NULL.

Remarks

Ez a tagfüggvény ideiglenes objektumokat adhat vissza.

CDC::GetCurrentFont

Az aktuálisan kijelölt objektumra mutató mutatót ad CFont vissza.

CFont* GetCurrentFont() const;

Return Value

Ha sikeres, mutasson egy CFont objektumra, ellenkező esetben NULL.

Remarks

Ez a tagfüggvény ideiglenes objektumokat adhat vissza.

CDC::GetCurrentPalette

Az aktuálisan kijelölt objektumra mutató mutatót ad CPalette vissza.

CPalette* GetCurrentPalette() const;

Return Value

Ha sikeres, mutasson egy CPalette objektumra, ellenkező esetben NULL.

Remarks

Ez a tagfüggvény ideiglenes objektumokat adhat vissza.

CDC::GetCurrentPen

Az aktuálisan kijelölt objektumra mutató mutatót ad CPen vissza.

CPen* GetCurrentPen() const;

Return Value

Ha sikeres, mutasson egy CPen objektumra, ellenkező esetben NULL.

Remarks

Ez a tagfüggvény ideiglenes objektumokat adhat vissza.

CDC::GetCurrentPosition

Lekéri az aktuális pozíciót (logikai koordinátákban).

CPoint GetCurrentPosition() const;

Return Value

Az aktuális pozíció objektumként CPoint .

Remarks

Az aktuális pozíció a tagfüggvénnyel MoveTo állítható be.

CDC::GetDCBrushColor

Lekéri az aktuális ecsetszínt.

COLORREF GetDCBrushColor() const;

Return Value

Ha a függvény sikeres, a visszaadott érték az COLORREF aktuális ecsetszín értéke.

Ha a függvény meghiúsul, a visszatérési érték a következő CLR_INVALID: .

Remarks

Ez a tagfüggvény a Windows SDK-ban leírtak szerint emulálja a függvény GetDCBrushColorfunkcióit.

CDC::GetDCPenColor

Lekéri a toll aktuális színét.

COLORREF GetDCPenColor() const;

Return Value

Ha a függvény sikeres, a visszatérési érték az COLORREF aktuális tollszín értéke.

Ha a függvény meghiúsul, a visszatérési érték a következő CLR_INVALID: .

Remarks

Ez a tagfüggvény a Win32 függvényt GetDCPenColorhasználja a Windows SDK-ban leírtak szerint.

CDC::GetDeviceCaps

Eszközspecifikus információk széles skáláját kéri le a megjelenítési eszközről.

int GetDeviceCaps(int nIndex) const;

Parameters

nIndex
Megadja a visszaadni kívánt információ típusát. Az értékek listáját a Windows SDK-ban találja GetDeviceCaps .

Return Value

A kért képesség értéke, ha a függvény sikeres.

Example

Lásd a példát a CPrintDialog::GetDefaults.

CDC::GetFontData

Lekéri a betűmetrika adatait egy méretezhető betűtípusfájlból.

DWORD GetFontData(
    DWORD dwTable,
    DWORD dwOffset,
    LPVOID lpData,
    DWORD cbData) const;

Parameters

dwTable
A visszaadandó metrikatábla nevét adja meg. Ez a paraméter lehet a Microsoft Corporation által közzétett TrueType Font Files specifikációban dokumentált metrikatáblák egyike. Ha ez a paraméter 0, a program a betűtípusfájl elejétől kezdve kéri le az adatokat.

dwOffset
A táblázat elejéről származó eltolást adja meg, amelynél megkezdheti az információk beolvasását. Ha ez a paraméter 0, a rendszer a paraméter által megadott tábla elejétől kezdve kéri le az dwTable adatokat. Ha ez az érték nagyobb vagy egyenlő a tábla méretével, GetFontData akkor 0 értéket ad vissza.

lpData
Egy pufferre mutat, amely megkapja a betűtípussal kapcsolatos információkat. Ha ez az NULLérték, a függvény a paraméterben dwTable megadott betűtípusadatokhoz szükséges puffer méretét adja vissza.

cbData
A lekérendő információk bájtban megadott hosszát adja meg. Ha ez a paraméter 0, GetFontData a paraméterben dwTable megadott adatok méretét adja vissza.

Return Value

A pufferben visszaadott bájtok számát adja meg, ha lpData a függvény sikeres, egyébként -1.

Remarks

A lekérni kívánt információ a betűtípusfájl eltolásának és a visszaadandó információk hosszának megadásával azonosítható.

Az alkalmazások néha a GetFontData tagfüggvény használatával is menthetnek TrueType betűtípust egy dokumentumba. Ehhez az alkalmazás meghatározza, hogy a betűtípus beágyazható-e, majd lekéri a teljes betűtípusfájlt, megadva a 0 értéket a , dwOffsetés cbData a dwTableparaméterek számára.

Az alkalmazások a szerkezet tagjának ellenőrzésével otmfsType megállapíthatják, hogy beágyazhatók-e betűtípusok OUTLINETEXTMETRIC . Ha az otmfsType 1. bit be van állítva, a betűtípus beágyazása nem engedélyezett. Ha az 1. bit tiszta, a betűtípus beágyazható. Ha a 2. bit be van állítva, a beágyazás csak olvasható.

Ha egy alkalmazás ezzel a függvénnyel próbál adatokat lekérni egy nem TrueType betűtípussal, a GetFontData tagfüggvény -1 értéket ad vissza.

CDC::GetFontLanguageInfo

A megadott megjelenítési környezethez jelenleg kijelölt betűtípussal kapcsolatos információkat adja vissza.

DWORD GetFontLanguageInfo() const;

Return Value

A visszatérési érték az aktuálisan kijelölt betűtípus jellemzőit azonosítja. A lehetséges értékek teljes listáját lásd GetFontLanguageInfo: .

Remarks

Ez a tagfüggvény a Windows SDK-ban leírtak szerint emulálja a függvény GetFontLanguageInfofunkcióit.

CDC::GetGlyphOutline

Lekéri a vázlatgörbét vagy a bitképet az aktuális betűtípusban lévő szerkezeti karakterhez.

DWORD GetGlyphOutline(
    UINT nChar,
    UINT nFormat,
    LPGLYPHMETRICS lpgm,
    DWORD cbBuffer,
    LPVOID lpBuffer,
    const MAT2* lpmat2) const;

Parameters

nChar
Azt a karaktert adja meg, amelynek az adatait vissza szeretné adni.

nFormat
Azt a formátumot adja meg, amelyben a függvény adatokat ad vissza. Ez lehet az alábbi értékek egyike, vagy 0:

Value Meaning
GGO_BITMAP A glyph bitképet adja vissza. Amikor a függvény visszatér, a hivatkozott lpBuffer puffer egy képpontonkénti 1 bites bitképet tartalmaz, amelynek sorai duplaszóval kezdődnek.
GGO_NATIVE A görbe adatpontjait adja vissza a raszterizátor natív formátumában, eszközegységek használatával. Ha ez az érték meg van adva, a megadott lpmat2 átalakítások figyelmen kívül lesznek hagyva.

Ha a függvény értéke nFormat 0, a függvény egy GLYPHMETRICS struktúrát tölt ki, de nem ad vissza glyph-outline adatokat.

lpgm
GLYPHMETRICS A karaktercellában a karakterjel elhelyezését leíró szerkezetre mutat.

cbBuffer
Megadja annak a puffernek a méretét, amelybe a függvény a szerkezeti karakter adatait másolja. Ha ez az érték 0, és a nFormat paraméter vagy GGO_NATIVE az GGO_BITMAP érték, a függvény a puffer szükséges méretét adja vissza.

lpBuffer
Egy pufferre mutat, amelybe a függvény a szerkezeti karakter adatait másolja. Ha nFormat megadja az GGO_NATIVE értéket, a rendszer az adatokat átmásolja szerkezetek TTPOLYGONHEADER formájában és TTPOLYCURVE formájában. Ha ez az NULLnFormat érték vagy GGO_NATIVE értékGGO_BITMAP, a függvény a puffer szükséges méretét adja vissza.

lpmat2
Egy olyan struktúrára MAT2 mutat, amely a karakter átalakítási mátrixát tartalmazza. Ez a paraméter még akkor sem lehet NULL, ha az GGO_NATIVE érték meg van adva.nFormat

Return Value

A lekért információkhoz szükséges puffer mérete bájtban, ha cbBuffer 0 vagy lpBuffer az NULL. Ellenkező esetben pozitív érték, ha a függvény sikeres, vagy hiba esetén -1.

Remarks

Az alkalmazások bitkép formátumban lekért karaktereket elforgathatnak úgy, hogy egy 2-by-2 transzformációs mátrixot ad lpmat2meg a hivatkozott struktúrában.

A glyph vázlatot a függvény kontúrok sorozataként adja vissza. Minden körvonalat egy TTPOLYGONHEADER struktúra határoz meg, amelyet a leírásához szükséges számú TTPOLYCURVE szerkezet követ. Minden pontot struktúrákként POINTFX adnak vissza, és abszolút pozíciókat jelölnek, nem relatív mozgásokat. A szerkezet tagja TTPOLYGONHEADER által pfxStart megadott kiindulási pont az a pont, ahol a körvonal megkezdődik. Az TTPOLYCURVE alábbi struktúrák lehetnek többsoros rekordok vagy spline rekordok. A többsoros rekordok pontsorozatok; A pontok között rajzolt vonalak a karakter körvonalát írják le. A spline rekordok a TrueType (azaz a kvadratikus b-splines) által használt kvadratikus görbéket jelölik.

CDC::GetGraphicsMode

Lekéri a megadott eszközkörnyezet aktuális grafikus módját.

int GetGraphicsMode() const;

Return Value

Az aktuális grafikus módot adja vissza a sikerhez. A metódus által visszaadható értékek listáját lásd GetGraphicsMode: .

Hiba esetén 0 értéket ad vissza.

A kiterjesztett hibainformációk lekéréséhez hívja meg a következőt GetLastError:

Remarks

Ez a metódus körbefuttatja a Windows GDI függvényt GetGraphicsMode.

CDC::GetHalftoneBrush

Hívja meg ezt a tagfüggvényt egy félhangos ecset lekéréséhez.

static CBrush* PASCAL GetHalftoneBrush();

Return Value

Az objektumra mutató CBrush mutató, ha sikeres; ellenkező esetben NULL.

Remarks

A féltónusú kefék olyan képpontokat mutatnak, amelyek felváltva előtér- és háttérszíneket alkotnak, így egy elmosott mintázatot hozhatnak létre. Az alábbi ábrán egy féltónusú kefe által létrehozott dithered minta látható:

Diagram, amely bemutatja, hogyan áll össze a tollvonás.

Az ábra azt mutatja be, hogy a fekete háttérszíne és a sárga előtérszíne hogyan van kombinálva mintá a fekete és sárga képpontok váltakozásával egymással, hogy egy eltolvadt tollvonást hozzon létre.

CDC::GetKerningPairs

Lekéri a megadott eszközkörnyezetben jelenleg kijelölt betűtípus karakterkerítési párjait.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

Parameters

nPairs
A hivatkozott lpkrnpairstruktúrák számát KERNINGPAIR adja meg. A függvény nem másol több kerning párot a megadottnál nPairs.

lpkrnpair
Olyan struktúrák tömbjára KERNINGPAIR mutat, amelyek a függvény visszatérésekor kapják meg a kerning párokat. Ennek a tömbnek legalább annyi struktúrát kell tartalmaznia, amennyit a nPairsmegadott. Ha ez a paraméter, NULLa függvény a betűtípushoz tartozó kerítőpárok teljes számát adja vissza.

Return Value

Megadja a lekért kerningpárok számát vagy a betűtípusban lévő kerítőpárok teljes számát, ha a függvény sikeres. Nulla értéket ad vissza, ha a függvény meghibásodik, vagy ha a betűtípushoz nincsenek alávágáspárok.

CDC::GetLayout

Ennek a tagfüggvénynek a meghívásával meghatározhatja az eszközkörnyezet szövegének és ábráinak elrendezését, például nyomtatót vagy metafájlt.

DWORD GetLayout() const;

Return Value

Ha sikeres, az aktuális eszközkörnyezet elrendezésjelzői. Ellenkező esetben GDI_ERROR. A kiterjesztett hibainformációkért hívja meg a következőt GetLastError: . Az elrendezésjelzők listáját lásd CDC::SetLayout: .

Remarks

Az alapértelmezett elrendezés balról jobbra.

CDC::GetMapMode

Lekéri az aktuális leképezési módot.

int GetMapMode() const;

Return Value

A leképezési mód.

Remarks

A leképezési módok leírását a SetMapMode tagfüggvényben talál.

Note

Ha a tartományvezérlőt jobbról balra elrendezésre szeretné SetLayout módosítani, SetLayout a leképezési módot automatikusan a következőre MM_ISOTROPICmódosítja: . Következésképpen minden későbbi hívás GetMapMode vissza fog térni MM_ISOTROPIC.

CDC::GetMiterLimit

Az eszközkörnyezet korlátját adja vissza.

float GetMiterLimit() const;

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A gérkorlátot akkor használja a rendszer, ha olyan geometriai vonalakat rajzol, amelyekhez illesztés van.

CDC::GetNearestColor

A megadott logikai színnek leginkább megfelelő egyszínű színt adja vissza.

COLORREF GetNearestColor(COLORREF crColor) const;

Parameters

crColor
Megadja a egyeztetni kívánt színt.

Return Value

RGB (piros, zöld, kék) színérték, amely az eszköz által képviselhető értékhez crColor legközelebb eső egyszínű színt határozza meg.

Remarks

Az adott eszköznek képesnek kell lennie arra, hogy ezt a színt képviselje.

CDC::GetOutlineTextMetrics

A TrueType betűtípusok metrikaadatait kéri le.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

Parameters

lpotm
Szerkezettömbre OUTLINETEXTMETRIC mutat. Ha ez a paraméter, NULLa függvény a lekért metrikaadatokhoz szükséges puffer méretét adja vissza.

cbData
Megadja annak a puffernek a méretét bájtban, amelyhez az információt visszaadják.

lpotm
Egy struktúrára OUTLINETEXTMETRIC mutat. Ha ez a paraméter, NULLa függvény a lekért metrikaadatokhoz szükséges puffer méretét adja vissza.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A OUTLINETEXTMETRIC struktúra tartalmazza a TrueType formátumhoz megadott legtöbb betűmetrika-információt, beleértve a struktúrát TEXTMETRIC is. A struktúra utolsó négy tagja OUTLINETEXTMETRIC sztringekre mutató mutató. Az alkalmazásoknak a többi tag számára szükséges terület mellett helyet kell lefoglalniuk ezekhez a sztringekhez. Mivel a sztringek méretére nincs rendszer által előírt korlát, a memória kiosztásának legegyszerűbb módja a szükséges méret lekérése a függvény első hívásában GetOutlineTextMetrics a NULL lpotm érték megadásával.

CDC::GetOutputCharWidth

A kimeneti eszköz környezetét használja, m_hDCés lekéri az egyes karakterek szélességét egy egymást követő karaktercsoportban az aktuális betűtípusból.

BOOL GetOutputCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

Parameters

nFirstChar
Az aktuális betűtípus egymást követő karaktercsoportjának első karakterét adja meg.

nLastChar
Az aktuális betűtípus egymást követő karaktercsoportjának utolsó karakterét adja meg.

lpBuffer
Egy pufferre mutat, amely megkapja az aktuális betűtípus egymást követő karaktercsoportjának szélességi értékeit.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ha például nFirstChar azonosítja az "a" betűt, és nLastChar azonosítja a "z" betűt, a függvény lekéri az összes kisbetűs karakter szélességét.

A függvény a függvény által mutatott lpBufferpufferben tárolja az értékeket. Ennek a puffernek elég nagynak kell lennie ahhoz, hogy az összes szélességet tartsa; vagyis a példában legalább 26 bejegyzésnek kell lennie.

Ha egy karakter az egymást követő karaktercsoportban nem szerepel egy adott betűtípusban, akkor az alapértelmezett karakter szélességi értékét fogja hozzárendelni.

CDC::GetOutputTabbedTextExtent

Hívja meg ezt a tagfüggvényt egy karaktersztring szélességének és magasságának kiszámításához a kimeneti eszköz környezetének használatával m_hDC.

CSize GetOutputTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetOutputTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

Parameters

lpszString
A mérendő karaktersztringre mutat. A paraméterhez objektumot is átadhat CString .

nCount
A karakterlánc által mutatott lpszStringhosszát adja meg.

nTabPositions
A tömb lpnTabStopPositionstabulátor pozícióinak számát adja meg.

lpnTabStopPositions
A logikai egységek tabulátorpozícióit tartalmazó egész számok tömbjére mutat. A tabulátorokat növekvő sorrendbe kell rendezni; a legkisebb x értéknek a tömb első elemének kell lennie. A háttérlapok nem engedélyezettek.

str
A CString mérendő karaktereket tartalmazó objektum.

Return Value

A sztring méretei (logikai egységekben) egy CSize objektumban.

Remarks

Ha a sztring egy vagy több tabulátorkarakterekből áll, a sztring szélessége a megadott tabulátorokon lpnTabStopPositionsalapul. A függvény az aktuálisan kijelölt betűtípust használja a sztring dimenzióinak kiszámításához.

Az aktuális kivágási régió nem tolja el a függvény által visszaadott szélességet és magasságot GetOutputTabbedTextExtent .

Mivel egyes eszközök nem helyeznek karaktereket normál cellatömbökbe (vagyis a karaktereket kernezik), előfordulhat, hogy a sztringben lévő karakterek kiterjedésének összege nem egyenlő a sztring terjedelmével.

Ha nTabPositions 0 és lpnTabStopPositions van NULL, a lapfülek nyolc átlagos karakterszélességre vannak kibontva. Ha nTabPositions 1, a tabulátorokat a tömb első értéke által megadott távolság választja el egymástól lpnTabStopPositions . Ha lpnTabStopPositions egynél több értékre mutat, a tömb minden egyes értékéhez be van állítva tabulátor a megadott nTabPositionsszámig.

CDC::GetOutputTextExtent

Hívja meg ezt a tagfüggvényt a kimeneti eszköz környezetének használatára, m_hDCés számítsa ki egy szövegsor szélességét és magasságát az aktuális betűtípus használatával.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

Parameters

lpszString
Egy karaktersorozatra mutat. A paraméterhez objektumot is átadhat CString .

nCount
A karakterlánc által mutatott lpszStringhosszát adja meg.

str
A CString mérendő karaktereket tartalmazó objektum.

Return Value

Az objektumban visszaadott sztring méretei (logikai egységekben CSize ).

Remarks

Az aktuális kivágási régió nem befolyásolja a visszaadott szélességet és magasságot GetOutputTextExtent.

Mivel egyes eszközök nem helyeznek karaktereket normál cellatömbökbe (vagyis kerninget végeznek), előfordulhat, hogy a sztringben lévő karakterek kiterjedésének összege nem egyenlő a sztring terjedelmével.

CDC::GetOutputTextMetrics

Lekéri az aktuális betűtípus m_hDCmetrikáit a kimeneti eszköz környezetével.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameters

lpMetrics
TEXTMETRIC A metrikákat fogadó struktúrára mutat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

CDC::GetPath

Lekéri a vonalak végpontjait meghatározó koordinátákat és az eszközkörnyezetbe kijelölt útvonalon található görbék vezérlőpontjait.

int GetPath(
    LPPOINT lpPoints,
    LPBYTE lpTypes,
    int nCount) const;

Parameters

lpPoints
Adatstruktúrák vagy CPoint objektumok tömbjére POINT mutat, ahol a vonalvégpontok és a görbevezérlő pontok találhatók.

lpTypes
Bájtok tömbjére mutat, ahol a csúcstípusok elhelyezve vannak. Az értékek a következők egyike:

  • PT_MOVETO Megadja, hogy a megfelelő pont lpPoints egy különálló ábrát indít el.

  • PT_LINETO Megadja, hogy az előző pont és a hozzá tartozó pont lpPoints egy vonal végpontjai.

  • PT_BEZIERTO Azt adja meg, hogy a megfelelő pont lpPoints egy Bzier-görbe vezérlőpontja vagy végpontja.

PT_BEZIERTO típusok mindig három készletben fordulnak elő. Az elérési út közvetlenül előtte lévő pontja határozza meg a Bzier-görbe kezdőpontját. Az első két PT_BEZIERTO pont a vezérlőpontok, a harmadik PT_BEZIERTO pedig a végpont (ha keményen kódolt).

Egy PT_LINETO vagy PT_BEZIERTO típus kombinálható a következő jelzővel (a bitenkénti operátorral VAGY) annak jelzésére, hogy a megfelelő pont az ábra utolsó pontja, és hogy az ábrát be kell zárni:

  • PT_CLOSEFIGURE Megadja, hogy az ábra a megfelelő vonal vagy görbe rajzolása után automatikusan bezárva legyen. Az ábra úgy van lezárva, hogy egy vonalat rajzol a vonalból vagy a görbevégpontból az utolsónak PT_MOVETOmegfelelő pontra.

nCount
Megadja a tömbbe lpPoints helyezhető adatstruktúrák teljes számátPOINT. Ennek az értéknek meg kell egyeznie a tömbben lpTypes elhelyezhető bájtok számával.

Return Value

Ha a nCount paraméter nem nulla, akkor a pontok száma enumerálva van. Ha nCount 0, az elérési út pontjainak teljes száma (és GetPath semmit nem ír a pufferekbe). Ha nCount nem nulla, és kisebb, mint az elérési út pontjainak száma, akkor a visszatérési érték -1.

Remarks

Az eszközkörnyezetnek zárt elérési utat kell tartalmaznia. Az elérési út pontjai logikai koordinátákban jelennek meg. A pontok az elérési úton tárolódnak az eszközkoordinátákban, így GetPath az aktuális átalakítás inverzének használatával az eszközkoordinátákról logikai koordinátákra módosítják a pontokat. A FlattenPath tagfüggvényt korábban GetPathis meghívhatja, hogy az elérési út összes görbéje vonalszegmensekké alakuljon.

Example

Lásd a példát a CDC::BeginPath.

CDC::GetPixel

Lekéri a képpont RGB-színértékét az és ya megadott x időpontban.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

Parameters

x
A vizsgálandó pont logikai x koordinátáját adja meg.

y
A vizsgálandó pont logikai y koordinátáját adja meg.

point
A vizsgálandó pont logikai x és y koordinátáit adja meg.

Return Value

A függvény bármelyik verziójához az adott pont színének RGB-színértéket kell megadnia. -1, ha a koordináták nem adnak meg pontot a kivágási régióban.

Remarks

A pontnak a kivágási régióban kell lennie. Ha a pont nincs a kivágási régióban, a függvénynek nincs hatása, és -1 értéket ad vissza.

Nem minden eszköz támogatja a függvényt GetPixel . További információkért tekintse meg a RC_BITBLT tagfüggvény raszterképességét GetDeviceCaps .

A GetPixel tagfüggvénynek két formája van. Az első két koordinátaértéket vesz fel; a második egy struktúrát POINT vagy objektumot vesz igénybe CPoint .

CDC::GetPolyFillMode

Lekéri az aktuális sokszögkitöltési módot.

int GetPolyFillMode() const;

Return Value

Az aktuális sokszögtel kitöltött mód, ALTERNATE vagy WINDINGha a függvény sikeres.

Remarks

A sokszögkitöltési módok leírását a SetPolyFillMode tagfüggvényben talál.

CDC::GetROP2

Lekéri az aktuális rajzmódot.

int GetROP2() const;

Return Value

A rajz mód. A rajzmód értékeinek listáját a SetROP2 tagfüggvényben találja.

Remarks

A rajzmód azt határozza meg, hogy a toll színei és a kitöltött objektumok belső felülete hogyan lesz kombinálva a megjelenítési felületen már látható színnel.

CDC::GetSafeHdc

Hívja meg ezt a tagfüggvényt a kimeneti eszköz környezetének lekéréséhez m_hDC.

HDC GetSafeHdc() const;

Return Value

Eszközkörnyezeti leíró.

Remarks

Ez a tagfüggvény null mutatókkal is működik.

CDC::GetStretchBltMode

Lekéri az aktuális bitkép-nyújtás módot.

int GetStretchBltMode() const;

Return Value

A visszatérési érték az aktuális bitkép-nyújtás módját adja meg – STRETCH_ANDSCANSSTRETCH_DELETESCANSvagy STRETCH_ORSCANS – ha a függvény sikeres.

Remarks

A bitkép-nyújtás módja határozza meg, hogy a rendszer hogyan távolítja el az információkat a StretchBlt tagfüggvény által kinyújtott vagy tömörített bitképekből.

Az STRETCH_ANDSCANS előtér-képpontok STRETCH_ORSCANS a monokróm bitképekben való megőrzésére szolgálnak. A STRETCH_DELETESCANS módot általában a színbitképek színének megőrzésére használják.

CDC::GetTabbedTextExtent

Hívja meg ezt a tagfüggvényt egy karaktersztring szélességének és magasságának kiszámításához az attribútumeszköz-környezet használatával m_hAttribDC.

CSize GetTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

Parameters

lpszString
Egy karaktersztringre mutat. A paraméterhez objektumot is átadhat CString .

nCount
A karakterlánc által mutatott lpszStringhosszát adja meg.

nTabPositions
A tömb lpnTabStopPositionstabulátor pozícióinak számát adja meg.

lpnTabStopPositions
A logikai egységek tabulátorpozícióit tartalmazó egész számok tömbjére mutat. A tabulátorokat növekvő sorrendbe kell rendezni; a legkisebb x értéknek a tömb első elemének kell lennie. A háttérlapok nem engedélyezettek.

str
A CString megrajzolandó karaktereket tartalmazó objektum.

Return Value

A sztring méretei (logikai egységekben) egy CSize objektumban.

Remarks

Ha a sztring egy vagy több tabulátorkarakterekből áll, a sztring szélessége a megadott tabulátorokon lpnTabStopPositionsalapul. A függvény az aktuálisan kijelölt betűtípust használja a sztring dimenzióinak kiszámításához.

Az aktuális kivágási régió nem tolja el a függvény által visszaadott szélességet és magasságot GetTabbedTextExtent .

Mivel egyes eszközök nem helyeznek karaktereket normál cellatömbökbe (vagyis a karaktereket kernezik), előfordulhat, hogy a sztringben lévő karakterek kiterjedésének összege nem egyenlő a sztring terjedelmével.

Ha nTabPositions 0 és lpnTabStopPositions van NULL, akkor a lapok az átlagos karakterszélesség nyolcszorosára lesznek kibontva. Ha nTabPositions 1, a tabulátorokat a tömb első értéke által megadott távolság választja el egymástól lpnTabStopPositions . Ha lpnTabStopPositions egynél több értékre mutat, a tömb minden egyes értékéhez be van állítva tabulátor a megadott nTabPositionsszámig.

CDC::GetTextAlign

Lekéri az eszközkörnyezet szövegigazítási jelzőinek állapotát.

UINT GetTextAlign() const;

Return Value

A szövegigazítási jelzők állapota. A visszatérési érték az alábbi értékek egyike vagy több:

  • TA_BASELINE Az x tengely és a választott betűtípus alapkonfigurációjának igazítását adja meg a határolókereten belül.

  • TA_BOTTOM Az x tengely és a határoló téglalap aljának igazítását adja meg.

  • TA_CENTER Az y tengely és a határoló téglalap középvonalának igazítását adja meg.

  • TA_LEFT Az y tengely és a határolókeret bal oldalának igazítását adja meg.

  • TA_NOUPDATECP Azt adja meg, hogy az aktuális pozíció nem frissül.

  • TA_RIGHT Megadja az y tengely és a határolókeret jobb oldalának igazítását.

  • TA_TOP Az x tengely és a határoló téglalap tetejének igazítását adja meg.

  • TA_UPDATECP Az aktuális pozíció frissítését adja meg.

Remarks

A szövegigazítási jelzők határozzák meg, hogy a tag és ExtTextOut a TextOut tag hogyan igazítja a szöveg sztringjét a sztring kiindulási pontjával szemben. A szövegigazítási jelzők nem feltétlenül egybites jelölők, és 0-nak is lehetnek. Annak ellenőrzéséhez, hogy egy jelölő be van-e állítva, az alkalmazásnak az alábbi lépéseket kell követnie:

  1. Alkalmazza a bitenkénti OR (|) operátort a jelölőre és a kapcsolódó jelzőkre az alábbiak szerint csoportosítva:

    • TA_LEFT, TA_CENTERés TA_RIGHT

    • TA_BASELINE, TA_BOTTOMés TA_TOP

    • TA_NOUPDATECP és TA_UPDATECP

  2. Alkalmazza a C++ bitenkénti ÉS (&) operátort az eredményre és a visszatérési értékre GetTextAlign.

  3. Tesztelje az eredmény egyenlőségét és a jelzőt.

CDC::GetTextCharacterExtra

Lekéri az aktuális beállítást az intercharacter térközének mennyiségéhez.

int GetTextCharacterExtra() const;

Return Value

Az intercharacter térközének mennyisége.

Remarks

A GDI minden karakterhez hozzáadja ezt a térközt, beleértve a törés karaktereket is, amikor szövegsort ír az eszközkörnyezetbe.

Az intercharacter térközének alapértelmezett értéke 0.

CDC::GetTextColor

Lekéri az aktuális szövegszínt.

COLORREF GetTextColor() const;

Return Value

Az aktuális szövegszín RGB-színértékként.

Remarks

A szövegszín a GDI szövegkimeneti tagfüggvényeivel TextOutrajzolt karakterek előtérszíne, ExtTextOutés TabbedTextOut.

CDC::GetTextExtent

Ennek a tagfüggvénynek a meghívásával kiszámíthatja egy szövegsor szélességét és magasságát az aktuális betűtípussal a dimenziók meghatározásához.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

Parameters

lpszString
Egy karaktersorozatra mutat. A paraméterhez objektumot is átadhat CString .

nCount
A sztringben szereplő karakterek számát adja meg.

str
A CString megadott karaktereket tartalmazó objektum.

Return Value

A sztring méretei (logikai egységekben) egy CSize objektumban.

Remarks

A rendszer lekéri az információt az attribútumeszköz környezetéből m_hAttribDC.

Alapértelmezés szerint feltételezi, hogy az a szöveg, GetTextExtent amelyhez lekéri a dimenziót, vízszintes vonal mentén van beállítva (azaz a feloldás 0). Ha nem nulla feloldást megadó betűtípust hoz létre, a szöveg szögét explicit módon kell átalakítania a sztring dimenzióinak lekéréséhez.

Az aktuális kivágási régió nem befolyásolja a visszaadott szélességet és magasságot GetTextExtent.

Mivel egyes eszközök nem helyeznek karaktereket normál cellatömbökbe (vagyis kerninget végeznek), előfordulhat, hogy a sztringben lévő karakterek kiterjedésének összege nem egyenlő a sztring terjedelmével.

CDC::GetTextExtentExPointI

Lekéri egy adott sztring azon karaktereinek számát, amelyek elférnek egy adott területen belül, és kitölt egy tömböt az egyes karakterek szövegének terjedelmével.

BOOL GetTextExtentExPointI(
    LPWORD pgiIn,
    int cgi,
    int nMaxExtent,
    LPINT lpnFit,
    LPINT alpDx,
    LPSIZE lpSize) const;

Parameters

pgiIn
Glyph-indexek tömbjének mutatója, amelynél a mértékeket le kell kérni.

cgi
A tömb által mutatott pgiInkarakterjelek számát adja meg.

nMaxExtent
A formázott sztring maximális megengedett szélességét adja meg logikai egységekben.

lpnFit
Egy egész számra mutató mutató, amely a megadott nMaxExtentterületen elférő karakterek maximális számát kapja meg. Ha lpnFit igen NULL, nMaxExtent akkor a rendszer figyelmen kívül hagyja.

alpDx
Mutató egy egész számokból álló tömbre, amely részleges karakterjel-kiterjedéseket kap. A tömb minden eleme megadja a logikai egységekben a glyph indexek tömbjének kezdete és a megadott térben nMaxExtentelférő egyik karakterjel közötti távolságot. Bár ennek a tömbnek legalább annyi elemből kell rendelkeznie, mint a glyph-indexek által cgimeghatározottakból, a függvény a tömböt csak a megadott számú karakterjelindexre lpnFittölti ki mértékekkel. Ha lpnDx igen NULL, a függvény nem számít ki részleges sztringszélességeket.

lpSize
Mutasson egy SIZE szerkezetre, amely logikai egységekben fogadja a glifikus indexek tömbjének dimenzióit. Ez az érték nem lehet NULL.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a tagfüggvény a Windows SDK-ban leírtak szerint emulálja a függvény GetTextExtentExPointIfunkcióit.

CDC::GetTextExtentPointI

Lekéri a megadott karakterjelindexek tömbjének szélességét és magasságát.

BOOL GetTextExtentPointI(
    LPWORD pgiIn,
    int cgi,
    LPSIZE lpSize) const;

Parameters

pgiIn
Glyph-indexek tömbjének mutatója, amelynél a mértékeket le kell kérni.

cgi
A tömb által mutatott pgiInkarakterjelek számát adja meg.

lpSize
Mutasson egy SIZE szerkezetre, amely logikai egységekben fogadja a glifikus indexek tömbjének dimenzióit. Ez az érték nem lehet NULL.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a tagfüggvény a Windows SDK-ban leírtak szerint emulálja a függvény GetTextExtentPointIfunkcióit.

CDC::GetTextFace

Ennek a tagfüggvénynek a meghívásával másolja az aktuális betűtípus betűtípusnevét egy pufferbe.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

Parameters

nCount
Megadja a puffer méretét (bájtban). Ha a betűkép neve hosszabb, mint a paraméter által megadott bájtok száma, a név csonkolt lesz.

lpszFacename
A betűtípus nevének pufferére mutat.

rString
Hivatkozás egy CString objektumra.

Return Value

A pufferbe másolt bájtok száma, a null karaktert nem beleértve. Hiba esetén 0.

Remarks

A betűtípus neve null értékű sztringként lesz másolva.

CDC::GetTextMetrics

Lekéri az aktuális betűtípus metrikáit az attribútumeszköz-környezet használatával.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameters

lpMetrics
TEXTMETRIC A metrikákat fogadó struktúrára mutat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

CDC::GetViewportExt

Lekéri az eszközkörnyezet nézetportjának x és y terjedelmét.

CSize GetViewportExt() const;

Return Value

Az x- és y-mértékek (eszközegységekben) objektumként CSize .

CDC::GetViewportOrg

Lekéri az eszközkörnyezethez társított nézetport forrásának x és y koordinátáit.

CPoint GetViewportOrg() const;

Return Value

A nézetport eredete (az eszköz koordinátáiban) objektumként CPoint .

CDC::GetWindow

A megjelenítési eszköz környezetéhez társított ablakot adja vissza.

CWnd* GetWindow() const;

Return Value

Ha sikeres, mutasson egy CWnd objektumra, ellenkező esetben NULL.

Remarks

Ez egy speciális függvény. Előfordulhat például, hogy ez a tagfüggvény nem adja vissza a nézetablakot nyomtatáskor vagy nyomtatási képként. Mindig a kimenethez társított ablakot adja vissza. Az adott tartományvezérlőt használó kimeneti függvények ebbe az ablakba rajzolnak.

CDC::GetWindowExt

Lekéri az eszközkörnyezethez társított ablak x- és y-terjedelmét.

CSize GetWindowExt() const;

Return Value

Az x- és y-mértékek (logikai egységekben) objektumként CSize .

CDC::GetWindowOrg

Lekéri az eszközkörnyezethez társított ablak eredetének x és y koordinátáit.

CPoint GetWindowOrg() const;

Return Value

Az ablak eredete (logikai koordinátákban) objektumként CPoint .

CDC::GetWorldTransform

Lekéri az aktuális világteret a laptér átalakításához.

BOOL GetWorldTransform(XFORM& rXform) const;

Parameters

rXform
Hivatkozás egy XFORM olyan struktúrára, amely megkapja az aktuális világteret a laptér-átalakításhoz.

Return Value

Sikertelen értéket ad vissza a sikerességhez.

Hiba esetén 0 értéket ad vissza.

A kiterjesztett hibainformációk lekéréséhez hívja meg a következőt GetLastError:

Remarks

Ez a metódus körbefuttatja a Windows GDI függvényt GetWorldTransform.

CDC::GradientFill

Ennek a tagfüggvénynek a meghívásával téglalap- és háromszögszerkezeteket tölthet ki olyan színnel, amely az egyik oldalról a másikra egyenletesen elhalványul.

BOOL GradientFill(
    TRIVERTEX* pVertices,
    ULONG nVertices,
    void* pMesh,
    ULONG nMeshElements,
    DWORD dwMode);

Parameters

pVertices
Mutasson egy olyan szerkezettömbre TRIVERTEX , amely mindegyik egy háromszög csúcspontot határoz meg.

nVertices
A csúcspontok száma.

pMesh
GRADIENT_TRIANGLE Háromszög módban lévő struktúrák tömbje vagy téglalap módban lévő struktúrák tömbjeGRADIENT_RECT.

nMeshElements
Az elemek (háromszögek vagy téglalapok) száma a következőben pMesh: .

dwMode
Színátmenetes kitöltési módot ad meg. A lehetséges értékek listáját a Windows SDK-ban találja GradientFill .

Return Value

sikeres TRUE; egyéb esetben FALSE.

Remarks

További információt a Windows SDK-ban talál GradientFill .

CDC::GrayString

Halványított (szürke) szöveget rajzol az adott helyen a szöveg memóriabitképbe írásával, a bitkép halványításával, majd a bitkép megjelenítésre másolásával.

virtual BOOL GrayString(
    CBrush* pBrush,
    BOOL (CALLBACK* lpfnOutput)(
    HDC,
    LPARAM,
    int),
    LPARAM lpData,
    int nCount,
    int x,
    int y,
    int nWidth,
    int nHeight);

Parameters

pBrush
Azonosítja a halványításhoz (szürkítéshez) használandó kefét.

lpfnOutput
Megadja az alkalmazás által megadott visszahívási függvény eljáráspéldány-címét, amely megrajzolja a sztringet. További információkért tekintse meg a Windows OutputFuncvisszahívási függvényének leírását. Ha ez a paraméter, NULLa rendszer a Windows TextOut függvénnyel rajzolja meg a sztringet, és lpData feltételezzük, hogy a kimenetként használt karaktersztring hosszú mutatója.

lpData
A kimeneti függvénynek továbbítandó adatokra mutató távoli mutatót ad meg. Ha lpfnOutput igen NULL, lpData akkor a kimenethez hosszú mutatónak kell lennie a sztringhez.

nCount
A kimeneti karakterek számát adja meg. Ha ez a paraméter 0, GrayString kiszámítja a sztring hosszát (feltéve, hogy lpData ez a sztringre mutató mutató). Ha nCount 1, és a függvény 0 értéket ad lpfnOutput vissza, a kép megjelenik, de nem halványodik.

x
A sztringet tartalmazó téglalap kezdőpozíciójának logikai x koordinátáját adja meg.

y
A sztringet tartalmazó téglalap kezdő pozíciójának logikai y koordinátáját adja meg.

nWidth
A sztringet tartalmazó téglalap szélességét (logikai egységekben) adja meg. Ha nWidth 0, GrayString a terület szélességét számítja ki, feltéve, hogy lpData a sztringre mutató mutató.

nHeight
Megadja a sztringet tartalmazó téglalap magasságát (logikai egységekben). Ha nHeight 0, GrayString kiszámítja a terület magasságát, feltéve, hogy lpData a sztringre mutató mutató.

Return Value

Nemzero, ha a sztring meg van rajzolva, vagy 0, ha a TextOut függvény vagy az alkalmazás által megadott kimeneti függvény 0 értéket ad vissza, vagy ha nem volt elegendő memória a memória bitképének létrehozásához a halványításhoz.

Remarks

A függvény a kijelölt ecsettől és háttértől függetlenül halványítja a szöveget. A GrayString tagfüggvény az aktuálisan kijelölt betűtípust használja. A MM_TEXT függvény használata előtt ki kell választani a leképezési módot.

Az alkalmazások halvány (szürkén) sztringeket rajzolhatnak olyan eszközökön, amelyek támogatják az egyszínű szürke színt a tagfüggvény meghívása GrayString nélkül. A rendszer színe COLOR_GRAYTEXT a letiltott szöveg rajzolásához használt egyszürke rendszerszín. Az alkalmazás meghívhatja a Windows függvényt a GetSysColor színérték lekéréséhez COLOR_GRAYTEXT. Ha a szín nem 0 (fekete), az alkalmazás meghívhatja a SetTextColor tagfüggvényt, hogy a szöveg színét a színértékre állítsa, majd közvetlenül rajzolja meg a sztringet. Ha a beolvasott szín fekete, az alkalmazásnak szürkére kell hívnia GrayString a szöveget.

Ha lpfnOutput igen, akkor a NULLGDI a Windows TextOut függvényt használja, és lpData feltételezzük, hogy a kimenetként használt karakterre mutató távoli mutató. Ha a kimenetnek szánt karaktereket nem tudja kezelni a TextOut tagfüggvény (például a sztring bitképként van tárolva), az alkalmazásnak saját kimeneti függvényt kell megadnia.

A Visszahívási függvényeknek a Windowsba való visszatérés előtt le kell csapni a Microsoft Foundation kivételeit, mivel a kivételeket nem lehet átvenni a visszahívási határokon. A kivételekről további információt a Kivételek című cikkben talál.

Az átadott visszahívási függvénynek GrayString a hívási __stdcall konvencióval kell rendelkeznie, és exportálnia kell a következővel __declspec: .

Ha a keretrendszer előzetes módban van, a GrayString tagfüggvény hívását egy hívásra TextOut fordítja le, és a visszahívási függvény nem lesz meghívva.

CDC::HIMETRICtoDP

Ezt a függvényt akkor használja, ha a méreteket OLE-ről képpontokra konvertálja HIMETRIC .

void HIMETRICtoDP(LPSIZE lpSize) const;

Parameters

lpSize
Egy szerkezetre vagy SIZE objektumra CSize mutat.

Remarks

Ha az eszköz környezeti objektumának MM_LOENGLISHleképezési módja , MM_HIENGLISHMM_LOMETRIC vagy MM_HIMETRIC, akkor az átalakítás a fizikai hüvelykben lévő képpontok számán alapul. Ha a leképezési mód az egyik másik nem korlátozott mód (például MM_TEXT), akkor az átalakítás a logikai hüvelykben lévő képpontok számán alapul.

CDC::HIMETRICtoLP

A függvény meghívása az egységek logikai egységekké alakításához HIMETRIC .

void HIMETRICtoLP(LPSIZE lpSize) const;

Parameters

lpSize
Egy szerkezetre vagy SIZE objektumra CSize mutat.

Remarks

Ezt a függvényt akkor használja, ha méretet kap HIMETRIC az OLE-tól, és azokat az alkalmazás természetes leképezési módjára szeretné konvertálni.

Az átalakítás úgy történik, hogy először képpontokká konvertálja az HIMETRIC egységeket, majd ezeket az egységeket logikai egységekké alakítja az eszközkörnyezet aktuális leképezési egységeinek használatával. Vegye figyelembe, hogy az eszköz ablakának és nézetének mértéke hatással lesz az eredményre.

CDC::IntersectClipRect

Új kivágási régiót hoz létre az aktuális régió és a x1, y1, x2és y2.

int IntersectClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int IntersectClipRect(LPCRECT lpRect);

Parameters

x1
A téglalap bal felső sarkának logikai x koordinátáját adja meg.

y1
A téglalap bal felső sarkának logikai y koordinátáját adja meg.

x2
A téglalap jobb alsó sarkának logikai x koordinátáját adja meg.

y2
A téglalap jobb alsó sarkának logikai y koordinátáját adja meg.

lpRect
A téglalapot adja meg. A paraméter egy objektumot vagy mutatót is átadhat CRect egy RECT szerkezetnek.

Return Value

Az új kivágási régió típusa. Az alábbi értékek bármelyike lehet:

  • COMPLEXREGION Az új kivágási régió szegélye átfedésben van.

  • ERROR Az eszközkörnyezet érvénytelen.

  • NULLREGION Az új kivágási régió üres.

  • SIMPLEREGION Az új kivágási régióban nincsenek átfedésben a szegélyek.

Remarks

A GDI az összes további kimenetet az új határvonalon belülre illeszti. A szélesség és a magasság nem haladhatja meg a 32 767-et.

CDC::InvertRect

Megfordítja a megadott téglalap tartalmát.

void InvertRect(LPCRECT lpRect);

Parameters

lpRect
Olyanra mutat RECT , amely a megfordítandó téglalap logikai koordinátáit tartalmazza. A paraméterhez objektumot is átadhat CRect .

Remarks

Az inverzió egy logikai NOT művelet, és az egyes képpontok bitjeinek tükrözése. A monokróm kijelzőken a függvény fehér képpontokat fekete és fekete képpontokat fehérsé tesz. A színkijelzések esetében az inverzió attól függ, hogy a színek hogyan jönnek létre a megjelenítéshez. Ha ugyanazt a téglalapot kétszer hívja InvertRect meg, az visszaállítja a megjelenítést az előző színére.

Ha a téglalap üres, semmi sem rajzolódik meg.

Example

void CDCView::DoInvertRect(CDC *pDC)
{
   // invert rect from 20,20 to 50,50
   CRect rect(20, 20, 50, 50);
   pDC->InvertRect(rect);

   // inverting again restores to normal
   ::Sleep(1000);
   pDC->InvertRect(rect);
}

CDC::InvertRgn

A megadott régió színeinek megfordítása pRgn.

BOOL InvertRgn(CRgn* pRgn);

Parameters

pRgn
A megfordítandó régiót azonosítja. A régió koordinátái logikai egységekben vannak megadva.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A monokróm kijelzőken a függvény fehér képpontokat fekete és fekete képpontokat fehérsé tesz. A színkijelzések esetében az inverzió attól függ, hogyan jönnek létre a színek a megjelenítéshez.

CDC::IsPrinting

Meghatározza, hogy az eszközkörnyezetet használja-e nyomtatáshoz.

BOOL IsPrinting() const;

Return Value

Nonzero, ha az CDC objektum egy nyomtató tartományvezérlője; egyébként 0.

CDC::LineTo

Vonal rajzolása az aktuális pozíciótól a (vagypoint) által xy megadott pontig, de nem beleértve azt.

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

Parameters

x
A vonal végpontjának logikai x koordinátáját adja meg.

y
A vonal végpontjának logikai y koordinátáját adja meg.

point
A vonal végpontjának megadása. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nemzero, ha a vonalat megrajzolták; egyéb esetben 0.

Remarks

A vonal a kijelölt tollal van rajzolva. Az aktuális pozíció a következőre van állítva: x. ypoint

Example

Lásd a példát a CRect::CenterPoint.

CDC::LPtoDP

A logikai egységeket eszközegységekké alakítja.

void LPtoDP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void LPtoDP(LPRECT lpRect) const;
void LPtoDP(LPSIZE lpSize) const;

Parameters

lpPoints
Ponttömbre mutat. A tömb minden pontja egy POINT struktúra vagy objektum CPoint .

nCount
A tömb pontjainak száma.

lpRect
Egy szerkezetre RECT vagy objektumra CRect mutat. Ez a paraméter a téglalap logikai egységekről eszközegységekre való leképezésének gyakori esetére szolgál.

lpSize
Egy szerkezetre SIZE vagy objektumra CSize mutat.

Remarks

A függvény a GDI logikai koordinátarendszeréből egy eszközkoordináta-rendszerbe leképezi az egyes pontok vagy méretek koordinátáit. Az átalakítás az aktuális leképezési módtól, valamint az eszköz ablakának és nézetének eredetétől és kiterjedésétől függ.

A pontok x és y koordinátái a -32 768 és 32 767 közötti tartományban 2 bájtos aláírt egész számok. Azokban az esetekben, amikor a leképezési mód ezen korlátoknál nagyobb értékeket eredményezne, a rendszer -32 768 és 32 767 értékre állítja az értékeket.

CDC::LPtoHIMETRIC

A függvény meghívása logikai egységek egységekké alakításához HIMETRIC .

void LPtoHIMETRIC(LPSIZE lpSize) const;

Parameters

lpSize
Egy szerkezetre SIZE vagy objektumra CSize mutat.

Remarks

Ezt a függvényt akkor használja, ha méretet ad HIMETRIC az OLE-nek, és átalakítja az alkalmazás természetes leképezési módjából. Az eszköz ablakának és nézetportjának terjedelme hatással lesz az eredményre.

Az átalakítás úgy történik, hogy először képponttá alakítja a logikai egységeket az eszközkörnyezet aktuális leképezési egységeinek használatával, majd ezeket az egységeket egységekké HIMETRIC alakítja.

CDC::m_hAttribDC

Az objektum attribútumeszköz-környezete CDC .

HDC m_hAttribDC;

Remarks

Alapértelmezés szerint ez az eszközkörnyezet egyenlő a következővel m_hDC: . Az eszközkörnyezetből adatokat kérő GDI-hívások általában CDC a következőre irányulnak m_hAttribDC: . A két eszközkörnyezet használatáról további információt az CDC osztály leírásában talál.

CDC::m_hDC

Az objektum kimeneti eszközkörnyezete CDC .

HDC m_hDC;

Remarks

Alapértelmezés szerint m_hDC egyenlő m_hAttribDCa többi eszközkörnyezettel CDC. A kimenetet létrehozó GDI-hívások általában CDC az m_hDC eszközkörnyezetbe kerülnek. Inicializálhatja m_hDC és m_hAttribDC különböző eszközökre mutathat. A két eszközkörnyezet használatáról további információt az CDC osztály leírásában talál.

CDC::MaskBlt

A forrás- és célbitképek színadatait egyesíti az adott maszk és raszter művelettel.

BOOL MaskBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    CBitmap& maskBitmap,
    int xMask,
    int yMask,
    DWORD dwRop);

Parameters

x
A cél téglalap bal felső sarkának logikai x koordinátáját adja meg.

y
A cél téglalap bal felső sarkának logikai y koordinátáját adja meg.

nWidth
A cél téglalapjának és a forrásbitképnek a logikai egységekben megadott szélességét adja meg.

nHeight
A cél téglalapjának és a forrásbitképnek a logikai egységekben megadott magasságát adja meg.

pSrcDC
Azonosítja azt az eszközkörnyezetet, amelyből a bitképet át szeretné másolni. Nullának kell lennie, ha a dwRop paraméter olyan raszteres műveletet határoz meg, amely nem tartalmaz forrást.

xSrc
A forrásbitkép bal felső sarkának logikai x koordinátáját adja meg.

ySrc
A forrásbitkép bal felső sarkának logikai y koordinátáját adja meg.

maskBitmap
Azonosítja a monokróm maszk bitképét a forráseszköz környezetében lévő színbitképpel kombinálva.

xMask
Megadja a paraméter által megadott maszk bitképének vízszintes képponteltolását maskBitmap .

yMask
Megadja a paraméter által megadott maszk bitképének függőleges képponteltolását maskBitmap .

dwRop
Az előtérbeli és a háttérbeli ternáris raszteres műveleti kódokat adja meg, amelyeket a függvény a forrás- és céladatok kombinációjának szabályozására használ. A háttér raszter műveleti kódja az érték magas szava magas bájtjában van tárolva; az előtérben lévő raszteres műveleti kód az érték magas szava alacsony bájtjában van tárolva; az érték alacsony szava figyelmen kívül lesz hagyva, és nullának kell lennie. A makró MAKEROP4 ilyen kombinációkat hoz létre az előtérben és a háttérben futó raszteres műveleti kódokhoz. A függvény kontextusában az előtérről és a háttérről a Megjegyzések szakaszban olvashat. A gyakori raszteres műveleti kódok listáját a BitBlt tagfüggvényben találja.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A maszkban megadott maskBitmap 1 érték azt jelzi, hogy az előtér raszteres műveleti kódját dwRop ezen a helyen kell alkalmazni. A maszkban lévő 0 érték azt jelzi, hogy a háttér raszter műveleti kódját dwRop ezen a helyen kell alkalmazni. Ha a raszterműveletek forrást igényelnek, a maszk téglalapjának a forrás téglalapot kell lefednie. Ha nem, a függvény meghiúsul. Ha a raszterműveletek nem igényelnek forrást, a maszk téglalapjának tartalmaznia kell a cél téglalapot. Ha nem, a függvény meghiúsul.

Ha a függvény meghívásakor a forráseszköz környezetében forgási vagy nyírási átalakítás van érvényben, hiba történik. Más típusú átalakítások azonban engedélyezettek.

Ha a forrás, a minta és a célbitképek színformátumai eltérnek, ez a függvény átalakítja a mintát vagy a forrásformátumot, vagy mindkettőt a célformátumnak megfelelően. Ha a maszk bitképe nem monokróm bitkép, hiba történik. Továbbfejlesztett metafájl rögzítésekor hiba történik (és a függvény 0-t ad vissza), ha a forráseszköz környezete egy továbbfejlesztett metafájl eszközkörnyezetet azonosít. Nem minden eszköz támogatja MaskBlt. Egy alkalmazásnak fel kell hívnia GetDeviceCaps annak megállapítására, hogy egy eszköz támogatja-e ezt a függvényt. Ha nem ad meg maszk bitképet, ez a függvény pontosan úgy viselkedik, mint BitBltaz előtérben lévő raszteres műveleti kód használatával. A képpont eltolja a maszk bittérkép-leképezését a forráseszköz-környezet bitképének pontjára (0,0). Ez olyan esetekben hasznos, amikor a maszk bitképe maszkokat tartalmaz; az alkalmazások a képponteltolások és a téglalapméretek módosításával könnyedén alkalmazhatják bármelyiket egy maszkszűkítési feladatra MaskBlt.

CDC::ModifyWorldTransform

Az eszközkörnyezet világátalakítását a megadott mód használatával módosítja.

BOOL ModifyWorldTransform(
    const XFORM& rXform,
    DWORD iMode);

Parameters

rXform
Hivatkozás az XFORM adott eszközkörnyezet világátalakításának módosítására használt struktúrára.

iMode
Meghatározza, hogy az átalakítási adatok hogyan módosítják a jelenlegi világátalakítást. Azoknak az értékeknek a listáját, amelyeket ez a paraméter el tud vinni, tekintse meg a következőt ModifyWorldTransform: .

Return Value

Sikertelen értéket ad vissza a sikerességhez.

Hiba esetén 0 értéket ad vissza.

A kiterjesztett hibainformációk lekéréséhez hívja meg a következőt GetLastError:

Remarks

Ez a metódus körbefuttatja a Windows GDI függvényt ModifyWorldTransform.

CDC::MoveTo

Az aktuális pozíció áthelyezése az és y (vagy a) által xpointmegadott pontra.

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

Parameters

x
Az új pozíció logikai x koordinátáját adja meg.

y
Az új pozíció logikai y koordinátáját adja meg.

point
Az új pozíciót adja meg. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Az előző pozíció x- és y koordinátái objektumként CPoint .

Example

Lásd a példát a CRect::CenterPoint.

CDC::OffsetClipRgn

Áthelyezi az eszközkörnyezet kivágási régióját a megadott eltolásokkal.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

Parameters

x
A balra vagy jobbra mozgatni kívánt logikai egységek számát adja meg.

y
A felfelé vagy lefelé mozgatni kívánt logikai egységek számát adja meg.

size
Megadja az eltolás összegét.

Return Value

Az új régió típusa. Az alábbi értékek bármelyike lehet:

  • COMPLEXREGION A vágórégió szegélye átfedésben van.

  • ERROR Az eszközkörnyezet érvénytelen.

  • NULLREGION A kivágási régió üres.

  • SIMPLEREGION A kivágási régióban nincsenek átfedésben a szegélyek.

Remarks

A függvény az x tengely mentén mozgatja a régióegységeket x , az y egységeket pedig az y tengely mentén.

CDC::OffsetViewportOrg

Módosítja a nézetport forrásának koordinátáit az aktuális nézetport-forrás koordinátáihoz képest.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

Parameters

nWidth
Megadja az aktuális forrás x koordinátáihoz hozzáadni kívánt eszközegységek számát.

nHeight
Megadja az aktuális forrás y koordinátához hozzáadni kívánt eszközegységek számát.

Return Value

Az előző nézetport eredete (az eszköz koordinátáiban) objektumként CPoint .

CDC::OffsetWindowOrg

Módosítja az ablak eredetének koordinátáit az aktuális ablak eredetének koordinátáihoz viszonyítva.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

Parameters

nWidth
Megadja az aktuális forrás x koordinátáihoz hozzáadni kívánt logikai egységek számát.

nHeight
Megadja az aktuális forrás y koordinátához hozzáadandó logikai egységek számát.

Return Value

Az előző ablak eredete (logikai koordinátákban) objektumként CPoint .

CDC::operator HDC

Ezzel az operátorral lekérheti az objektum eszközkörnyezeti leíróját CDC .

operator HDC() const;

Return Value

Ha sikeres, az eszköz környezeti objektumának kezelője; egyéb esetben. NULL

Remarks

A leíróval közvetlenül meghívhatja a Windows API-kat.

CDC::PaintRgn

Az aktuális ecsettel pRgn megadott régiót tölti ki.

BOOL PaintRgn(CRgn* pRgn);

Parameters

pRgn
Azonosítja a kitöltendő régiót. Az adott régió koordinátái logikai egységekben vannak megadva.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

CDC::PatBlt

Létrehoz egy bitmintát az eszközön.

BOOL PatBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    DWORD dwRop);

Parameters

x
Megadja a minta fogadásához szükséges téglalap bal felső sarkának logikai x koordinátáját.

y
A minta fogadásához szükséges téglalap bal felső sarkának logikai y koordinátáját adja meg.

nWidth
Megadja a minta fogadásához szükséges téglalap szélességét (logikai egységekben).

nHeight
Megadja a minta fogadásához szükséges téglalap magasságát (logikai egységekben).

dwRop
A raszteres műveleti kódot adja meg. A raszteres műveleti kódok (ROP-k) határozzák meg, hogy a GDI hogyan egyesíti a színeket az aktuális ecsetet, egy lehetséges forrásbitképet és egy célbitképet tartalmazó kimeneti műveletekben. Ez a paraméter a következő értékek egyike lehet:

  • PATCOPY Minta másolása célbitképre.

  • PATINVERT A logikai XOR (^) operátorral egyesíti a célbitképet a mintával.

  • DSTINVERT Megfordítja a célbitképet.

  • BLACKNESS Az összes kimenetet feketére váltja.

  • WHITENESS Az összes kimenet fehérre változik.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A minta a kiválasztott ecset és az eszközön már meglévő minta kombinációja. A raszterműveleti kód, amelyet dwRop a minták kombinálása határoz meg. A függvényhez felsorolt raszterműveletek a teljes 256 ternáris raszterműveleti kód korlátozott részhalmazai; különösen nem használható forrásra hivatkozó raszteres műveleti kód.

Nem minden eszközkörnyezet támogatja a függvényt PatBlt . Annak megállapításához, hogy egy eszközkörnyezet támogatja-e PatBlta funkciót, hívja meg a GetDeviceCaps tagfüggvényt az RASTERCAPS indexszel, és ellenőrizze a jelölő visszatérési RC_BITBLT értékét.

CDC::Pie

Kör alakú ék rajzolása egy háromliptikus ív rajzolásával, amelynek középpontját és két végpontját vonalak összekapcsolják.

BOOL Pie(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Pie(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
A határoló téglalap bal felső sarkának x koordinátáját adja meg (logikai egységekben).

y1
A határoló téglalap bal felső sarkának y koordinátáját adja meg (logikai egységekben).

x2
A határoló téglalap jobb alsó sarkának x koordinátáját adja meg (logikai egységekben).

y2
A határoló téglalap jobb alsó sarkának y koordinátáját adja meg (logikai egységekben).

x3
Az arc kezdőpontjának x koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

y3
Az arc kezdőpontjának y koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

x4
Az arc végpontjának x koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

y4
Az arc végpontjának y koordinátáját adja meg (logikai egységekben). Ennek a pontnak nem kell pontosan az íven feküdnie.

lpRect
A határolókeretet adja meg. A paraméter egy objektumot vagy mutatót is átadhat CRect egy RECT szerkezetnek.

ptStart
Az ív kezdőpontját adja meg. Ennek a pontnak nem kell pontosan az íven feküdnie. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

ptEnd
Az arc végpontját adja meg. Ennek a pontnak nem kell pontosan az íven feküdnie. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az ív középpontja a , , x2és y2 (vagy általlpRect) megadott x1y1határoló téglalap közepe. Az ív kezdő és záró pontjait az , , és (vagy az ésptEnd) ptStart határozza megx3.y4x4y3

Az ívet a kijelölt tollal rajzolja meg, az óramutató járásával ellentétes irányba haladva. Két további vonal rajzolva lesz minden végponttól az arc közepéig. A kör alakú terület tele van az aktuális ecsettel. Ha x3 egyenlő x4 és y3 egyenlő y4, akkor az eredmény egy három pont, amely a három pont közepétől a pontig (x3, y3) vagy (x4, y4) egyetlen vonallal rendelkezik.

A függvény által rajzolt ábra a jobb és az alsó koordinátákig terjed ki, de nem tartalmazza azokat. Ez azt jelenti, hogy az ábra y2 - y1 magassága és szélessége .x2 - x1 A határoló téglalap szélességének és magasságának egyaránt 2 egységnél nagyobbnak és 32 767 egységnél kisebbnek kell lennie.

Example

void CDCView::DrawPie(CDC *pDC)
{
   // Fill the client area with a simple pie chart. A
   // big blue slice covers 75% of the pie, from
   // 6 o'clock to 3 o'clock. This portion is filled
   // with blue and has a blue edge. The remaining 25%
   // is filled with a red, diagonal hatch and has
   // a red edge.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.

   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Pie(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter slice from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen with
   // the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Same parameters, but reverse start and end points.
   pDC->Pie(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::PlayMetaFile

A megadott metafájl tartalmát játssza le az eszközkörnyezetben.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

Parameters

hMF
Azonosítja a lejátszandó metafájlt.

hEnhMetaFile
Azonosítja a bővített metafájlt.

lpBounds
A kép megjelenítéséhez RECT használt határoló téglalap koordinátáit tartalmazó szerkezetre vagy CRect objektumra mutat. A koordináták logikai egységekben vannak megadva.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A metafájl tetszőleges számú alkalommal lejátszható.

A második verzió PlayMetaFile megjeleníti az adott továbbfejlesztett formátumú metafájlban tárolt képet. Amikor egy alkalmazás meghívja a második verziót PlayMetaFile, a Windows a továbbfejlesztett metafájl fejlécében lévő képkeretet használja a kép leképezéséhez az lpBounds paraméter által mutatott téglalapra. (Ez a kép lehet nyírt vagy elforgatott beállításával a világ átalakítása a kimeneti eszköz hívása PlayMetaFileelőtt .) A téglalap szélei mentén lévő pontok szerepelnek a képen. A továbbfejlesztett metafájl képe kivágható úgy, hogy meghatározza a kivágási régiót a kimeneti eszközön a továbbfejlesztett metafájl lejátszása előtt.

Ha egy továbbfejlesztett metafájl opcionális palettát tartalmaz, az alkalmazások egységes színeket érhetnek el úgy, hogy beállítanak egy színpalettát a kimeneti eszközön, mielőtt meghívják a második verziót PlayMetaFile. Az opcionális paletta lekéréséhez használja a GetEnhMetaFilePaletteEntries Windows függvényt. Egy továbbfejlesztett metafájl beágyazható egy újonnan létrehozott továbbfejlesztett metafájlba, ha meghívja PlayMetaFile a második verziót, és lejátssa a bővített forrás metafájlt az új továbbfejlesztett metafájl eszközkörnyezetébe.

A kimeneti eszköz környezetének állapotát ez a függvény megőrzi. A bővített metafájlban létrehozott, de nem törölt objektumokat ez a függvény törli. A függvény leállításához egy alkalmazás meghívhatja a CancelDC Windows függvényt egy másik szálról a művelet leállításához. Ebben az esetben a függvény nullát ad vissza.

CDC::PlgBlt

Bitblokkos átvitelt hajt végre a színadatok bitjeinek a forráseszköz környezetében megadott téglalapból a megadott párhuzamossági értékre az adott eszközkörnyezetben.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

Parameters

lpPoint
Egy logikai térben három pontból álló tömbre mutat, amely a cél-párhuzamosogram három sarkát azonosítja. A forrás téglalap bal felső sarka a tömb első pontjára, a jobb felső sarokban a tömb második pontjára, a bal alsó sarokban pedig a harmadik pontra van leképezve. A forrás téglalap jobb alsó sarkában a párhuzamosság implicit negyedik pontjára van leképezve.

pSrcDC
Azonosítja a forráseszköz környezetét.

xSrc
A forrás téglalap bal felső sarkának x koordinátáját adja meg logikai egységekben.

ySrc
A forrás téglalap bal felső sarkának y koordinátáját adja meg logikai egységekben.

nWidth
A forrás téglalap szélességét adja meg logikai egységekben.

nHeight
A forrás téglalap magasságát adja meg logikai egységekben.

maskBitmap
Egy választható monokróm bitképet azonosít, amely a forrás téglalap színeinek maszkolására szolgál.

xMask
A monokróm bitkép bal felső sarkának x koordinátáját adja meg.

yMask
A monokróm bitkép bal felső sarkának y koordinátáját adja meg.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ha a megadott bitmaszkfogópont egy érvényes monokróm bitképet azonosít, a függvény ezzel a bitképel maszkolja a forrás téglalap színadatait.

A parallelogram (D) negyedik csúcsa úgy van definiálva, hogy az első három pontot (A, B és C) vektorként kezeli, a számítás pedig D = B + C - A.

Ha a bitmaszk létezik, a maszk 1 értéke azt jelzi, hogy a forrás képpont színét át kell másolni a célhelyre. A maszkban lévő 0 érték azt jelzi, hogy a cél képpontszínét nem kell módosítani.

Ha a maszk téglalapja kisebb, mint a forrás- és cél téglalap, a függvény replikálja a maszkmintát.

A skálázási, fordítási és tükröződési átalakítások engedélyezettek a forráseszköz környezetében; azonban a forgatás és a nyíró transzformációk nem. Ha a maszk bitképe nem monokróm bitkép, hiba történik. A céleszköz környezetének nyújtásos módja határozza meg a képpontok nyújtásának vagy tömörítésének módját, ha szükséges. Továbbfejlesztett metafájl rögzítésekor hiba történik, ha a forráseszköz környezete egy továbbfejlesztett metafájlos eszközkörnyezetet azonosít.

A célkoordináták a céleszköz környezetének megfelelően alakulnak át; a forráskoordinátákat a forráseszköz környezetének megfelelően alakítjuk át. Ha a forrásátalakítás forgatással vagy nyírással rendelkezik, a rendszer hibát ad vissza. Ha a cél- és forrás téglalapok nem azonos színformátummal rendelkeznek, PlgBlt a forrás téglalapot a cél téglalapjának megfelelőre konvertálja. Nem minden eszköz támogatja PlgBlt. További információkért tekintse meg a RC_BITBLT tagfüggvény raszterképességének CDC::GetDeviceCaps leírását.

Ha a forrás- és céleszköz-környezetek nem kompatibilis eszközöket jelölnek, PlgBlt hibát ad vissza.

CDC::PolyBezier

Egy vagy több Bzier splines rajzolása.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
Olyan adatstruktúrák tömbjára POINT mutat, amelyek a spline(ok) végpontjait és vezérlőpontjait tartalmazzák.

nCount
A tömb pontjainak lpPoints számát adja meg. Ennek az értéknek a megrajzolandó splines számának több mint háromszorosának kell lennie, mivel minden Bzier-spline két vezérlőpontot és végpontot igényel, a kezdeti spline pedig egy másik kezdőpontot igényel.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a függvény a paraméter által lpPoints megadott végpontok és vezérlőpontok használatával köbBzier splines-okat rajzol. Az első spline az első ponttól a negyedik pontig húzódik, a második és a harmadik ponttal, mint vezérlőponttal. A sorozat minden további spline-jának pontosan három további pontra van szüksége: az előző spline végpontja lesz a kezdőpont, a sorozat következő két pontja vezérlőpont, a harmadik pedig a végpont.

A függvény nem használja vagy frissíti az aktuális pozíciót PolyBezier . Az ábra nincs kitöltve. Ez a függvény vonalakat rajzol az aktuális tollal.

CDC::PolyBezierTo

Egy vagy több Bzier splines rajzolása.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
A végpontokat és a vezérlőpontokat tartalmazó adatstruktúrák tömbje POINT .

nCount
A tömb pontjainak lpPoints számát adja meg. Ennek az értéknek háromszorosának kell lennie a rajzolandó spline-ok számának, mivel minden egyes Bzier-spline két vezérlőpontot és egy végpontot igényel.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a függvény a paraméter által lpPoints megadott vezérlőpontok használatával köbBzier splines-okat rajzol. Az első spline az aktuális pozícióból a harmadik pontra kerül, és az első két pontot használja vezérlőpontként. Minden további spline esetében a függvénynek pontosan három további pontra van szüksége, és az előző spline végpontját használja a következő kiindulópontként. PolyBezierTo az aktuális pozíciót az utolsó Bzier spline végpontjára helyezi. Az ábra nincs kitöltve. Ez a függvény vonalakat rajzol az aktuális tollal.

Example

Lásd a példát a CDC::BeginPath.

CDC::PolyDraw

Vonalszegmenseket és Bzier-gördvonalakat rajzol.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

Parameters

lpPoints
Olyan adatstruktúrák tömbjeire POINT mutat, amelyek tartalmazzák az egyes vonalszegmensek végpontjait, valamint az egyes Bzier spline-k végpontjait és vezérlőpontjait.

lpTypes
Egy tömbre mutat, amely meghatározza a lpPoints tömb egyes pontjainak használatát. Az értékek a következők lehetnek:

  • PT_MOVETO Megadja, hogy ez a pont egy különálló ábrát indít el. Ez a pont lesz az új jelenlegi pozíció.

  • PT_LINETO Megadja, hogy a vonalat az aktuális pozícióból erre a pontra kell húzni, amely ezután az új aktuális pozícióvá válik.

  • PT_BEZIERTO Azt adja meg, hogy ez a pont egy Bzier spline vezérlőpontja vagy végpontja.

PT_BEZIERTO típusok mindig három készletben fordulnak elő. Az aktuális pozíció határozza meg a Bzier spline kezdőpontját. Az első két PT_BEZIERTO pont a vezérlőpontok, a harmadik PT_BEZIERTO pedig a végpont. A végpont lesz az új aktuális pozíció. Ha nincs három egymást követő PT_BEZIERTO pont, hibaüzenet jelenik meg.

Egy PT_LINETO vagy PT_BEZIERTO típus a következő állandóval kombinálható a bitenkénti operátorral , VAGY annak jelzésére, hogy a megfelelő pont az ábra utolsó pontja, és az ábra zárt:

  • PT_CLOSEFIGUREAzt adja meg, hogy az ábra automatikusan be legyen zárva, miután a pont vagy PT_BEZIERTO a PT_LINETO típus elkészült. A vonal ettől a ponttól a legutóbbiig PT_MOVETO vagy MoveTo pontig húzódik.

    Ez a PT_LINETO jelző egy vonal típusával vagy egy PT_BEZIERTO Bzier spline végponttípusával kombinálva a bitenkénti VAGY operátorral. Az aktuális pozíció a záróvonal végpontjára van állítva.

nCount
A tömbben lévő lpPoints pontok teljes számát adja meg, ugyanazzal, mint a tömb bájtjainak lpTypes száma.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ezzel a függvénnyel különálló számokat rajzolhat a , CDC::LineToés CDC::PolyBezierTo tagfüggvények CDC::MoveToegymást követő hívásai helyett. A vonalak és a vonalláncok az aktuális tollal vannak rajzolva, és az ábrák nincsenek kitöltve. Ha egy aktív elérési út a tagfüggvény meghívásával CDC::BeginPath kezdődik, PolyDraw hozzáadja az elérési utat. A tömbben lpPointslpTypes található pontok jelzik, hogy minden pont egy , egy CDC::LineToCDC::MoveTovagy egy CDC::BezierTo művelet része-e. A számok is bezárhatóak. Ez a függvény frissíti az aktuális pozíciót.

Example

Lásd a példát a CDC::BeginPath.

CDC::Polygon

Két vagy több pontból (csúcspontból) álló sokszöget rajzol, amelyet vonalak kötnek össze az aktuális tollal.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

Parameters

lpPoints
Ponttömbre mutat, amely meghatározza a sokszög csúcsait. A tömb minden pontja egy POINT struktúra vagy objektum CPoint .

nCount
A tömb csúcsainak számát adja meg.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A rendszer szükség esetén automatikusan bezárja a sokszöget úgy, hogy egy vonalat rajzol az utolsó csúcsról az elsőre.

Az aktuális sokszögkitöltési mód a és a GetPolyFillMode tagfüggvények használatával kérhető le vagy SetPolyFillMode állítható be.

Example

void CDCView::DrawPolygon(CDC *pDC)
{
   // find the client area
   CRect rect;
   GetClientRect(rect);

   // draw with a thick blue pen
   CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
   CPen *pOldPen = pDC->SelectObject(&penBlue);

   // and a solid red brush
   CBrush brushRed(RGB(255, 0, 0));
   CBrush *pOldBrush = pDC->SelectObject(&brushRed);

   // Find the midpoints of the top, right, left, and bottom
   // of the client area. They will be the vertices of our polygon.
   CPoint pts[4];
   pts[0].x = rect.left + rect.Width() / 2;
   pts[0].y = rect.top;

   pts[1].x = rect.right;
   pts[1].y = rect.top + rect.Height() / 2;

   pts[2].x = pts[0].x;
   pts[2].y = rect.bottom;

   pts[3].x = rect.left;
   pts[3].y = pts[1].y;

   // Calling Polygon() on that array will draw three lines
   // between the points, as well as an additional line to
   // close the shape--from the last point to the first point
   // we specified.
   pDC->Polygon(pts, 4);

   // Put back the old objects.
   pDC->SelectObject(pOldPen);
   pDC->SelectObject(pOldBrush);
}

CDC::Polyline

A megadott pontokat összekötő vonalszegmensek halmazát rajzolja lpPointsmeg.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

Parameters

lpPoints
A csatlakoztatni kívánt struktúrák vagy CPoint objektumok tömbjeire POINT mutat.

nCount
A tömb pontjainak számát adja meg. Ennek az értéknek legalább 2-nek kell lennie.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A vonalak az első ponttól az azt követő pontokig húzódnak az aktuális tollal. LineTo A tagfüggvénytől eltérően a Polyline függvény nem használja vagy frissíti az aktuális pozíciót.

További információt a Windows SDK-ban talál PolyLine .

CDC::PolylineTo

Egy vagy több egyenes vonal rajzolása.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
A vonal csúcsait tartalmazó adatstruktúrák tömbjára POINT mutat.

nCount
A tömb pontjainak számát adja meg.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A rendszer az aktuális pozícióból az aktuális tollal a paraméter által lpPoints megadott első pontra húz egy vonalat. Minden további sor esetében a függvény az előző sor végpontjától a következő által megadott lpPointspontig húz. PolylineTo az aktuális pozíciót az utolsó sor végpontjára helyezi át. Ha a függvény által rajzolt vonalszegmensek zárt ábrát alkotnak, az ábra nincs kitöltve.

CDC::PolyPolygon

Két vagy több olyan sokszöget hoz létre, amelyek az aktuális sokszögkitöltési móddal vannak kitöltve.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

Parameters

lpPoints
A sokszögek csúcsait meghatározó struktúrák vagy CPoint objektumok tömbjeire POINT mutat.

lpPolyCounts
Egész számokat tartalmazó tömbre mutat, amelyek mindegyike a tömb egyik sokszögében lpPoints lévő pontok számát határozza meg.

nCount
A tömb bejegyzéseinek lpPolyCounts száma. Ez a szám a megrajzolandó sokszögek számát adja meg. Ennek az értéknek legalább 2-nek kell lennie.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A sokszögek széteshetnek vagy átfedésben lehetnek.

A függvény hívásában PolyPolygon megadott összes sokszöget be kell zárni. A tagfüggvény által létrehozott sokszögekkel ellentétben a Polygon rendszer nem zárja be automatikusan a létrehozott PolyPolygon sokszögeket.

A függvény két vagy több sokszöget hoz létre. Egyetlen sokszög létrehozásához az alkalmazásnak a tagfüggvényt Polygon kell használnia.

Az aktuális sokszögkitöltési mód a és a GetPolyFillMode tagfüggvények használatával kérhető le vagy SetPolyFillMode állítható be.

CDC::PolyPolyline

Több összekapcsolt vonalszakaszt rajzol.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

Parameters

lpPoints
Olyan struktúrák tömbjára mutat, amelyek a vonalláncok csúcsait tartalmazzák. A vonalláncok egymás után vannak megadva.

lpPolyPoints
Egy változótömbre mutat, amely megadja a tömbben lévő lpPoints pontok számát a megfelelő sokszöghöz. Minden bejegyzésnek 2-nél nagyobbnak vagy egyenlőnek kell lennie.

nCount
A tömbben lévő lpPolyPoints számok teljes számát adja meg.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A vonalszegmensek rajzolása az aktuális tollal történik. A szegmensek által létrehozott számok nincsenek kitöltve. A függvény nem használja vagy frissíti az aktuális pozíciót.

CDC::PtVisible

Meghatározza, hogy az adott pont az eszközkörnyezet kivágási régióján belül van-e.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

Parameters

x
A pont logikai x koordinátáját adja meg.

y
A pont logikai y koordinátáját adja meg.

point
Megadja a logikai koordináták beadására vonatkozó pontot. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nonzero, ha a megadott pont a kivágási régión belül van; egyéb esetben 0.

CDC::QueryAbort

Meghívja a tagfüggvény által SetAbortProc telepített megszakításfüggvényt egy nyomtatási alkalmazáshoz, és lekérdezi, hogy a nyomtatás leáll-e.

BOOL QueryAbort() const;

Return Value

A visszatérési érték nem nulla, ha a nyomtatás folytatódik, vagy ha nincs megszakítási eljárás. Ez 0, ha a nyomtatási feladatot le kell szüntetni. A visszatérési értéket a megszakító függvény adja meg.

CDC::RealizePalette

Az aktuális logikai palettáról a rendszerpalettára képez le bejegyzéseket.

UINT RealizePalette();

Return Value

Azt jelzi, hogy a logikai paletta hány bejegyzését képezték le a rendszerkatalógus különböző bejegyzéseihez. Ez azoknak a bejegyzéseknek a számát jelöli, amelyeket ez a függvény a logikai paletta legutóbbi megvalósítása óta a rendszerkatalógus változásainak figyelembe fogadására képezett vissza.

Remarks

A logikai színpaletta pufferként működik a színigényes alkalmazások és a rendszer között, lehetővé téve, hogy az alkalmazás a lehető legtöbb színt használja anélkül, hogy megzavarja a saját megjelenített színeit vagy más ablakok által megjelenített színeket.

Ha egy ablakban a bemeneti fókusz és a hívások RealizePalettevannak, a Windows biztosítja, hogy az ablak az összes kért színt megjelenítse a képernyőn egyszerre elérhető maximális számig. A Windows az ablak palettájában nem található színeket is megjeleníti, ha megfelelteti őket a rendelkezésre álló színeknek.

Emellett a Windows megegyezik az inaktív ablakok által kért színekkel, amelyek a lehető legszorosabban hívják meg a függvényt a rendelkezésre álló színekhez. Ez jelentősen csökkenti az inaktív ablakokban megjelenő színek nemkívánatos változásait.

CDC::Rectangle

Téglalap rajzolása az aktuális tollal.

BOOL Rectangle(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Rectangle(LPCRECT lpRect);

Parameters

x1
A téglalap bal felső sarkának x koordinátáját adja meg (logikai egységekben).

y1
A téglalap bal felső sarkának y koordinátáját adja meg (logikai egységekben).

x2
A téglalap jobb alsó sarkának x koordinátáját adja meg (logikai egységekben).

y2
A téglalap jobb alsó sarkának y koordinátáját adja meg (logikai egységekben).

lpRect
A téglalapot logikai egységekben adja meg. A paraméter egy objektumot vagy mutatót is átadhat CRect egy RECT szerkezetnek.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A téglalap belseje az aktuális ecsettel van kitöltve.

A téglalap a jobb és az alsó koordinátákig terjed ki, de nem tartalmazza azt. Ez azt jelenti, hogy a téglalap y2 - y1 magassága és a téglalap szélessége .x2 - x1 A téglalap szélességének és magasságának egyaránt 2 egységnél nagyobbnak és 32 767 egységnél kisebbnek kell lennie.

Example

void CDCView::DrawRectangle(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // draw a thick black rectangle filled with blue
   pDC->Rectangle(rect);

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::RectVisible

Meghatározza, hogy az adott téglalap bármely része a megjelenítési környezet kivágási területén belül található-e.

virtual BOOL RectVisible(LPCRECT lpRect) const;

Parameters

lpRect
A megadott téglalap logikai koordinátáit tartalmazó szerkezetre RECT vagy CRect objektumra mutat.

Return Value

Nonzero, ha a megadott téglalap bármely része a kivágási régión belül található; egyéb esetben 0.

CDC::ReleaseAttribDC

Hívja meg ezt a tagfüggvényt NULL értékre való beállításhoz m_hAttribDC .

virtual void ReleaseAttribDC();

Remarks

Ez nem okoz Detach problémát. Csak a kimeneti eszköz környezete csatlakozik az CDC objektumhoz, és csak az leválasztható.

CDC::ReleaseOutputDC

Hívja meg ezt a tagfüggvényt a m_hDC tag beállításához NULL.

virtual void ReleaseOutputDC();

Remarks

Ez a tagfüggvény nem hívható meg, ha a kimeneti eszköz környezete az CDC objektumhoz van csatolva. Detach A tag függvénnyel leválaszthatja a kimeneti eszköz környezetét.

CDC::ResetDC

Hívja meg ezt a tagfüggvényt az objektum által becsomagolt eszközkörnyezet frissítéséhez CDC .

BOOL ResetDC(const DEVMODE* lpDevMode);

Parameters

lpDevMode
Egy Windows-struktúra DEVMODE mutatója.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az eszközkörnyezet frissül a Windows-struktúrában DEVMODE megadott információkból. Ez a tagfüggvény csak az attribútumeszköz környezetét állítja alaphelyzetbe.

Az alkalmazások általában a ResetDC tagfüggvényt használják, amikor egy ablak feldolgoz egy WM_DEVMODECHANGE üzenetet. Ez a tagfüggvény a papír tájolásának vagy a papírtárolóknak a dokumentum nyomtatása során történő módosítására is használható.

Ez a tagfüggvény nem módosíthatja az illesztőprogram nevét, az eszköz nevét vagy a kimeneti portot. Amikor a felhasználó módosítja a portkapcsolatot vagy az eszköz nevét, törölnie kell az eredeti eszközkörnyezetet, és létre kell hoznia egy új eszközkörnyezetet az új információkkal.

Mielőtt meghívja ezt a tagfüggvényt, győződjön meg arról, hogy az eszközkörnyezetbe kijelölt összes objektum (a részvényobjektumok kivételével) ki lett jelölve.

CDC::RestoreDC

Visszaállítja az eszközkörnyezetet a korábban azonosított nSavedDCállapotra.

virtual BOOL RestoreDC(int nSavedDC);

Parameters

nSavedDC
Megadja a visszaállítandó eszközkörnyezetet. Ez lehet egy korábbi SaveDC függvényhívás által visszaadott érték. Ha nSavedDC -1, a rendszer visszaállítja a legutóbb mentett eszközkörnyezetet.

Return Value

Nonzero, ha a megadott környezet vissza lett állítva; egyéb esetben 0.

Remarks

RestoreDC visszaállítja az eszközkörnyezetet a tagfüggvény korábbi hívásai által létrehozott állapotinformációk kiugratásával SaveDC .

A verem több eszközkörnyezet állapotadatait is tartalmazhatja. Ha a megadott nSavedDC környezet nem a verem tetején van, RestoreDC törli az összes állapotinformációt a megadott eszközkörnyezet nSavedDC és a verem tetején. A törölt adatok elvesznek.

CDC::RoundRect

Az aktuális tollal lekerekített sarkokkal rendelkező téglalapot rajzol.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

Parameters

x1
A téglalap bal felső sarkának x koordinátáját adja meg (logikai egységekben).

y1
A téglalap bal felső sarkának y koordinátáját adja meg (logikai egységekben).

x2
A téglalap jobb alsó sarkának x koordinátáját adja meg (logikai egységekben).

y2
A téglalap jobb alsó sarkának y koordinátáját adja meg (logikai egységekben).

x3
A lekerekített sarkok rajzolásához használt három pont szélességét adja meg (logikai egységekben).

y3
A lekerekített sarkok rajzolásához használt három pont magasságát adja meg (logikai egységekben).

lpRect
Logikai egységekben adja meg a határoló téglalapot. A paraméter egy objektumot vagy mutatót is átadhat CRect egy RECT szerkezetnek.

point
A három pont szélességének x koordinátája point határozza meg a lekerekített sarkok rajzolását (logikai egységekben). Az y koordináta point a három pont magasságát adja meg a lekerekített sarkok rajzolásához (logikai egységekben). Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A téglalap belseje az aktuális ecsettel van kitöltve.

A függvény által rajzolt ábra kiterjed a jobb és az alsó koordinátákra, de nem tartalmazza azokat. Ez azt jelenti, hogy az ábra y2 - y1 magassága és szélessége .x2 - x1 A határoló téglalap magasságának és szélességének egyaránt 2 egységnél nagyobbnak és 32 767 egységnél kisebbnek kell lennie.

Example

void CDCView::DrawRoundRect(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // Draw a thick black rectangle filled with blue
   // corners rounded at a 17-unit radius. Note that
   // a radius of three or less is not noticeable because
   // the pen is three units wide.
   pDC->RoundRect(rect, CPoint(17, 17));

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::SaveDC

Az eszközkörnyezet aktuális állapotát úgy menti, hogy az állapotinformációkat (például a kivágási régiót, a kijelölt objektumokat és a leképezési módot) a Windows által karbantartott környezeti verembe másolja.

virtual int SaveDC();

Return Value

A mentett eszközkörnyezetet azonosító egész szám. Hiba esetén 0. Ez a visszatérési érték az eszközkörnyezet hívásával RestoreDCtörténő visszaállítására használható.

Remarks

A mentett eszközkörnyezet később visszaállítható a következő használatával RestoreDC: .

SaveDC tetszőleges számú eszközkörnyezeti állapot mentésére használható.

CDC::ScaleViewportExt

Módosítja a megtekintési kiterjedéseket az aktuális értékekhez képest.

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameters

xNum
Azt az összeget adja meg, amellyel meg kell szorozni az aktuális x-terjedelmet.

xDenom
Megadja azt az összeget, amellyel meg kell osztani az aktuális x-terjedelem és a paraméter értékének szorzásának xNum eredményét.

yNum
Azt az összeget adja meg, amellyel meg kell szorozni az aktuális y-mértéket.

yDenom
Azt az összeget adja meg, amellyel meg kell osztani az aktuális y-mérték és a yNum paraméter értékének szorzásának eredményét.

Return Value

Az előző nézetport kiterjed (eszközegységekben) objektumként CSize .

Remarks

A képletek a következőképpen vannak megírva:

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

Az új nézetport-mértékeket úgy számítjuk ki, hogy megszorozzuk az aktuális mértékeket az adott számlálóval, majd elosztjuk az adott nevezővel.

CDC::ScaleWindowExt

Módosítja az ablak terjedelmét az aktuális értékekhez képest.

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameters

xNum
Azt az összeget adja meg, amellyel meg kell szorozni az aktuális x-terjedelmet.

xDenom
Megadja azt az összeget, amellyel meg kell osztani az aktuális x-terjedelem és a paraméter értékének szorzásának xNum eredményét.

yNum
Azt az összeget adja meg, amellyel meg kell szorozni az aktuális y-mértéket.

yDenom
Azt az összeget adja meg, amellyel meg kell osztani az aktuális y-mérték és a yNum paraméter értékének szorzásának eredményét.

Return Value

Az előző ablak kiterjed (logikai egységekben) objektumként CSize .

Remarks

A képletek a következőképpen vannak megírva:

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

Az új ablakbőségeket úgy számítjuk ki, hogy megszorozzuk az aktuális mértékeket az adott számlálóval, majd elosztjuk az adott nevezővel.

CDC::ScrollDC

Vízszintesen és függőlegesen görgeti a bitek téglalapját.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

Parameters

dx
A vízszintes görgetőegységek számát adja meg.

dy
A függőleges görgetőegységek számát adja meg.

lpRectScroll
RECT A görgető téglalap koordinátáit tartalmazó szerkezetre vagy CRect objektumra mutat.

lpRectClip
RECT A kivágási téglalap koordinátáit tartalmazó szerkezetre vagy CRect objektumra mutat. Ha ez a téglalap kisebb, mint az eredeti, a lpRectScrollgörgetés csak a kisebb téglalapban történik.

pRgnUpdate
Azonosítja a görgetési folyamat által feltárt régiót. A ScrollDC függvény definiálja ezt a régiót, nem feltétlenül téglalap.

lpRectUpdate
RECT A görgető frissítési régiót határoló téglalap koordinátáit fogadó szerkezetre vagy CRect objektumra mutat. Ez a legnagyobb téglalap alakú terület, amely újrafestést igényel. A struktúra vagy objektum értékei, amikor a függvény visszatér, ügyfélkoordinátákban vannak, függetlenül az adott eszközkörnyezet leképezési módjától.

Return Value

Nemzero, ha a görgetés végrehajtásra kerül; egyéb esetben 0.

Remarks

Ha lpRectUpdate igen, a NULLWindows nem számítja ki a frissítési téglalapot. Ha mindkettőpRgnUpdate, NULLakkor lpRectUpdate a Windows nem számítja ki a frissítési régiót. Ha pRgnUpdate nem NULL, akkor a Windows feltételezi, hogy érvényes mutatót tartalmaz a görgetési folyamat által feltárt régióra (amelyet a ScrollDC tagfüggvény határoz meg). A visszaadott frissítési lpRectUpdate régiót szükség esetén át lehet adni CWnd::InvalidateRgn .

Az alkalmazásnak az ScrollWindow osztály CWnd tagfüggvényét kell használnia, ha az ablak teljes ügyfélterületét görgetni kell. Ellenkező esetben a következőt kell használnia ScrollDC: .

CDC::SelectClipPath

Kiválasztja az aktuális elérési utat az eszközkörnyezet kivágási régiójaként, és a megadott móddal kombinálja az új régiót bármely meglévő kivágási régióval.

BOOL SelectClipPath(int nMode);

Parameters

nMode
Megadja az elérési út használatának módját. A következő értékek engedélyezettek:

  • RGN_AND Az új kivágási régió magában foglalja az aktuális kivágási régió metszetét (átfedésben lévő területeit) és az aktuális elérési utat.

  • RGN_COPY Az új kivágási régió az aktuális elérési út.

  • RGN_DIFF Az új kivágási régió tartalmazza az aktuális kivágási régió területeit, és az aktuális elérési út területeit is kizárja a rendszer.

  • RGN_OR Az új kivágási régió magában foglalja az aktuális kivágási régió és az aktuális elérési út egyesítését (kombinált területeit).

  • RGN_XOR Az új kivágási régió magában foglalja az aktuális kivágási régió és az aktuális elérési út egyesítését, de az átfedésben lévő területek nélkül.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az azonosított eszközkörnyezetnek zárt elérési utat kell tartalmaznia.

CDC::SelectClipRgn

Kiválasztja az adott régiót az eszközkörnyezet aktuális kivágási régiójaként.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

Parameters

pRgn
Azonosítja a kijelölendő régiót.

  • A függvény első verziójában, ha ez az érték, NULLa teljes ügyfélterület ki van jelölve, és a kimenet továbbra is ki van vágva az ablakra.

  • A függvény második verziójában ez a leíró csak akkor lehet NULL , ha a RGN_COPY mód meg van adva.

nMode
Megadja a végrehajtandó műveletet. Az alábbi értékek egyikének kell lennie:

  • RGN_AND Az új kivágási régió egyesíti az aktuális kivágási régió és az általa azonosított régió átfedésben lévő területeit pRgn.

  • RGN_COPY Az új kivágási régió annak a régiónak a másolata, amelyet pRgna rendszer azonosított. Ez a funkció megegyezik az első verzióval SelectClipRgn. Ha az azonosított pRgn régió az NULL, az új kivágási régió lesz az alapértelmezett kivágási régió (null régió).

  • RGN_DIFF Az új kivágási régió egyesíti az aktuális kivágási régió területeit azokkal a területekkel, amelyek nem tartoznak az általuk pRgnazonosított régióba.

  • RGN_OR Az új kivágási régió egyesíti az aktuális kivágási régiót és az általa azonosított régiót pRgn.

  • RGN_XOR Az új kivágási régió egyesíti az aktuális kivágási régiót és az általa pRgn azonosított régiót, de kizárja az átfedésben lévő területeket.

Return Value

A régió típusa. A következő értékek bármelyike lehet:

  • COMPLEXREGION Az új kivágási régió szegélye átfedésben van.

  • ERROR Az eszközkörnyezet vagy a régió érvénytelen.

  • NULLREGION Az új kivágási régió üres.

  • SIMPLEREGION Az új kivágási régióban nincsenek átfedésben a szegélyek.

Remarks

A rendszer csak a kijelölt régió egy példányát használja. Maga a régió tetszőleges számú más eszközkörnyezethez kijelölhető, vagy törölhető.

A függvény feltételezi, hogy az adott régió koordinátái az eszközegységekben vannak megadva. Egyes nyomtatóeszközök a grafikus kimenetnél nagyobb felbontásban támogatják a szöveges kimenetet, hogy megőrizzék a szöveges metrikák kifejezéséhez szükséges pontosságot. Ezek az eszközök nagyobb felbontásban, azaz szöveges egységekben jelentik az eszközegységeket. Ezek az eszközök ezután skálázják a grafikus koordinátákat, hogy több jelentett eszközegység csak 1 grafikus egységre legyen leképezve. A függvényt SelectClipRgn mindig szöveges egységek használatával kell meghívni.

Azoknak az alkalmazásoknak, amelyeknek a GDI-ben kell méretezniük a grafikus objektumokat, használhatják a GETSCALINGFACTOR nyomtató-feloldást a skálázási tényező meghatározásához. Ez a skálázási tényező befolyásolja a kivágást. Ha egy régiót használ a képek kivágásához, a GDI a koordinátákat a méretezési tényezővel osztja el. Ha a régiót szöveg kivágására használják, a GDI nem végez skálázási módosítást. Az 1-es skálázási tényező miatt a koordináták 2-vel vannak elosztva; a 2-es skálázási tényező miatt a koordináták 4-el vannak osztva; és így tovább.

CDC::SelectObject

Kijelöl egy objektumot az eszközkörnyezetben.

CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);
CGdiObject* SelectObject(CGdiObject* pObject);

Parameters

pPen
Egy kijelölendő objektumra mutató mutató CPen .

pBrush
Egy kijelölendő objektumra mutató mutató CBrush .

pFont
Egy kijelölendő objektumra mutató mutató CFont .

pBitmap
Egy kijelölendő objektumra mutató mutató CBitmap .

pRgn
Egy kijelölendő objektumra mutató mutató CRgn .

pObject
Egy kijelölendő objektumra mutató mutató CGdiObject .

Return Value

A lecserélendő objektumra mutató mutató. Ez az egyik osztály objektumára mutató mutató, amely a függvény melyik verziójából CGdiObjectszármazik, például CPenattól függően, hogy a függvény melyik verzióját használja. A visszatérési érték akkor jelenik NULL meg, ha hiba történt. Ez a függvény egy ideiglenes objektumra mutató mutatót adhat vissza. Ez az ideiglenes objektum csak egy Windows-üzenet feldolgozása során érvényes. További információért lásd CGdiObject::FromHandle.

A régióparamétert használó tagfüggvény verziója ugyanazt a feladatot hajtja végre, mint a SelectClipRgn tagfüggvény. Visszatérési értéke a következők bármelyike lehet:

  • COMPLEXREGION Az új kivágási régió szegélye átfedésben van.

  • ERROR Az eszközkörnyezet vagy a régió érvénytelen.

  • NULLREGION Az új kivágási régió üres.

  • SIMPLEREGION Az új kivágási régióban nincsenek átfedésben a szegélyek.

Remarks

Az Osztály CDC öt, bizonyos típusú GDI-objektumokra specializálódott verziót biztosít, beleértve a tollakat, ecseteket, betűtípusokat, bitképeket és régiókat. Az újonnan kijelölt objektum lecseréli az előző, azonos típusú objektumot. Ha például pObject egy objektumra CPen mutat a pontok általános verziójaSelectObject, a függvény lecseréli az aktuális tollat a megadott pObjecttollra.

Az alkalmazások csak memóriaeszköz-környezetekbe és egyszerre csak egy memóriaeszköz-környezetbe választhatnak bitképet. A bitkép formátumának monokrómnak kell lennie, vagy kompatibilisnek kell lennie az eszközkörnyezettel; ha nem, SelectObject hibát ad vissza.

Windows 3.1 és újabb verziók esetén a SelectObject függvény ugyanazt az értéket adja vissza, függetlenül attól, hogy metafájlban használják-e. A Windows korábbi verzióiban a sikerességhez nem 0 értéket, SelectObject metafájlban való használat esetén pedig 0 értéket adott vissza.

CDC::SelectPalette

Az eszközkörnyezet kiválasztott palettájaként megadott pPalette logikai palettát választja ki.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

Parameters

pPalette
A kijelölendő logikai palettát azonosítja. Ennek a palettának már létre kell hoznia a CPalette tagfüggvényt CreatePalette.

bForceBackground
Meghatározza, hogy a logikai paletta háttérpalettának legyen-e kényszerítve. Ha bForceBackground nem, akkor a kiválasztott paletta mindig háttérpaletta, függetlenül attól, hogy az ablakban van-e a bemeneti fókusz. Ha bForceBackground 0, és az eszközkörnyezet egy ablakhoz van csatolva, a logikai paletta egy előtérpaletta, ha az ablakban a bemeneti fókusz van.

Return Value

Egy olyan objektumra mutató mutató, CPalette amely azonosítja a logikai palettát, amelyet a megadott paletta helyettesít pPalette. Akkor van NULL , ha hiba történt.

Remarks

Az új paletta lesz a GDI által az eszközkörnyezetben megjelenített színek szabályozására használt palettaobjektum, és lecseréli az előző palettát.

Az alkalmazások több eszközkörnyezetbe is kiválaszthatnak logikai palettát. A logikai paletta módosítása azonban hatással lesz az összes olyan eszközkörnyezetre, amelyhez ki van jelölve. Ha egy alkalmazás több eszközkörnyezetbe is kiválaszt egy palettát, az eszközkörnyezeteknek ugyanahhoz a fizikai eszközhöz kell tartoznia.

CDC::SelectStockObject

Kiválaszt egy CGdiObject objektumot, amely megfelel az előre definiált tollak, ecsetek vagy betűtípusok egyikének.

virtual CGdiObject* SelectStockObject(int nIndex);

Parameters

nIndex
Megadja a kívánt készletobjektum típusát. A következő értékek egyike lehet:

  • BLACK_BRUSH Fekete kefe.

  • DKGRAY_BRUSH Sötétszürke ecset.

  • GRAY_BRUSH Szürke ecset.

  • HOLLOW_BRUSH Üreges kefe.

  • LTGRAY_BRUSH Világosszürke ecset.

  • NULL_BRUSH Null kefével.

  • WHITE_BRUSH Fehér ecset.

  • BLACK_PEN Fekete toll.

  • NULL_PEN Null toll.

  • WHITE_PEN Fehér toll.

  • ANSI_FIXED_FONT AZ ANSI rögzítette a rendszer betűtípusát.

  • ANSI_VAR_FONT ANSI változórendszer betűtípusa.

  • DEVICE_DEFAULT_FONT Eszközfüggő betűtípus.

  • OEM_FIXED_FONT OEM-függő rögzített betűtípus.

  • SYSTEM_FONT A rendszer betűtípusa. A Windows alapértelmezés szerint a rendszer betűtípusával készít menüket, párbeszédpanel-vezérlőket és egyéb szöveget. A legjobb azonban, ha nem támaszkodik SYSTEM_FONT a párbeszédpanelek és ablakok által használt betűtípus beszerzésére. Ehelyett használja a SystemParametersInfo függvényt a SPI_GETNONCLIENTMETRICS paraméterrel az aktuális betűtípus lekéréséhez. SystemParametersInfo figyelembe veszi az aktuális témát, és betűtípus-információkat biztosít a feliratokhoz, menükhöz és üzenetpanelekhez.

  • SYSTEM_FIXED_FONT A Windowsban a 3.0-s verzió előtt használt rögzített szélességű rendszer betűtípusa. Ez az objektum a Windows korábbi verzióival való kompatibilitás érdekében érhető el.

  • DEFAULT_PALETTE Alapértelmezett színpaletta. Ez a paletta a rendszerkatalógus 20 statikus színéből áll.

Return Value

A függvény sikeres működése esetén lecserélt objektumra mutató mutató CGdiObject . A tényleges objektum CPenegy , CBrushvagy CFont objektum. Ha a hívás sikertelen, a visszatérési érték NULL.

CDC::SetAbortProc

Telepíti a nyomtatási feladat megszakítási eljárását.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

Parameters

lpfn
A megszakítási eljárásként telepíteni kívánt megszakítási függvényre mutató mutató. A visszahívási függvénnyel kapcsolatos további információkért lásd: Visszahívási függvény a következőhöz CDC::SetAbortProc: .

Return Value

A függvény eredményét SetAbortProc adja meg. Az alábbi értékek némelyike valószínűbb, mint mások, de mindegyik lehetséges.

  • SP_ERROR Általános hiba.

  • SP_OUTOFDISK Jelenleg nem áll rendelkezésre elegendő lemezterület a várólistához, és nem lesz több szabad hely.

  • SP_OUTOFMEMORY Nincs elegendő memória a várólistához.

  • SP_USERABORT A felhasználó a Nyomtatási kezelőn keresztül fejezte be a feladatot.

Remarks

Ha egy alkalmazásnak engedélyeznie kell a nyomtatási feladat megszakítását a várólistázás során, a megszakítási függvényt be kell állítania, mielőtt a nyomtatási feladat elkezdődne a StartDoc tagfüggvénnyel. A Nyomtatási kezelő meghívja az abort függvényt a sorkezelés során, hogy lehetővé tegye az alkalmazás számára a nyomtatási feladat megszakítását vagy a lemezterületen kívüli feltételek feldolgozását. Ha nincs beállítva megszakítási függvény, a nyomtatási feladat sikertelen lesz, ha nincs elegendő lemezterület a várólistához.

A Microsoft Visual C++ funkciói leegyszerűsítik a visszahívási függvény SetAbortProclétrehozását. A tagfüggvénynek EnumObjects átadott cím a hívó konvencióval __declspec(dllexport)__stdcall exportált és exportált függvényre mutató mutató.

A függvény nevét sem kell exportálnia az EXPORTS alkalmazás moduldefiníciós fájljában lévő utasításban. Ehelyett használhatja a EXPORT függvénymódosítót,

BOOL CALLBACK EXPORT AFunction( HDC, int );

hogy a fordító aliasolás nélkül adja ki az exportáláshoz szükséges megfelelő exportálási rekordot. Ez a legtöbb igénynek megfelel. Bizonyos speciális esetekben, például egy függvény sorszámozással vagy aliasolással történő exportálásához továbbra is egy utasítást kell használnia EXPORTS egy moduldefiníciós fájlban.

A visszahívásregisztrációs felületek mostantól típusbiztosak (egy függvénymutatót kell megadnia, amely az adott visszahívás megfelelő függvénytípusára mutat).

A Visszahívási függvényeknek a Windowsba való visszatérés előtt le kell csapni a Microsoft Foundation kivételeit, mivel a kivételeket nem lehet átvenni a visszahívási határokon. A kivételekről további információt a Kivételek című cikkben talál.

CDC::SetArcDirection

Beállítja az ív- és téglalapfüggvényekhez használandó rajzirányt.

int SetArcDirection(int nArcDirection);

Parameters

nArcDirection
Megadja az új ív irányát. Ez a paraméter a következő értékek egyike lehet:

  • AD_COUNTERCLOCKWISE Az óramutató járásával ellentétesen rajzolt számok.

  • AD_CLOCKWISE Az óramutató járásával megegyező irányban rajzolt ábrák.

Return Value

A régi ív irányát adja meg, ha sikeres; egyéb esetben 0.

Remarks

Az alapértelmezett irány az óramutató járásával ellentétes. A SetArcDirection függvény az alábbi függvények rajzolásának irányát adja meg:

Arc Pie
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

Hívja meg ezt a függvényt az attribútumeszköz környezetének beállításához. m_hAttribDC

virtual void SetAttribDC(HDC hDC);

Parameters

hDC
Windows-eszközkörnyezet.

Remarks

Ez a tagfüggvény nem csatolja az eszközkörnyezetet az CDC objektumhoz. Csak a kimeneti eszköz környezete van csatolva egy CDC objektumhoz.

CDC::SetBkColor

Az aktuális háttérszínt a megadott színre állítja.

virtual COLORREF SetBkColor(COLORREF crColor);

Parameters

crColor
Megadja az új háttérszínt.

Return Value

Az előző háttérszín RGB színértékként. Hiba esetén a visszatérési érték 0x80000000.

Remarks

Ha a háttér mód az OPAQUE, a rendszer a háttérszínt használja a stílusvonalakban lévő rések kitöltéséhez, az ecsetek kikelt vonalai és a karaktercellák háttere közötti rések kitöltéséhez. A rendszer a háttérszínt is használja a szín- és monokróm eszközkörnyezetek közötti bitképek konvertálásához.

Ha az eszköz nem tudja megjeleníteni a megadott színt, a rendszer a háttérszínt a legközelebbi fizikai színre állítja.

CDC::SetBkMode

Beállítja a háttérmódot.

int SetBkMode(int nBkMode);

Parameters

nBkMode
Megadja a beállítani kívánt módot. Ez a paraméter a következő értékek egyike lehet:

  • OPAQUE A háttér a szöveg, a kikelt ecset vagy a toll rajzolása előtt az aktuális háttérszínnel van kitöltve. Ez az alapértelmezett háttér mód.

  • TRANSPARENT A háttér nem változik a rajzolás előtt.

Return Value

Az előző háttér mód.

Remarks

A háttér mód azt határozza meg, hogy a rendszer eltávolítja-e a meglévő háttérszíneket a rajzfelületen a szöveg rajzolása előtt, a kikelt ecsetek vagy bármilyen olyan tollstílus előtt, amely nem egy folytonos vonal.

Example

Lásd a példát a CWnd::OnCtlColor.

CDC::SetBoundsRect

A megadott eszközkörnyezethez tartozó határolókeret-információk felhalmozódását szabályozza.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

Parameters

lpRectBounds
RECT A határoló téglalap beállításához használt szerkezetre vagy CRect objektumra mutat. A téglalapdimenziók logikai koordinátákban vannak megadva. Ez a paraméter lehet NULL.

flags
Meghatározza, hogy az új téglalap hogyan lesz kombinálva a halmozott téglalaptal. Ez a paraméter a következő értékek kombinációja lehet:

  • DCB_ACCUMULATE Adja hozzá a határoló téglalaphoz megadott lpRectBounds téglalapot (téglalap-egyesítő művelettel).

  • DCB_DISABLE Kapcsolja ki a korlátok felhalmozódását.

  • DCB_ENABLE Kapcsolja be a korlátok felhalmozódását. (A korlátok felhalmozásának alapértelmezett beállítása le van tiltva.)

Return Value

A határoló téglalap aktuális állapota, ha a függvény sikeres. A visszatérési érték például flagsaz értékek kombinációja DCB_ lehet:

  • DCB_ACCUMULATE A határolókeret nem üres. Ez az érték mindig be lesz állítva.

  • DCB_DISABLE A határfelhalmozódás ki van kapcsolva.

  • DCB_ENABLE A korlátok felhalmozódása be van kapcsolva.

Remarks

A Windows minden rajzművelethez megtarthat egy határoló téglalapot. Ezt a téglalapot lekérdezheti és alaphelyzetbe állíthatja az alkalmazás. A rajzkorlátok a bitkép-gyorsítótárak érvénytelenítéséhez hasznosak.

CDC::SetBrushOrg

Megadja, hogy a GDI milyen forrást rendel a következő ecsethez, amelyet az alkalmazás kiválaszt az eszközkörnyezetben.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

Parameters

x
Megadja az új forrás x koordinátáját (eszközegységekben). Ennek az értéknek a 0–7 tartományban kell lennie.

y
Megadja az új forrás y koordinátáját (eszközegységekben). Ennek az értéknek a 0–7 tartományban kell lennie.

point
Megadja az új forrás x és y koordinátáit. Minden értéknek a 0–7 tartományban kell lennie. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

A kefe előző eredete az eszközegységekben.

Remarks

Az ecset eredetének alapértelmezett koordinátái a következők: (0, 0). Az ecset eredetének módosításához hívja meg az UnrealizeObjectCBrush objektum függvényét, hívja meg SetBrushOrg, majd hívja meg a SelectObject tagfüggvényt az ecset eszközkörnyezetbe való kiválasztásához.

Ne használjon SetBrushOrg részvényobjektumokkal CBrush .

CDC::SetColorAdjustment

Az eszközkörnyezet színbeállítási értékeit a megadott értékekkel állítja be.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

Parameters

lpColorAdjust
A színkorrekciós értékeket tartalmazó adatstruktúrára COLORADJUSTMENT mutat.

Return Value

Nonzero, ha sikeres; egyéb esetben 0.

Remarks

A színkorrekciós értékek a forrásbitkép bemeneti színének módosítására szolgálnak a tagfüggvénybe irányuló hívásokhoz, CDC::StretchBlt ha HALFTONE a mód be van állítva.

CDC::SetDCBrushColor

Az aktuális eszközkörnyezet (DC) kefeszínét a megadott színértékre állítja.

COLORREF SetDCBrushColor(COLORREF crColor);

Parameters

crColor
Megadja az új ecsetszínt.

Return Value

Ha a függvény sikeres, a visszatérési érték az előző DC kefeszínt adja meg értékként COLORREF .

Ha a függvény meghiúsul, a visszatérési érték a következő CLR_INVALID: .

Remarks

Ez a metódus a Függvény SetDCBrushColorfunkcióit emulálja a Windows SDK-ban leírtak szerint.

CDC::SetDCPenColor

Az aktuális eszközkörnyezet (DC) tollszínét a megadott színértékre állítja.

COLORREF SetDCPenColor(COLORREF crColor);

Parameters

crColor
Az új tollszínt adja meg.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a tagfüggvény a Win32 függvényt SetDCPenColorhasználja a Windows SDK-ban leírtak szerint.

CDC::SetGraphicsMode

Beállítja a grafikus módot a megadott eszközkörnyezethez.

int SetGraphicsMode(int iMode);

Parameters

iMode
Megadja a grafikus módot. Azoknak az értékeknek a listáját, amelyeket ez a paraméter el tud vinni, tekintse meg a következőt SetGraphicsMode: .

Return Value

A régi grafikus módot adja vissza a sikerhez.

Hiba esetén 0 értéket ad vissza. A kiterjesztett hibainformációk lekéréséhez hívja meg a következőt GetLastError:

Remarks

Ez a metódus körbefuttatja a Windows GDI függvényt SetGraphicsMode.

CDC::SetLayout

Ennek a tagfüggvénynek a meghívásával módosíthatja az eszközkörnyezet szövegének és ábráinak elrendezését jobbról balra, az arab és héber nyelvű kultúrák szokásos elrendezését.

DWORD SetLayout(DWORD dwLayout);

Parameters

dwLayout
Eszközkörnyezet elrendezése és bitképvezérlő jelzői. A következő értékek kombinációja lehet.

Value Meaning
LAYOUT_BITMAPORIENTATIONPRESERVED Letiltja a visszaverődést a híváshoz és CDC::StretchBlta CDC::BitBlt .
LAYOUT_RTL Az alapértelmezett vízszintes elrendezés beállítása jobbról balra.
LAYOUT_LTR Az alapértelmezett elrendezés beállítása balról jobbra.

Return Value

Ha sikeres, az eszközkörnyezet előző elrendezése.

Ha nem sikerül, GDI_ERROR. A kiterjesztett hibainformációk lekéréséhez hívja meg a következőt GetLastError:

Remarks

Általában nem kér SetLayout ablakot. Ehelyett az ablak jobbról balra elrendezését a kiterjesztett ablakstílusok , például WS_EX_RTLREADINGa . Az eszközkörnyezet, például a nyomtató vagy a metafájl nem örökli ezt az elrendezést. A jobbról balra elrendezés eszközkörnyezetének beállításának egyetlen módja a hívás SetLayout.

Hívás esetén SetLayout(LAYOUT_RTL)SetLayout a leképezési mód automatikusan a következőre változikMM_ISOTROPIC: . Ennek eredményeképpen egy későbbi hívás fog visszatérni MM_ISOTROPIC ahelyettMM_TEXT, hogy GetMapMode .

Bizonyos esetekben, például sok bitkép esetén érdemes lehet megőrizni a balról jobbra elrendezést. Ezekben az esetekben hívja meg a képetBitBlt, vagy StretchBltállítsa be a bitképvezérlő jelzőt a következőreLAYOUT_BITMAPORIENTATIONPRESERVEDdwLayout: .

Miután módosította az elrendezést a LAYOUT_RTL jelölővel, a normál esetben jobbra vagy balra megadott jelzők fordítottak lesznek. A félreértések elkerülése érdekében érdemes lehet alternatív neveket definiálni a szabványos jelölőkhöz. A javasolt alternatív jelölőnevek listáját a Windows SDK-ban találja SetLayout .

CDC::SetMapMode

Beállítja a leképezési módot.

virtual int SetMapMode(int nMapMode);

Parameters

nMapMode
Az új leképezési módot adja meg. Az alábbi értékek bármelyike lehet:

  • MM_ANISOTROPIC A logikai egységek tetszőleges, skálázott tengelyekkel rendelkező egységekké alakulnak. A leképezési mód MM_ANISOTROPIC beállítása nem módosítja az aktuális ablak- vagy nézetportbeállításokat. Az egységek, a tájolás és a skálázás módosításához hívja meg az és SetViewportExt a SetWindowExt tagfüggvényeket.

  • MM_HIENGLISH Minden logikai egység 0,001 hüvelykre lesz konvertálva. Pozitív x a jobb oldalon; pozitív y van.

  • MM_HIMETRIC Minden logikai egység 0,01 milliméterre lesz konvertálva. Pozitív x a jobb oldalon; pozitív y van.

  • MM_ISOTROPIC A logikai egységek tetszőleges egységekké alakulnak, egyenlően skálázott tengelyekkel; azaz az x tengely mentén 1 egység egyenlő 1 egységnek az y tengely mentén. SetWindowExt A kívánt egységek és SetViewportExt a tengelyek tájolásának megadásához használja a tagfüggvényeket. A GDI szükség szerint módosítja az x és az y egységek méretét.

  • MM_LOENGLISH Minden logikai egység 0,01 hüvelykre lesz konvertálva. Pozitív x a jobb oldalon; pozitív y van.

  • MM_LOMETRIC Minden logikai egység 0,1 milliméteresre lesz konvertálva. Pozitív x a jobb oldalon; pozitív y van.

  • MM_TEXT Minden logikai egység 1 eszköz képponttá lesz konvertálva. Pozitív x a jobb oldalon; pozitív y nem működik.

  • MM_TWIPS Minden logikai egység pont 1/20-ra lesz konvertálva. (Mivel egy pont 1/72 hüvelyk, a twip 1/1440 hüvelyk.) Pozitív x a jobb oldalon; pozitív y van.

Return Value

Az előző leképezési mód.

Remarks

A leképezési mód határozza meg a logikai egységek eszközegységekké alakításához használt mértékegységet; az eszköz x- és y tengelyeinek tájolását is meghatározza. A GDI a leképezési módot használja a logikai koordináták megfelelő eszközkoordinátákká alakításához. A MM_TEXT mód lehetővé teszi az alkalmazások számára, hogy eszköz képpontokban működjenek, ahol az 1 egység egyenlő 1 képponttal. A képpont fizikai mérete eszközről eszközre változik.

A MM_HIENGLISH, MM_HIMETRIC, MM_LOENGLISH, MM_LOMETRICés MM_TWIPS üzemmódok olyan alkalmazásokhoz hasznosak, amelyeknek fizikailag értelmezhető egységekben (például hüvelykekben vagy milliméterekben) kell rajzolni. A MM_ISOTROPIC mód 1:1 képarányt biztosít, ami akkor hasznos, ha fontos megőrizni a kép pontos alakját. A MM_ANISOTROPIC mód lehetővé teszi az x és az y koordináták egymástól függetlenül történő beállítását.

Note

Ha a tartományvezérlőt (eszközkörnyezetet) jobbról balra elrendezésre szeretné SetLayout módosítani, SetLayout a leképezési módot automatikusan a következőre MM_ISOTROPICmódosítja: .

Example

Lásd a példát a CView::OnPrepareDC.

CDC::SetMapperFlags

Módosítja a betűtípus-leképező által használt metódust, amikor egy logikai betűtípust fizikai betűtípussá alakít át.

DWORD SetMapperFlags(DWORD dwFlag);

Parameters

dwFlag
Megadja, hogy a betűtípus-leképező megkísérli-e egy betűtípus méretmagasságának és szélességének az eszközhöz való igazítását. Ha ez az ASPECT_FILTERINGérték, a leképező csak azokat a betűtípusokat választja ki, amelyek x és y aspektusa pontosan egyezik a megadott eszközékkel.

Return Value

A font-mapper jelölő előző értéke.

Remarks

Az alkalmazások segítségével SetMapperFlags a betűtípus-leképező csak olyan fizikai betűtípust próbál meg kiválasztani, amely pontosan megfelel a megadott eszköz méretarányának.

A csak raszteres betűtípusokat használó alkalmazások a SetMapperFlags függvény használatával biztosíthatják, hogy a betűtípus-leképező által kiválasztott betűtípus vonzó és olvasható legyen a megadott eszközön. A skálázható (TrueType) betűtípusokat használó alkalmazások általában nem használják SetMapperFlags.

Ha egyetlen fizikai betűtípus sem rendelkezik olyan méretaránysal, amely megfelel a logikai betűtípus specifikációjának, a GDI kiválaszt egy új méretarányt, és kiválaszt egy olyan betűtípust, amely megfelel az új méretaránynak.

CDC::SetMiterLimit

Beállítja az eszközkörnyezethez tartozó gércsatlakozások hosszának korlátját.

BOOL SetMiterLimit(float fMiterLimit);

Parameters

fMiterLimit
Megadja az eszközkörnyezet új korlátját.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A gér hossza az illesztés belsejében lévő vonalfalak metszetétől az illesztés külső részén található vonalfalak metszetétől való távolság. A gérkorlát a gérhossz és a vonalszélesség megengedett legnagyobb aránya. Az alapértelmezett korlát 10,0.

CDC::SetOutputDC

Hívja meg ezt a tagfüggvényt a kimeneti eszköz környezetének beállításához. m_hDC

virtual void SetOutputDC(HDC hDC);

Parameters

hDC
Windows-eszközkörnyezet.

Remarks

Ez a tagfüggvény csak akkor hívható meg, ha egy eszközkörnyezet nincs csatolva az CDC objektumhoz. Ez a tagfüggvény beállítja m_hDC , de nem csatolja az eszközkörnyezetet az CDC objektumhoz.

CDC::SetPixel

A képpontot a megadott szín legközelebbi közelítéséhez megadott pontra állítja crColorbe.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

Parameters

x
A beállítani kívánt pont logikai x koordinátáját adja meg.

y
A beállítandó pont logikai y koordinátáját adja meg.

crColor
RGB-érték COLORREF , amely megadja a pont festéséhez használt színt. Ennek az értéknek a leírását a Windows SDK-ban tekinti COLORREF meg.

point
A beállítandó pont logikai x és y koordinátáit adja meg. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

A pont színének RGB-értéke. Ez az érték eltérhet a megadotttól crColor , ha ennek a színnek a közelítését használja. Ha a függvény meghiúsul (ha a pont a kivágási régión kívül esik), a visszatérési érték -1.

Remarks

A pontnak a kivágási régióban kell lennie. Ha a pont nincs a kivágási régióban, a függvény nem végez semmit.

Nem minden eszköz támogatja a függvényt SetPixel . Annak megállapításához, hogy egy eszköz támogatja-e SetPixel, hívja meg a GetDeviceCaps tagfüggvényt az RASTERCAPS indexben, és ellenőrizze a jelölő visszatérési RC_BITBLT értékét.

CDC::SetPixelV

Beállítja a képpontot a megadott koordinátákon a megadott szín legközelebbi közelítésére.

BOOL SetPixelV(
    int x,
    int y,
    COLORREF crColor);

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

Parameters

x
A beállítandó pont x koordinátáját adja meg logikai egységekben.

y
A beállítandó pont y koordinátáját adja meg logikai egységekben.

crColor
Megadja a pont festéséhez használandó színt.

point
A beállítandó pont logikai x és y koordinátáit adja meg. A paraméterhez adatstruktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A pontnak a kivágási régióban és az eszköz felületének látható részén kell lennie. Nem minden eszköz támogatja a tagfüggvényt. További információ: a RC_BITBLT tagfüggvény képessége CDC::GetDeviceCaps . SetPixelV gyorsabb, mint SetPixel mert nem kell visszaadnia a pont színértékét.

CDC::SetPolyFillMode

Beállítja a sokszög kitöltési módot.

int SetPolyFillMode(int nPolyFillMode);

Parameters

nPolyFillMode
Az új kitöltési módot adja meg. Ez az érték lehet vagy ALTERNATEWINDING. A Windows alapértelmezett üzemmódja a következő ALTERNATE: .

Return Value

Az előző kitöltési mód, ha sikeres; egyéb esetben 0.

Remarks

Ha a sokszög kitöltési mód van ALTERNATE, a rendszer kitölti a páratlan számú és a páros számú sokszög oldalak közötti területet az egyes vizsgálati vonalakon. Vagyis a rendszer kitölti az első és a második oldal, a harmadik és a negyedik oldal közötti területet, és így tovább. Ez az alapértelmezett mód.

Ha a sokszög kitöltési mód van WINDING, a rendszer azt az irányt használja, amelyben egy ábrát rajzoltak annak meghatározására, hogy kitölt-e egy területet. A sokszögben lévő egyes vonalszakaszok az óramutató járásával megegyező vagy az óramutató járásával ellentétes irányban lesznek rajzolva. Amikor egy képzetes vonal egy zárt területről egy ábra külső felé halad át az óramutató járásával megegyező irányban, a szám növekszik. Ha a vonal az óramutató járásával ellentétes vonalszakaszon halad át, a szám csökken. A terület akkor van kitöltve, ha a szám nem nulla, amikor a vonal eléri az ábra külső részét.

CDC::SetROP2

Beállítja az aktuális rajzmódot.

int SetROP2(int nDrawMode);

Parameters

nDrawMode
Az új rajzmódot adja meg. A következő értékek bármelyike lehet:

  • R2_BLACK A képpont mindig fekete.

  • R2_WHITE A pixel mindig fehér.

  • R2_NOP A képpont változatlan marad.

  • R2_NOT A képpont a képernyő színének inverze.

  • R2_COPYPEN A képpont a toll színe.

  • R2_NOTCOPYPEN A képpont a toll színének inverze.

  • R2_MERGEPENNOT A képpont a toll színének és a képernyő színének inverzének (végső képpont = (~ képernyő képpont) | kombinációja.

  • R2_MASKPENNOT A képpont a toll és a képernyő inverze (utolsó képpont = (~ képernyő képpont) & tollal közös színek kombinációja.

  • R2_MERGENOTPEN A képpont a képernyő színének és a toll színének inverzének (utolsó képpont = (~ toll) | képernyő-képpontjának kombinációja.

  • R2_MASKNOTPEN A képpont a képernyő és a toll inverze (utolsó képpont = (~ toll) & képernyő képpontja esetében egyaránt gyakori színek kombinációja.

  • R2_MERGEPEN A képpont a toll színének és a képernyő színének kombinációja (végső képpont = toll | képernyő képpontja).

  • R2_NOTMERGEPEN A képpont a szín inverze R2_MERGEPEN (végső képpont = ~ (toll | képernyő képpontja)).

  • R2_MASKPEN A képpont a toll és a képernyő közös színeinek kombinációja (végső képpont = toll & képernyő képpontja).

  • R2_NOTMASKPEN A képpont a szín inverze R2_MASKPEN (végső képpont = ~ (toll & képernyő képpontja)).

  • R2_XORPEN A képpont a tollban vagy a képernyőn lévő színek kombinációja, de nem mindkettőben (végső képpont = toll ^ képernyő képpontja).

  • R2_NOTXORPEN A képpont a szín inverze R2_XORPEN (végső képpont = ~ (toll ^ képernyő képpontja)).

Return Value

Az előző rajzmód.

A Windows SDK-ban megadott értékek bármelyike lehet.

Remarks

A rajzmód azt határozza meg, hogy a toll színei és a kitöltött objektumok belső felülete hogyan lesz kombinálva a megjelenítési felületen már látható színnel.

A rajz mód csak raszteres eszközökre vonatkozik; ez nem vonatkozik a vektoreszközökre. A rajzmódok bináris raszteres műveleti kódok, amelyek két változó összes lehetséges logikai kombinációját képviselik, a bináris operátorok &|és (kizárólagos|) és ^ a nem naplós művelet ~használatával.

CDC::SetStretchBltMode

Beállítja a tagfüggvény bitkép-nyújtásos módját StretchBlt .

int SetStretchBltMode(int nStretchMode);

Parameters

nStretchMode
A nyújtás módját adja meg. A következő értékek bármelyike lehet:

Value Description
BLACKONWHITE Logikai & műveletet hajt végre az eltávolított és a meglévő képpontok színértékeivel. Ha a bitkép egy monokróm bitkép, ez a mód megőrzi a fekete képpontokat a fehér képpontok költségén.
COLORONCOLOR Törli a képpontokat. Ez a mód az összes kiesett képpontsort törli anélkül, hogy megkísérli megőrizni az adataikat.
HALFTONE Képpontokat képez le a forrás téglalapból a cél téglalapban lévő képpontblokkokra. A célterület képpontjainak átlagos színe megközelíti a forrás képpontok színét.
A nyújtás mód beállítása után az HALFTONE alkalmazásnak meg kell hívnia a Win32 függvényt SetBrushOrgEx az ecset forrásának beállításához. Ha ez nem sikerül, a kefe helytelenül jelenik meg.
STRETCH_ANDSCANS Windows 95/98: Ugyanaz, mint BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98: Ugyanaz, mint COLORONCOLOR
STRETCH_HALFTONE Windows 95/98: Ugyanaz, mint HALFTONE.
STRETCH_ORSCANS Windows 95/98: Ugyanaz, mint WHITEONBLACK
WHITEONBLACK Logikai | műveletet hajt végre az eltávolított és a meglévő képpontok színértékeivel. Ha a bitkép egy monokróm bitkép, ez a mód megőrzi a fehér képpontokat a fekete képpontok kárára.

Return Value

Az előző nyújtás mód. Lehet STRETCH_ANDSCANS, STRETCH_DELETESCANSvagy STRETCH_ORSCANS.

Remarks

A bitkép-nyújtás módja határozza meg, hogyan távolítja el az információt a függvény használatával tömörített bitképekből.

A BLACKONWHITE(STRETCH_ANDSCANS) és WHITEONBLACK(STRETCH_ORSCANS) módok általában az előtér-képpontok monokróm bitképekben való megőrzésére szolgálnak. A COLORONCOLOR(STRETCH_DELETESCANS) módot általában a színbitképek színének megőrzésére használják.

A HALFTONE mód a forráskép feldolgozását igényli a másik három módnál; lassabb, mint a többi, de jobb minőségű képeket hoz létre. SetBrushOrgEx Emellett a mód beállítása után is meg kell hívni, hogy elkerülje az HALFTONE ecset helytelenül való eligazítását.

Az eszközillesztő képességeitől függően további nyújtási módok is elérhetők lehetnek.

CDC::SetTextAlign

Beállítja a szövegigazítási jelzőket.

UINT SetTextAlign(UINT nFlags);

Parameters

nFlags
Szövegigazítási jelzőket ad meg. A jelölők a szöveget határos pontok és téglalapok közötti kapcsolatot határozzák meg. A pont lehet az aktuális pozíció vagy a szövegkimeneti függvény által megadott koordináták. A szöveget határos téglalapot a szövegsztring szomszédos karaktercellái határozzák meg. A nFlags paraméter az alábbi három kategória egy vagy több jelölője lehet. Minden kategóriából csak egy jelölőt válasszon. Az első kategória az x irányban lévő szöveg igazítását befolyásolja:

  • TA_CENTER Igazítja a pontot a határoló téglalap vízszintes közepéhez.

  • TA_LEFT A határolt téglalap bal oldalához igazítja a pontot. Ez az alapértelmezett beállítás.

  • TA_RIGHT Igazítja a pontot a határoló téglalap jobb oldalához.

A második kategória az y irányban lévő szöveg igazítását befolyásolja:

  • TA_BASELINE A pontot a választott betűtípus alapvonalához igazítja.

  • TA_BOTTOM Igazítja a pontot a határoló téglalap aljára.

  • TA_TOP A pontot a határoló téglalap tetejéhez igazítja. Ez az alapértelmezett beállítás.

A harmadik kategória határozza meg, hogy a szöveg írásakor frissül-e az aktuális pozíció:

  • TA_NOUPDATECP Nem frissíti az aktuális pozíciót egy szövegkimeneti függvény minden egyes hívása után. Ez az alapértelmezett beállítás.

  • TA_UPDATECP Frissíti az aktuális x pozíciót egy szövegkimeneti függvény minden egyes hívása után. Az új pozíció a szöveg határoló téglalapjának jobb oldalán található. Ha ez a jelző be van állítva, a rendszer figyelmen kívül hagyja a TextOut tagfüggvény hívásaiban megadott koordinátákat.

Return Value

Ha sikeres, az előző szövegigazítási beállítás. Az alacsony sorrendű bájt tartalmazza a vízszintes beállítást, a magas sorrendű bájt pedig a függőleges beállítást; egyéb esetben 0.

Remarks

ExtTextOut A TextOut tagfüggvények ezeket a jelzőket használják, amikor egy szövegsztringet helyeznek el egy kijelzőn vagy eszközön. A jelzők egy adott pont és egy szöveghatárolt téglalap közötti kapcsolatot határozzák meg. Ennek a pontnak a koordinátáit a rendszer paraméterként továbbítja a TextOut tagfüggvénynek. A szöveget határos téglalapot a szövegsztring szomszédos karaktercellái alkotják.

CDC::SetTextCharacterExtra

Beállítja az intercharacter térközét.

int SetTextCharacterExtra(int nCharExtra);

Parameters

nCharExtra
Megadja az egyes karakterekhez hozzáadandó extra térközt (logikai egységekben). Ha az aktuális leképezési mód nem MM_TEXT, nCharExtra akkor a legközelebbi képpontra lesz átalakítva és kerekítve.

Return Value

Az előző intercharacter térköz mennyisége.

Remarks

A GDI minden karakterhez hozzáadja ezt a térközt, beleértve a törés karaktereket is, amikor szövegsort ír az eszközkörnyezetbe. Az intercharacter térközének alapértelmezett értéke 0.

CDC::SetTextColor

A szöveg színét a megadott színre állítja.

virtual COLORREF SetTextColor(COLORREF crColor);

Parameters

crColor
A szöveg színét adja meg RGB színértékként.

Return Value

Az előző szövegszín RGB-értéke.

Remarks

A rendszer ezt a szövegszínt használja, amikor szöveget ír ebbe az eszközkörnyezetbe, valamint bitképeket konvertál szín és monokróm eszközkörnyezetek között.

Ha az eszköz nem tudja képviselni a megadott színt, a rendszer a szövegszínt a legközelebbi fizikai színre állítja. Egy karakter háttérszínét a SetBkColorSetBkMode tagfüggvények adhatók meg.

Example

Lásd a példát a CWnd::OnCtlColor.

CDC::SetTextJustification

Szóközt ad a sztring töréskaraktereihez.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

Parameters

nBreakExtra
Megadja a szövegsorhoz hozzáadandó teljes térközt (logikai egységekben). Ha az aktuális leképezési mód nem MM_TEXT, a paraméter által megadott érték az aktuális leképezési módra lesz konvertálva, és a legközelebbi eszközegységre lesz kerekítve.

nBreakCount
A sortörési karakterek számát adja meg.

Return Value

Egy, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az alkalmazások a GetTextMetrics tagfüggvények használatával lekérhetik a betűtípus törésjelét.

A SetTextJustification tagfüggvény meghívása után egy szövegkimeneti függvény hívása (például TextOut) egyenletesen elosztja a megadott extra helyet a megadott számú töréskarakter között. A töréskarakter általában a szóköz karakter (ASCII 32), de más karakterként is definiálható betűtípussal.

A tagfüggvényt GetTextExtent általában a SetTextJustification. GetTextExtent az igazítás előtt kiszámítja egy adott vonal szélességét. Az alkalmazás az igazítás után a sztring szélességéből visszaadott GetTextExtent érték kivonásával meghatározhatja, nBreakExtra hogy mennyi helyet adjon meg a paraméterben.

A SetTextJustification függvény egy olyan sor igazítására használható, amely több különböző betűtípusú futtatásokat tartalmaz. Ebben az esetben a vonalat külön kell létrehozni az egyes futtatásokat egymáshoz igazításával és írásával.

Mivel az igazítás során kerekítési hibák léphetnek fel, a rendszer egy futó hibakifejezést tart fenn, amely meghatározza az aktuális hibát. Több futtatást GetTextExtent tartalmazó sor igazításakor automatikusan ezt a hibakifejezést használja, amikor kiszámítja a következő futtatás mértékét. Ez lehetővé teszi, hogy a szövegkimeneti függvény a hibát az új futtatásba keverje.

Az egyes sorok igazítása után ezt a hibakifejezést törölni kell, hogy ne legyen beépítve a következő sorba. A kifejezés 0 értékű hívással SetTextJustificationnBreakExtra törölhető.

CDC::SetViewportExt

Beállítja az eszközkörnyezet nézetportjának x- és y-kiterjedéseit.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

Parameters

cx
A nézetport x-terjedelmét adja meg (eszközegységekben).

cy
A nézetport y-terjedelmét adja meg (eszközegységekben).

size
A nézetport x- és y-terjedelmét adja meg (eszközegységekben).

Return Value

A nézetport előző mértékei objektumként CSize . Hiba esetén a visszaadott CSize objektum x- és y koordinátái egyaránt 0-ra vannak állítva.

Remarks

A nézet az eszközkörnyezet ablakával együtt azt határozza meg, hogy a GDI hogyan képezi le a logikai koordinátarendszer pontjait a tényleges eszköz koordinátarendszerében lévő pontokra. Más szóval azt határozzák meg, hogy a GDI hogyan konvertálja a logikai koordinátákat eszközkoordinátákká.

A következő leképezési módok beállításakor a rendszer figyelmen kívül hagyja a SetWindowExtSetViewportExt hívásokat:

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

Ha MM_ISOTROPIC a mód be van állítva, az alkalmazásnak a hívás előtt meg kell hívnia a SetWindowExt tagfüggvényt SetViewportExt.

Example

Lásd a példát a CView::OnPrepareDC.

CDC::SetViewportOrg

Beállítja az eszközkörnyezet nézetének eredetét.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

Parameters

x
Megadja a nézetport forrásának x koordinátáját (eszközegységekben). Az értéknek az eszközkoordináta-rendszer tartományán belül kell lennie.

y
Megadja a nézetport forrásának y koordinátáját (eszközegységekben). Az értéknek az eszközkoordináta-rendszer tartományán belül kell lennie.

point
A nézetport forrását adja meg. Az értékeknek az eszközkoordináta-rendszer tartományán belül kell lenniük. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

A nézetport előző eredete (az eszköz koordinátáiban) objektumként CPoint .

Remarks

A nézet az eszközkörnyezet ablakával együtt azt határozza meg, hogy a GDI hogyan képezi le a logikai koordinátarendszer pontjait a tényleges eszköz koordinátarendszerében lévő pontokra. Más szóval azt határozzák meg, hogy a GDI hogyan konvertálja a logikai koordinátákat eszközkoordinátákká.

A nézet forrása az eszközkoordináta-rendszerben azt a pontot jelöli, amelyhez a GDI leképezi az ablak forrását, a tagfüggvény által megadott logikai koordinátarendszer egy pontját SetWindowOrg . A GDI az összes többi pontot megfelelteti az ablak eredetének a nézetport forrásához való leképezéséhez szükséges folyamat követésével. Például egy kör minden pontja az ablak forrásánál lévő pont körül egy körben lesz, a kitekintő forrásánál lévő pont körül. Hasonlóképpen, az ablak forrásán áthaladó vonal minden pontja egy olyan sorban lesz, amely áthalad a nézetport forrásán.

Example

Lásd a példát a CView::OnPrepareDC.

CDC::SetWindowExt

Beállítja az eszközkörnyezethez társított ablak x és y kiterjedéseit.

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

Parameters

cx
Az ablak x-terjedelmét (logikai egységekben) adja meg.

cy
Az ablak y-fokát (logikai egységekben) adja meg.

size
Az ablak x- és y-mértékeit (logikai egységekben) adja meg.

Return Value

Az ablak előző mértékei (logikai egységekben) objektumként CSize . Hiba esetén a visszaadott CSize objektum x- és y koordinátái egyaránt 0-ra vannak állítva.

Remarks

Az ablak az eszköz-környezet nézettel együtt meghatározza, hogy a GDI hogyan képezi le a logikai koordinátarendszer pontjait az eszközkoordináta-rendszerben lévő pontokra.

A következő leképezési módok beállításakor a rendszer figyelmen kívül hagyja a SetWindowExt hívásokat és SetViewportExt a függvényeket:

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

Ha MM_ISOTROPIC a mód be van állítva, az alkalmazásnak a hívás SetViewportExtelőtt meg kell hívnia a SetWindowExt tagfüggvényt.

Example

Lásd a példát a CView::OnPrepareDC.

CDC::SetWindowOrg

Beállítja az eszközkörnyezet ablakának eredetét.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

Parameters

x
Az ablak új forrásának logikai x koordinátáját adja meg.

y
Az ablak új forrásának logikai y koordinátáját adja meg.

point
Az ablak új forrásának logikai koordinátáit adja meg. Ennek a paraméternek egy struktúrát POINT vagy objektumot CPoint is átadhat.

Return Value

Az ablak előző eredete objektumként CPoint .

Remarks

Az ablak az eszköz-környezet nézettel együtt meghatározza, hogy a GDI hogyan képezi le a logikai koordinátarendszer pontjait az eszközkoordináta-rendszerben lévő pontokra.

Az ablak eredete a logikai koordinátarendszer azon pontját jelöli, amelyből a GDI leképezi a nézetport forrását, a függvény által megadott eszközkoordináta-rendszer egy pontját SetWindowOrg . A GDI az összes többi pontot megfelelteti az ablak eredetének a nézetport forrásához való leképezéséhez szükséges folyamat követésével. Például egy kör minden pontja az ablak forrásánál lévő pont körül egy körben lesz, a kitekintő forrásánál lévő pont körül. Hasonlóképpen, az ablak forrásán áthaladó vonal minden pontja egy olyan sorban lesz, amely áthalad a nézetport forrásán.

CDC::SetWorldTransform

Kétdimenziós lineáris transzformációt állít be a világtér és az oldaltér között a megadott eszközkörnyezethez. Ez az átalakítás használható grafikus kimenetek méretezésére, elforgatására, nyírására vagy fordítására.

BOOL SetWorldTransform(const XFORM& rXform);

Parameters

rXform
Hivatkozás az XFORM átalakítási adatokat tartalmazó struktúrára.

Return Value

Sikertelen értéket ad vissza a sikerességhez.

Hiba esetén 0 értéket ad vissza.

A kiterjesztett hibainformációk lekéréséhez hívja meg a következőt GetLastError:

Remarks

Ez a metódus körbefuttatja a Windows GDI függvényt SetWorldTransform.

CDC::StartDoc

Tájékoztatja az eszközillesztőt, hogy egy új nyomtatási feladat indul el, és az azt követő és EndPage a StartPage hívásokat ugyanabban a feladatban kell beszúrni, amíg a EndDoc hívás meg nem történik.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

Parameters

lpDocInfo
DOCINFO A dokumentumfájl nevét és a kimeneti fájl nevét tartalmazó struktúrára mutat.

lpszDocName
Mutasson a dokumentumfájl nevét tartalmazó sztringre.

Return Value

Ha a függvény sikeres, a visszatérési érték nagyobb, mint nulla. Ez az érték a dokumentum nyomtatási feladatazonosítója.

Ha a függvény sikertelen, a visszatérési érték kisebb vagy egyenlő nullánál.

Remarks

Ez biztosítja, hogy az egynél hosszabb dokumentumok ne legyenek más feladatokkal összekapcsolva.

A Windows 3.1-es és újabb verziói esetében ez a függvény helyettesíti a nyomtató menekülését STARTDOC . Ennek a függvénynek a használatával biztosítható, hogy az egynél több oldalt tartalmazó dokumentumok ne kereszteződnek más nyomtatási feladatokkal.

StartDoc metafájlokban nem használható.

Example

Ez a kódtöredék lekéri az alapértelmezett nyomtatót, megnyit egy nyomtatási feladatot, és egy oldalt ad meg rajta a "Hello, World!" felirattal. Mivel a kód által kinyomtatott szöveg nem a nyomtató logikai egységeire van skálázva, a kimeneti szöveg olyan kis betűkkel lehet, hogy az eredmény olvashatatlan. A CDC skálázási függvényei, például SetMapModea , SetViewportOrgés SetWindowExt, használhatók a skálázás javításához.

void CDCView::DoStartDoc()
{
   // get the default printer
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();

   // is a default printer set up?
   HDC hdcPrinter = dlg.GetPrinterDC();
   if (hdcPrinter == NULL)
   {
      MessageBox(_T("Buy a printer!"));
   }
   else
   {
      // create a CDC and attach it to the default printer
      CDC dcPrinter;
      dcPrinter.Attach(hdcPrinter);

      // call StartDoc() to begin printing
      DOCINFO docinfo;
      memset(&docinfo, 0, sizeof(docinfo));
      docinfo.cbSize = sizeof(docinfo);
      docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");

      // if it fails, complain and exit gracefully
      if (dcPrinter.StartDoc(&docinfo) < 0)
      {
         MessageBox(_T("Printer wouldn't initialize"));
      }
      else
      {
         // start a page
         if (dcPrinter.StartPage() < 0)
         {
            MessageBox(_T("Could not start page"));
            dcPrinter.AbortDoc();
         }
         else
         {
            // actually do some printing
            CGdiObject *pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);

            dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);

            dcPrinter.EndPage();
            dcPrinter.EndDoc();
            dcPrinter.SelectObject(pOldFont);
         }
      }
   }
}

CDC::StartPage

Hívja meg ezt a tagfüggvényt, hogy előkészítse a nyomtatóillesztőt az adatok fogadására.

int StartPage();

Return Value

0-nál nagyobb vagy egyenlő, ha a függvény sikeres, vagy hiba esetén negatív érték.

Remarks

StartPage felváltja a NEWFRAME és BANDINFO menekül.

A nyomtatási hívások sorrendjének áttekintéséhez tekintse meg a tagfüggvényt StartDoc .

A rendszer letiltja a tagfüggvényt a hívás és EndPagea ResetDCStartPage .

Example

Lásd a példát a CDC::StartDoc.

CDC::StretchBlt

Bitképet másol egy forrás téglalapból egy cél téglalapba, és szükség esetén kinyújtja vagy tömöríti a bitképet, hogy illeszkedjen a cél téglalap méretéhez.

BOOL StretchBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    DWORD dwRop);

Parameters

x
A cél téglalap bal felső sarkának x koordinátáját adja meg (logikai egységekben).

y
A cél téglalap bal felső sarkának y koordinátáját adja meg (logikai egységekben).

nWidth
A cél téglalap szélességét (logikai egységekben) adja meg.

nHeight
A cél téglalap magasságát (logikai egységekben) adja meg.

pSrcDC
Megadja a forráseszköz környezetét.

xSrc
A forrás téglalap bal felső sarkának x koordinátáját adja meg (logikai egységekben).

ySrc
A forrás téglalap bal felső sarkának y koordinátáját adja meg (logikai egységekben).

nSrcWidth
Megadja a forrás téglalap szélességét (logikai egységekben).

nSrcHeight
Megadja a forrás téglalap magasságát (logikai egységekben).

dwRop
A végrehajtandó raszterműveletet adja meg. A raszteres műveleti kódok határozzák meg, hogy a GDI hogyan egyesíti a színeket az aktuális ecsetet, egy lehetséges forrásbitképet és egy célbitképet tartalmazó kimeneti műveletekben. Ez a paraméter a következő értékek egyike lehet:

  • BLACKNESS Az összes kimenetet feketére váltja.

  • DSTINVERT Megfordítja a célbitképet.

  • MERGECOPY A logikai ÉS operátorral egyesíti a mintát és a forrásbitképet.

  • MERGEPAINT Az invertált forrásbitkép és a célbitkép kombinálása a logikai VAGY operátorral.

  • NOTSRCCOPY Másolja a fordított forrásbitképet a célhelyre.

  • NOTSRCERASE A cél- és forrásbitképek logikai VAGY operátorral való kombinálásának eredményét invertálta.

  • PATCOPY Másolja a mintát a célbitképre.

  • PATINVERT A logikai XOR operátorral egyesíti a célbitképet a mintával.

  • PATPAINT Az invertált forrásbitképet a logikai VAGY operátorral egyesíti a mintával. A művelet eredményét egyesíti a célbitképpel a logikai VAGY operátorral.

  • SRCAND A logikai ÉS operátorral egyesíti a cél- és forrásbitképek képpontjait.

  • SRCCOPY Másolja a forrásbitképet a célbitképbe.

  • SRCERASE Megfordítja a célbitképet, és egyesíti az eredményt a forrás bitképével a logikai ÉS operátorral.

  • SRCINVERT A logikai XOR operátorral egyesíti a cél és a forrásbitkép képpontjait.

  • SRCPAINT A cél és a forrásbitkép képpontjait egyesíti a logikai VAGY operátorral.

  • WHITENESS Az összes kimenet fehérre változik.

Return Value

Nemzero, ha a bittérkép meg van rajzolva; egyéb esetben 0.

Remarks

A függvény a céleszköz környezetének nyújtásos módját használja (beállította SetStretchBltMode) a bitkép kinyújtásának vagy tömörítésének meghatározásához.

A StretchBlt függvény áthelyezi a bitképet a forráseszközről pSrcDC az eszközkörnyezet objektum által képviselt céleszközre, amelynek tagfüggvényét meghívja. A xSrc, ySrc, nSrcWidthés nSrcHeight paraméterek határozzák meg a forrás téglalap bal felső sarkát és méreteit. A x, y, nWidthés nHeight paraméterek a cél téglalap bal felső sarkát és méreteit adják meg. A megadott dwRop raszterművelet határozza meg, hogy a forrásbitkép és a céleszközön már meglévő bitek hogyan legyenek kombinálva.

A StretchBlt függvény egy bitkép tükrözött képét hozza létre, ha a nSrcWidth jelek és nWidth a nSrcHeightnHeight paraméterek eltérőek. nWidth Ha nSrcWidth a függvény különböző jelekkel rendelkezik, akkor a függvény az x tengely mentén hozza létre a bitkép tükrözött képét. nHeight Ha nSrcHeight a függvény különböző jelekkel rendelkezik, akkor az y tengely mentén létrehoz egy tükörképet a bitképről.

A StretchBlt függvény kinyújtja vagy tömöríti a forrásbitképet a memóriában, majd az eredményt a célhelyre másolja. Ha egy mintát egyesíteni szeretne az eredménnyel, az nem lesz egyesítve, amíg a kinyújtott forrásbitképet nem másolja a célhelyre. Ha ecsetet használ, az a céleszköz környezetében kijelölt ecset. A célkoordináták a céleszköz környezetének megfelelően alakulnak át; a forráskoordinátákat a forráseszköz környezetének megfelelően alakítjuk át.

Ha a cél-, forrás- és mintabitképek nem azonos színformátummal rendelkeznek, StretchBlt a forrás- és mintabitképeket a célbitképeknek megfelelően konvertálja. Az átalakítás során a céleszköz-környezet előtér- és háttérszínei lesznek használatban.

Ha StretchBlt egy monokróm bitképet színre kell konvertálnia, akkor a fehér biteket (1) a háttérszínre, a fekete biteket (0) pedig az előtérszínre állítja. A szín monokrómmá alakításához a háttérszínnek megfelelő képpontokat fehérre (1) állítja be, és az összes többi képpontot feketére állítja (0). A rendszer az eszközkörnyezet előtér- és háttérszíneit használja színekkel.

Nem minden eszköz támogatja a függvényt StretchBlt . Annak megállapításához, hogy egy eszköz támogatja-e StretchBlt, hívja meg a GetDeviceCaps tagfüggvényt az RASTERCAPS indexben, és ellenőrizze a jelölő visszatérési RC_STRETCHBLT értékét.

CDC::StrokeAndFillPath

Bezárja az elérési út összes nyitott ábráját, az aktuális tollal megrajzolja az elérési út körvonalát, és kitölti annak belső terét az aktuális ecsettel.

BOOL StrokeAndFillPath();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az eszközkörnyezetnek zárt elérési utat kell tartalmaznia. A StrokeAndFillPath tagfüggvény hatása megegyezik az elérési út összes nyitott számának bezárásával, valamint az elérési út külön simításával és kitöltésével, azzal a kivételével, hogy a kitöltött régió még akkor sem fedi át a tollat, ha széles a toll.

CDC::StrokePath

A megadott elérési utat az aktuális tollal jeleníti meg.

BOOL StrokePath();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Az eszközkörnyezetnek zárt elérési utat kell tartalmaznia.

CDC::TabbedTextOut

Ennek a tagfüggvénynek a meghívásával írjon egy karaktersztringet a megadott helyre, és bontsa ki a tabulátorfüleket a tabulátorpozíciók tömbjében megadott értékekre.

virtual CSize TabbedTextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

CSize TabbedTextOut(
    int x,
    int y,
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

Parameters

x
A sztring kezdőpontjának logikai x koordinátáját adja meg.

y
A sztring kezdőpontjának logikai y koordinátáját adja meg.

lpszString
A rajzolni kívánt karaktersztringre mutat. A mutatót átadhatja egy karaktertömbnek vagy egy CString objektumnak ehhez a paraméterhez.

nCount
A karakterlánc által mutatott lpszStringhosszát adja meg.

nTabPositions
A tabulátorpozíciók tömbjének értékeinek számát adja meg.

lpnTabStopPositions
A tabulátor pozíciókat tartalmazó tömbre mutat (logikai egységekben). A tabulátorokat növekvő sorrendbe kell rendezni; a legkisebb x értéknek a tömb első elemének kell lennie.

nTabOrigin
Annak a kezdő pozíciónak az x koordinátáját adja meg, amelyből a lapok kibontva vannak (logikai egységekben).

str
A CString megadott karaktereket tartalmazó objektum.

Return Value

A sztring dimenziói (logikai egységekben) objektumként CSize .

Remarks

A szöveg az aktuálisan kijelölt betűtípusban van megírva. Ha nTabPositions 0 és lpnTabStopPositions van NULL, akkor a lapok az átlagos karakterszélesség nyolcszorosára lesznek kibontva.

Ha nTabPositions 1, a tabulátorokat a tömb első értéke által megadott távolság választja lpnTabStopPositions el egymástól. Ha a lpnTabStopPositions tömb egynél több értéket tartalmaz, a tömb minden egyes értékéhez be van állítva tabulátor a megadott nTabPositionsszámig. A nTabOrigin paraméter lehetővé teszi, hogy az alkalmazás többször is meghívja a TabbedTextOut függvényt egyetlen sorra. Ha az alkalmazás többször hívja meg a függvényt, és minden nTabOrigin alkalommal ugyanarra az értékre van állítva, a függvény az összes lapot kibontja a megadott nTabOriginpozícióhoz képest.

Alapértelmezés szerint a függvény nem használja vagy frissíti az aktuális pozíciót. Ha egy alkalmazásnak frissítenie kell az aktuális pozíciót, amikor meghívja a függvényt, az alkalmazás meghívhatja a SetTextAlign tagfüggvényt TA_UPDATECPa következő beállítássalnFlags: . Ha ez a jelző be van állítva, a Windows figyelmen kívül hagyja az x aktuális pozíciót használó későbbi hívások TabbedTextOutparamétereit és y paramétereit.

CDC::TextOut

Egy karaktersztringet ír a megadott helyre az aktuálisan kijelölt betűtípussal.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

Parameters

x
A szöveg kezdőpontjának logikai x koordinátáját adja meg.

y
A szöveg kezdőpontjának logikai y koordinátáját adja meg.

lpszString
A rajzolandó karaktersztringre mutat.

nCount
A sztringben szereplő karakterek számát adja meg.

str
A CString megrajzolandó karaktereket tartalmazó objektum.

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

A karakter eredete a karaktercella bal felső sarkában található. Alapértelmezés szerint a függvény nem használja vagy frissíti az aktuális pozíciót.

Ha egy alkalmazásnak frissítenie kell az aktuális pozíciót a hívások TextOutsorán, az alkalmazás meghívhatja a tagfüggvényt TA_UPDATECPa SetTextAlign következő beállítássalnFlags: . Ha ez a jelző be van állítva, a Windows figyelmen kívül hagyja az x aktuális pozíciót használó későbbi hívások TextOutparamétereit és y paramétereit.

Example

Lásd a példát a CDC::BeginPath.

CDC::TransparentBlt

Hívja meg ezt a tagfüggvényt a színadatok bitblokkjának átviteléhez, amely a megadott forráseszköz-környezet képpontjainak téglalapjának felel meg, egy céleszköz-környezetbe.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

Parameters

xDest
A cél téglalap bal felső sarkának x koordinátáját adja meg logikai egységekben.

yDest
A cél téglalap bal felső sarkának y koordinátáját adja meg logikai egységekben.

nDestWidth
A cél téglalap szélességét adja meg logikai egységekben.

nDestHeight
A cél téglalap magasságát adja meg logikai egységekben.

pSrcDC
Mutasson a forráseszköz környezetére.

xSrc
A forrás téglalap x koordinátáját adja meg logikai egységekben.

ySrc
A forrás téglalap y koordinátáját adja meg logikai egységekben.

nSrcWidth
A forrás téglalap szélességét adja meg logikai egységekben.

nSrcHeight
A forrás téglalap magasságát adja meg logikai egységekben.

clrTransparent
A forrásbitkép RGB-színe transzparensként kezelendő.

Return Value

sikeres TRUE; egyéb esetben FALSE.

Remarks

TransparentBlt lehetővé teszi az átláthatóságot; vagyis az RGB által clrTransparent jelzett szín transzparensen jelenik meg az átvitelhez.

További információt a Windows SDK-ban talál TransparentBlt .

CDC::UpdateColors

Frissíti az eszközkörnyezet ügyfélterületét úgy, hogy képpontonként megfelelteti az ügyfélterület aktuális színeit a rendszerkatalógusnak.

void UpdateColors();

Remarks

A logikai palettával rendelkező inaktív ablak alternatívaként meghívhatja UpdateColors az ügyfélterület újrarajzolását, amikor a rendszerkatalógus megváltozik.

A színpaletták használatáról a Windows SDK-ban talál UpdateColors további információt.

A UpdateColors tagfüggvény általában gyorsabban frissíti az ügyfélterületet, mint a terület újrarajzolása. Mivel azonban a függvény az egyes képpontok színe alapján végzi el a színfordítást a rendszerpaletta módosítása előtt, a függvény minden hívása bizonyos színpontosság elvesztését eredményezi.

CDC::WidenPath

Az aktuális útvonal újradefiniálja azt a területet, amely akkor lenne festve, ha az elérési utat az eszköz környezetébe jelenleg kijelölt tollal vonnák be.

BOOL WidenPath();

Return Value

Nonzero, ha a függvény sikeres; egyéb esetben 0.

Remarks

Ez a függvény csak akkor sikeres, ha az aktuális toll a tagfüggvény második verziója CreatePen által létrehozott geometriai toll, vagy ha a toll az első verzióval CreatePen jön létre, és az eszközegységekben 1-nél nagyobb szélességű. Az eszközkörnyezetnek zárt elérési utat kell tartalmaznia. Az útvonal minden Bzier-görbéje egyenes vonalak sorozatává alakul, amelyek a kiszélesített görbéket egymáshoz közelítő egyenesekké alakulnak. Ilyen esetben a Bzier-görbék nem maradnak az elérési úton a meghívás után WidenPath .

See also

CObject osztály
Hierarchy Chart
CPaintDC osztály
CWindowDC osztály
CClientDC osztály
CMetaFileDC osztály