Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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
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_OUTOFDISKJelenleg nem áll rendelkezésre elegendő lemezterület a várólistához, és nem lesz több szabad hely.SP_OUTOFMEMORYNincs elegendő memória a várólistához.SP_USERABORTA 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ő
NEWFRAMEvagyNEXTBANDa 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_BUTTONDFCS_BUTTON3STATEHáromállapotú gombDFCS_BUTTONCHECKJelölőnégyzetDFCS_BUTTONPUSHLeküldés gombDFCS_BUTTONRADIOVálasztógombDFCS_BUTTONRADIOIMAGEA választógomb képe (nem megfelelő kép szükséges)DFCS_BUTTONRADIOMASKMaszk a választógombhoz (a nem megfelelőnek maszkra van szüksége)
DFC_CAPTIONDFCS_CAPTIONCLOSEBezárás gombDFCS_CAPTIONHELPSúgó gombDFCS_CAPTIONMAXTeljes méret gombDFCS_CAPTIONMINKis méret gombDFCS_CAPTIONRESTOREVisszaállítás gomb
DFC_MENUDFCS_MENUARROWAlmenü nyílDFCS_MENUBULLETGolyóDFCS_MENUCHECKPipa
DFC_SCROLLDFCS_SCROLLCOMBOBOXKombinált lista görgetősávjaDFCS_SCROLLDOWNLefelé mutató nyíl a görgetősávonDFCS_SCROLLLEFTA görgetősáv balra mutató nyílDFCS_SCROLLRIGHTJobbra mutató nyíl a görgetősávonDFCS_SCROLLSIZEGRIPFogóméret az ablak jobb alsó sarkábanDFCS_SCROLLUPFelfelé 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_OUTOFDISKJelenleg nem áll rendelkezésre elegendő lemezterület a várólistához, és nem lesz több szabad hely.SP_OUTOFMEMORYNincs elegendő memória a várólistához.SP_USERABORTA 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:
COMPLEXREGIONA régió szegélye átfedésben van.ERRORNem lett létrehozva régió.NULLREGIONA régió üres.SIMPLEREGIONA 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:
COMPLEXREGIONA régió szegélye átfedésben van.ERRORNem lett létrehozva régió.NULLREGIONA régió üres.SIMPLEREGIONA 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:
FLOODFILLBORDERA kitöltőterületet a megadottcrColorszín határolja. Ez a stílus megegyezik a .FloodFillFLOODFILLSURFACEA kitöltőterületet a megadott szín határozza megcrColor. 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_CLIPPEDMegadja, hogy a szöveg a téglalapra legyen vágva.ETO_OPAQUEMegadja, hogy az aktuális háttérszín kitöltse a téglalapot. (Az aktuális háttérszínt a tagfüggvényekkelSetBkColorállíthatja be ésGetBkColorké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_COUNTERCLOCKWISEAz ó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_RESETKé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_ACCUMULATEHatároló téglalapok felhalmozódása történik.DCB_RESETA határolókeret üres.DCB_SETA határolókeret nem üres.DCB_ENABLEA határfelhalmozódás be van kapcsolva.DCB_DISABLEA 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:
COMPLEXREGIONA vágórégió szegélye átfedésben van.ERRORAz eszközkörnyezet érvénytelen.NULLREGIONA kivágási régió üres.SIMPLEREGIONA 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ó:
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_MOVETOMegadja, hogy a megfelelő pontlpPointsegy különálló ábrát indít el.PT_LINETOMegadja, hogy az előző pont és a hozzá tartozó pontlpPointsegy vonal végpontjai.PT_BEZIERTOAzt adja meg, hogy a megfelelő pontlpPointsegy 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_CLOSEFIGUREMegadja, 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ónakPT_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_BASELINEAz 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_BOTTOMAz x tengely és a határoló téglalap aljának igazítását adja meg.TA_CENTERAz y tengely és a határoló téglalap középvonalának igazítását adja meg.TA_LEFTAz y tengely és a határolókeret bal oldalának igazítását adja meg.TA_NOUPDATECPAzt adja meg, hogy az aktuális pozíció nem frissül.TA_RIGHTMegadja az y tengely és a határolókeret jobb oldalának igazítását.TA_TOPAz x tengely és a határoló téglalap tetejének igazítását adja meg.TA_UPDATECPAz 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:
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ésTA_RIGHTTA_BASELINE,TA_BOTTOMésTA_TOPTA_NOUPDATECPésTA_UPDATECP
Alkalmazza a C++ bitenkénti ÉS (
&) operátort az eredményre és a visszatérési értékreGetTextAlign.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:
COMPLEXREGIONAz új kivágási régió szegélye átfedésben van.ERRORAz eszközkörnyezet érvénytelen.NULLREGIONAz új kivágási régió üres.SIMPLEREGIONAz ú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:
COMPLEXREGIONA vágórégió szegélye átfedésben van.ERRORAz eszközkörnyezet érvénytelen.NULLREGIONA kivágási régió üres.SIMPLEREGIONA 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:
PATCOPYMinta másolása célbitképre.PATINVERTA logikai XOR (^) operátorral egyesíti a célbitképet a mintával.DSTINVERTMegfordítja a célbitképet.BLACKNESSAz összes kimenetet feketére váltja.WHITENESSAz ö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_MOVETOMegadja, hogy ez a pont egy különálló ábrát indít el. Ez a pont lesz az új jelenlegi pozíció.PT_LINETOMegadja, 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_BEZIERTOAzt 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 vagyPT_BEZIERTOaPT_LINETOtípus elkészült. A vonal ettől a ponttól a legutóbbiigPT_MOVETOvagyMoveTopontig húzódik.Ez a
PT_LINETOjelző egy vonal típusával vagy egyPT_BEZIERTOBzier 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_ANDAz ú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_COPYAz új kivágási régió az aktuális elérési út.RGN_DIFFAz ú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_ORAz ú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_XORAz ú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 aRGN_COPYmód meg van adva.
nMode
Megadja a végrehajtandó műveletet. Az alábbi értékek egyikének kell lennie:
RGN_ANDAz ú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ületeitpRgn.RGN_COPYAz új kivágási régió annak a régiónak a másolata, amelyetpRgna rendszer azonosított. Ez a funkció megegyezik az első verzióvalSelectClipRgn. Ha az azonosítottpRgnrégió azNULL, az új kivágási régió lesz az alapértelmezett kivágási régió (null régió).RGN_DIFFAz ú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 általukpRgnazonosított régióba.RGN_ORAz új kivágási régió egyesíti az aktuális kivágási régiót és az általa azonosított régiótpRgn.RGN_XORAz új kivágási régió egyesíti az aktuális kivágási régiót és az általapRgnazonosí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:
COMPLEXREGIONAz új kivágási régió szegélye átfedésben van.ERRORAz eszközkörnyezet vagy a régió érvénytelen.NULLREGIONAz új kivágási régió üres.SIMPLEREGIONAz ú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:
COMPLEXREGIONAz új kivágási régió szegélye átfedésben van.ERRORAz eszközkörnyezet vagy a régió érvénytelen.NULLREGIONAz új kivágási régió üres.SIMPLEREGIONAz ú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_BRUSHFekete kefe.DKGRAY_BRUSHSötétszürke ecset.GRAY_BRUSHSzürke ecset.HOLLOW_BRUSHÜreges kefe.LTGRAY_BRUSHVilágosszürke ecset.NULL_BRUSHNull kefével.WHITE_BRUSHFehér ecset.BLACK_PENFekete toll.NULL_PENNull toll.WHITE_PENFehér toll.ANSI_FIXED_FONTAZ ANSI rögzítette a rendszer betűtípusát.ANSI_VAR_FONTANSI változórendszer betűtípusa.DEVICE_DEFAULT_FONTEszközfüggő betűtípus.OEM_FIXED_FONTOEM-függő rögzített betűtípus.SYSTEM_FONTA 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ámaszkodikSYSTEM_FONTa párbeszédpanelek és ablakok által használt betűtípus beszerzésére. Ehelyett használja aSystemParametersInfofüggvényt aSPI_GETNONCLIENTMETRICSparaméterrel az aktuális betűtípus lekéréséhez.SystemParametersInfofigyelembe 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_FONTA 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_PALETTEAlapé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_OUTOFDISKJelenleg nem áll rendelkezésre elegendő lemezterület a várólistához, és nem lesz több szabad hely.SP_OUTOFMEMORYNincs elegendő memória a várólistához.SP_USERABORTA 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_COUNTERCLOCKWISEAz óramutató járásával ellentétesen rajzolt számok.AD_CLOCKWISEAz ó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:
OPAQUEA 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.TRANSPARENTA 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_ACCUMULATEAdja hozzá a határoló téglalaphoz megadottlpRectBoundstéglalapot (téglalap-egyesítő művelettel).DCB_DISABLEKapcsolja ki a korlátok felhalmozódását.DCB_ENABLEKapcsolja 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_ACCUMULATEA határolókeret nem üres. Ez az érték mindig be lesz állítva.DCB_DISABLEA határfelhalmozódás ki van kapcsolva.DCB_ENABLEA 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_ANISOTROPICA logikai egységek tetszőleges, skálázott tengelyekkel rendelkező egységekké alakulnak. A leképezési módMM_ANISOTROPICbeá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 ésSetViewportExtaSetWindowExttagfüggvényeket.MM_HIENGLISHMinden logikai egység 0,001 hüvelykre lesz konvertálva. Pozitív x a jobb oldalon; pozitív y van.MM_HIMETRICMinden logikai egység 0,01 milliméterre lesz konvertálva. Pozitív x a jobb oldalon; pozitív y van.MM_ISOTROPICA 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.SetWindowExtA kívánt egységek ésSetViewportExta 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_LOENGLISHMinden logikai egység 0,01 hüvelykre lesz konvertálva. Pozitív x a jobb oldalon; pozitív y van.MM_LOMETRICMinden logikai egység 0,1 milliméteresre lesz konvertálva. Pozitív x a jobb oldalon; pozitív y van.MM_TEXTMinden 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_TWIPSMinden 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_BLACKA képpont mindig fekete.R2_WHITEA pixel mindig fehér.R2_NOPA képpont változatlan marad.R2_NOTA képpont a képernyő színének inverze.R2_COPYPENA képpont a toll színe.R2_NOTCOPYPENA képpont a toll színének inverze.R2_MERGEPENNOTA 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_MASKPENNOTA 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_MERGENOTPENA 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_MASKNOTPENA 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_MERGEPENA 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_NOTMERGEPENA képpont a szín inverzeR2_MERGEPEN(végső képpont =~(toll|képernyő képpontja)).R2_MASKPENA 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_NOTMASKPENA képpont a szín inverzeR2_MASKPEN(végső képpont =~(toll&képernyő képpontja)).R2_XORPENA 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_NOTXORPENA képpont a szín inverzeR2_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_CENTERIgazítja a pontot a határoló téglalap vízszintes közepéhez.TA_LEFTA határolt téglalap bal oldalához igazítja a pontot. Ez az alapértelmezett beállítás.TA_RIGHTIgazí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_BASELINEA pontot a választott betűtípus alapvonalához igazítja.TA_BOTTOMIgazítja a pontot a határoló téglalap aljára.TA_TOPA 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_NOUPDATECPNem 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_UPDATECPFrissí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 aTextOuttagfü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_HIENGLISHMM_HIMETRICMM_LOENGLISHMM_LOMETRICMM_TEXTMM_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:
BLACKNESSAz összes kimenetet feketére váltja.DSTINVERTMegfordítja a célbitképet.MERGECOPYA logikai ÉS operátorral egyesíti a mintát és a forrásbitképet.MERGEPAINTAz invertált forrásbitkép és a célbitkép kombinálása a logikai VAGY operátorral.NOTSRCCOPYMásolja a fordított forrásbitképet a célhelyre.NOTSRCERASEA cél- és forrásbitképek logikai VAGY operátorral való kombinálásának eredményét invertálta.PATCOPYMásolja a mintát a célbitképre.PATINVERTA logikai XOR operátorral egyesíti a célbitképet a mintával.PATPAINTAz 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.SRCANDA logikai ÉS operátorral egyesíti a cél- és forrásbitképek képpontjait.SRCCOPYMásolja a forrásbitképet a célbitképbe.SRCERASEMegfordítja a célbitképet, és egyesíti az eredményt a forrás bitképével a logikai ÉS operátorral.SRCINVERTA logikai XOR operátorral egyesíti a cél és a forrásbitkép képpontjait.SRCPAINTA cél és a forrásbitkép képpontjait egyesíti a logikai VAGY operátorral.WHITENESSAz ö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