Sdílet prostřednictvím


CDC Třída

Definuje třídu objektů kontextu zařízení.

Syntaxe

class CDC : public CObject

Členové

Veřejné konstruktory

Název Popis
CDC::CDC CDC Vytvoří objekt.

Veřejné metody

Název Popis
CDC::AbortDoc Ukončí aktuální tiskovou úlohu a vymaže všechno, co aplikace napsala do zařízení od posledního StartDoc volání členské funkce.
CDC::AbortPath Zavře a zahodí všechny cesty v kontextu zařízení.
CDC::AddMetaFileComment Zkopíruje komentář z vyrovnávací paměti do zadaného metasouboru rozšířeného formátu.
CDC::AlphaBlend Zobrazí rastrové obrázky, které mají průhledné nebo poloprůhledné pixely.
CDC::AngleArc Nakreslí segment čáry a oblouk a přesune aktuální pozici na koncový bod oblouku.
CDC::Arc Nakreslí elipsický oblouk.
CDC::ArcTo Nakreslí elipsický oblouk. Tato funkce je podobná s tím rozdílem Arc, že aktuální pozice je aktualizována.
CDC::Attach Připojí k tomuto CDC objektu kontext zařízení s Windows.
CDC::BeginPath Otevře závorku cesty v kontextu zařízení.
CDC::BitBlt Zkopíruje rastrový obrázek ze zadaného kontextu zařízení.
CDC::Chord Nakreslí akord (uzavřený obrázek ohraničený průsečíkem tří teček a segmentu čáry).
CDC::CloseFigure Zavře otevřený obrázek v cestě.
CDC::CreateCompatibleDC Vytvoří kontext paměťového zařízení, který je kompatibilní s jiným kontextem zařízení. Můžete ho použít k přípravě obrázků v paměti.
CDC::CreateDC Vytvoří kontext zařízení pro konkrétní zařízení.
CDC::CreateIC Vytvoří kontext informací pro konkrétní zařízení. To poskytuje rychlý způsob, jak získat informace o zařízení bez vytvoření kontextu zařízení.
CDC::DeleteDC Odstraní kontext zařízení s Windows přidružený k tomuto CDC objektu.
CDC::DeleteTempMap Volá se obslužnou rutinou CWinApp nečinnosti k odstranění libovolného dočasného CDC objektu vytvořeného FromHandle. Odpojte také kontext zařízení.
CDC::Detach Odpojte kontext zařízení s Windows od tohoto CDC objektu.
CDC::DPtoHIMETRIC Převede jednotky zařízení na HIMETRIC jednotky.
CDC::DPtoLP Převede jednotky zařízení na logické jednotky.
CDC::Draw3dRect Nakreslí trojrozměrný obdélník.
CDC::DrawDragRect Při přetahování vymaže a překreslí obdélník.
CDC::DrawEdge Nakreslí okraje obdélníku.
CDC::DrawEscape Přistupuje k možnostem kreslení zobrazení videa, které nejsou přímo dostupné prostřednictvím rozhraní grafického zařízení (GDI).
CDC::DrawFocusRect Nakreslí obdélník ve stylu použitém k označení fokusu.
CDC::DrawFrameControl Nakreslete ovládací prvek rámečku.
CDC::DrawIcon Nakreslí ikonu.
CDC::DrawState Zobrazí obrázek a použije vizuální efekt pro označení stavu.
CDC::DrawText Nakreslí formátovaný text v zadaném obdélníku.
CDC::DrawTextEx Nakreslí formátovaný text v zadaném obdélníku pomocí jiných formátů.
CDC::Ellipse Nakreslí tři tečky.
CDC::EndDoc Ukončí tiskovou úlohu spuštěnou členovou StartDoc funkcí.
CDC::EndPage Informuje ovladač zařízení, že stránka končí.
CDC::EndPath Zavře závorku cesty a vybere cestu definovanou závorkou do kontextu zařízení.
CDC::EnumObjects Vytvoří výčet per a štětců dostupných v kontextu zařízení.
CDC::Escape Umožňuje aplikacím přístup k zařízením, které nejsou přímo dostupné z konkrétního zařízení prostřednictvím GDI. Umožňuje také přístup k řídicím funkcím Windows. Řídicí volání provedená aplikací se přeloží a odešlou do ovladače zařízení.
CDC::ExcludeClipRect Vytvoří novou oblast výřezu, která se skládá z existující oblasti výřezu minus zadaný obdélník.
CDC::ExcludeUpdateRgn Zabrání kreslení v neplatných oblastech okna vyloučením aktualizované oblasti v okně z oblasti výřezu.
CDC::ExtFloodFill Vyplní oblast aktuálním štětcem. Poskytuje větší flexibilitu než členová CDC::FloodFill funkce.
CDC::ExtTextOut Zapíše řetězec znaků v obdélníkové oblasti pomocí aktuálně vybraného písma.
CDC::FillPath Zavře všechny otevřené obrázky v aktuální cestě a vyplní jeho interiér pomocí aktuálního štětce a polygonového režimu.
CDC::FillRect Vyplní daný obdélník pomocí štětce.
CDC::FillRgn Vyplní konkrétní oblast zadaným štětcem.
CDC::FillSolidRect Vyplní obdélník plnou barvou.
CDC::FlattenPath Transformuje všechny křivky v cestě vybrané na aktuální kontext zařízení a změní každou křivku na posloupnost čar.
CDC::FloodFill Vyplní oblast aktuálním štětcem.
CDC::FrameRect Nakreslí ohraničení kolem obdélníku.
CDC::FrameRgn Nakreslí ohraničení kolem konkrétní oblasti pomocí štětce.
CDC::FromHandle Vrátí ukazatel na CDC objekt při zadání popisovače kontextu zařízení. CDC Pokud objekt není připojený k popisovači, vytvoří se dočasný CDC objekt a připojí se.
CDC::GetArcDirection Vrátí aktuální směr oblouku pro kontext zařízení.
CDC::GetAspectRatioFilter Načte nastavení aktuálního filtru poměru stran.
CDC::GetBkColor Načte aktuální barvu pozadí.
CDC::GetBkMode Načte režim pozadí.
CDC::GetBoundsRect Vrátí aktuální kumulovaný ohraničující obdélník pro zadaný kontext zařízení.
CDC::GetBrushOrg Načte původ aktuálního štětce.
CDC::GetCharABCWidths Načte šířky v logických jednotkách po sobě jdoucích znaků v daném rozsahu z aktuálního písma.
CDC::GetCharABCWidthsI Načte šířky v logických jednotkách po sobě jdoucích indexů glyfů v zadaném rozsahu z aktuálního písma TrueType.
CDC::GetCharacterPlacement Načte různé typy informací o řetězci znaků.
CDC::GetCharWidth Načte desetinné šířky po sobě jdoucích znaků v daném rozsahu z aktuálního písma.
CDC::GetCharWidthI Načte šířky v logických souřadnicích po sobě jdoucích indexů glyfů v zadaném rozsahu od aktuálního písma.
CDC::GetClipBox Načte rozměry nejtěsnějšího ohraničujícího obdélníku kolem aktuální hranice oříznutí.
CDC::GetColorAdjustment Načte hodnoty úprav barev pro kontext zařízení.
CDC::GetCurrentBitmap Vrátí ukazatel na aktuálně vybraný CBitmap objekt.
CDC::GetCurrentBrush Vrátí ukazatel na aktuálně vybraný CBrush objekt.
CDC::GetCurrentFont Vrátí ukazatel na aktuálně vybraný CFont objekt.
CDC::GetCurrentPalette Vrátí ukazatel na aktuálně vybraný CPalette objekt.
CDC::GetCurrentPen Vrátí ukazatel na aktuálně vybraný CPen objekt.
CDC::GetCurrentPosition Načte aktuální pozici pera (v logických souřadnicích).
CDC::GetDCBrushColor Načte aktuální barvu štětce.
CDC::GetDCPenColor Načte aktuální barvu pera.
CDC::GetDeviceCaps Načte zadaný druh informací specifických pro zařízení o schopnostech daného zařízení pro zobrazení.
CDC::GetFontData Načte informace o metrikách písma ze škálovatelného souboru písma. Informace k načtení jsou identifikovány zadáním posunu do souboru písma a délky informací, které se mají vrátit.
CDC::GetFontLanguageInfo Vrátí informace o aktuálně vybraném písmu pro zadaný kontext zobrazení.
CDC::GetGlyphOutline Načte křivku obrysu nebo rastrový obrázek pro znak osnovy v aktuálním písmu.
CDC::GetGraphicsMode Načte aktuální grafický režim pro zadaný kontext zařízení.
CDC::GetHalftoneBrush Načte půltónový štětec.
CDC::GetKerningPairs Načte dvojice prokládání znaků pro písmo, které je aktuálně vybrané v zadaném kontextu zařízení.
CDC::GetLayout Načte rozložení kontextu zařízení (DC). Rozložení může být zleva doprava (výchozí) nebo zprava doleva (zrcadlené).
CDC::GetMapMode Načte aktuální režim mapování.
CDC::GetMiterLimit Vrátí limit miter pro kontext zařízení.
CDC::GetNearestColor Načte nejbližší logickou barvu k zadané logické barvě, kterou může dané zařízení reprezentovat.
CDC::GetOutlineTextMetrics Načte informace o metrice písma typu TrueType.
CDC::GetOutputCharWidth Načte šířky jednotlivých znaků v po sobě jdoucí skupině znaků z aktuálního písma pomocí kontextu výstupního zařízení.
CDC::GetOutputTabbedTextExtent Vypočítá šířku a výšku řetězce znaků v kontextu výstupního zařízení.
CDC::GetOutputTextExtent Vypočítá šířku a výšku řádku textu ve výstupním kontextu zařízení pomocí aktuálního písma k určení rozměrů.
CDC::GetOutputTextMetrics Načte metriky pro aktuální písmo z kontextu výstupního zařízení.
CDC::GetPath Načte souřadnice definující koncové body čar a kontrolní body křivek nalezených v cestě vybrané v kontextu zařízení.
CDC::GetPixel Načte hodnotu barvy RGB pixelu v zadaném bodě.
CDC::GetPolyFillMode Načte aktuální režim vyplňování mnohoúhelníku.
CDC::GetROP2 Načte aktuální režim výkresu.
CDC::GetSafeHdc Vrátí CDC::m_hDCkontext výstupního zařízení.
CDC::GetStretchBltMode Načte aktuální režim roztažení rastrového obrázku.
CDC::GetTabbedTextExtent Vypočítá šířku a výšku řetězce znaků v kontextu zařízení atributu.
CDC::GetTextAlign Načte příznaky zarovnání textu.
CDC::GetTextCharacterExtra Načte aktuální nastavení pro množství mezer mezi znaky.
CDC::GetTextColor Načte aktuální barvu textu.
CDC::GetTextExtent Vypočítá šířku a výšku řádku textu v kontextu zařízení atributu pomocí aktuálního písma k určení rozměrů.
CDC::GetTextExtentExPointI Načte počet znaků v zadaném řetězci, který se vejde do zadaného místa, a vyplní matici textovým rozsahem pro každý z těchto znaků.
CDC::GetTextExtentPointI Načte šířku a výšku zadaného pole indexů glyfů.
CDC::GetTextFace Zkopíruje název písma aktuálního písma do vyrovnávací paměti jako řetězec ukončený hodnotou null.
CDC::GetTextMetrics Načte metriky pro aktuální písmo z kontextu zařízení atributu.
CDC::GetViewportExt Načte rozsahy x a y oblasti zobrazení.
CDC::GetViewportOrg Načte souřadnice x a y původu oblasti zobrazení.
CDC::GetWindow Vrátí okno přidružené k kontextu zařízení pro zobrazení.
CDC::GetWindowExt Načte rozsahy x a y přidruženého okna.
CDC::GetWindowOrg Načte souřadnice x a y původu přidruženého okna.
CDC::GetWorldTransform Načte aktuální světovou mezeru na transformaci stránkového prostoru.
CDC::GradientFill Vyplní obdélníkové a trojúhelníkové struktury s barvou známkování.
CDC::GrayString Nakreslí šedě (šedě) text na daném místě.
CDC::HIMETRICtoDP Převede jednotky HIMETRIC na jednotky zařízení.
CDC::HIMETRICtoLP Převede jednotky HIMETRIC na logické jednotky.
CDC::IntersectClipRect Vytvoří novou oblast výřezu vytvořením průsečíku aktuální oblasti a obdélníku.
CDC::InvertRect Invertuje obsah obdélníku.
CDC::InvertRgn Invertuje barvy v oblasti.
CDC::IsPrinting Určuje, jestli se pro tisk používá kontext zařízení.
CDC::LineTo Nakreslí čáru z aktuální pozice nahoru, ale neobsahuje ani bod.
CDC::LPtoDP Převede logické jednotky na jednotky zařízení.
CDC::LPtoHIMETRIC Převede logické jednotky na jednotky HIMETRIC.
CDC::MaskBlt Kombinuje barevná data pro zdrojové a cílové rastrové obrázky pomocí dané masky a rastrové operace.
CDC::ModifyWorldTransform Změní světovou transformaci kontextu zařízení pomocí zadaného režimu.
CDC::MoveTo Přesune aktuální pozici.
CDC::OffsetClipRgn Přesune oblast výřezu daného zařízení.
CDC::OffsetViewportOrg Upraví původ oblasti zobrazení vzhledem ke souřadnicím aktuálního původu oblasti zobrazení.
CDC::OffsetWindowOrg Upraví původ okna vzhledem ke souřadnicím aktuálního původu okna.
CDC::PaintRgn Vyplní oblast vybraným štětcem.
CDC::PatBlt Vytvoří bitový vzor.
CDC::Pie Nakreslí výsečový klín.
CDC::PlayMetaFile Přehraje obsah zadaného metasouboru na daném zařízení. Vylepšená verze zobrazí obrázek uložený v daném metasouboru rozšířeného PlayMetaFile formátu. Metasoubor lze přehrát libovolný počet.
CDC::PlgBlt Provede bitový blok přenosu bitů barevných dat ze zadaného obdélníku v kontextu zdrojového zařízení do zadaného paralelogramu v daném kontextu zařízení.
CDC::PolyBezier Nakreslí jednu nebo více čar Bzier. Aktuální pozice se nepoužívá ani neaktualizuje.
CDC::PolyBezierTo Nakreslí jeden nebo více Bzier splines a přesune aktuální pozici na koncový bod posledního Bzier spline.
CDC::PolyDraw Nakreslí sadu segmentů čar a Bzier splines. Tato funkce aktualizuje aktuální pozici.
CDC::Polygon Nakreslí mnohoúhelník skládající se ze dvou nebo více bodů (vrcholů) spojených spojnicemi.
CDC::Polyline Nakreslí sadu segmentů čar spojujících zadané body.
CDC::PolylineTo Nakreslí jednu nebo více rovných čar a přesune aktuální pozici na koncový bod poslední čáry.
CDC::PolyPolygon Vytvoří dva nebo více mnohoúhelníku, které jsou vyplněny pomocí aktuálního režimu mnohoúhelníku. Mnohoúhelníky mohou být oddělené nebo se mohou překrývat.
CDC::PolyPolyline Nakreslí více řad propojených segmentů čar. Tato funkce nepoužívá ani neaktualizuje aktuální pozici.
CDC::PtVisible Určuje, jestli se daný bod nachází v oblasti výřezu.
CDC::RealizePalette Mapuje položky palety v aktuální logické paletě na systémovou paletu.
CDC::Rectangle Nakreslí obdélník pomocí aktuálního pera a vyplní ho pomocí aktuálního štětce.
CDC::RectVisible Určuje, zda některá část daného obdélníku leží v oblasti výřezu.
CDC::ReleaseAttribDC Vydané verze m_hAttribDC, kontext zařízení atributu.
CDC::ReleaseOutputDC Vydané verze m_hDC, kontext výstupního zařízení.
CDC::ResetDC m_hAttribDC Aktualizuje kontext zařízení.
CDC::RestoreDC Obnoví kontext zařízení do předchozího stavu uloženého v SaveDCsouboru .
CDC::RoundRect Nakreslí obdélník se zaoblenými rohy pomocí aktuálního pera a vyplní aktuálním štětcem.
CDC::SaveDC Uloží aktuální stav kontextu zařízení.
CDC::ScaleViewportExt Upraví rozsah oblasti zobrazení vzhledem k aktuálním hodnotám.
CDC::ScaleWindowExt Upraví rozsahy okna vzhledem k aktuálním hodnotám.
CDC::ScrollDC Posune obdélník bitů vodorovně a svisle.
CDC::SelectClipPath Vybere aktuální cestu jako oblast výřezu kontextu zařízení a zkombinuje novou oblast s jakoukoli existující oblastí výřezu pomocí zadaného režimu.
CDC::SelectClipRgn Kombinuje danou oblast s aktuální oblastí výřezu pomocí zadaného režimu.
CDC::SelectObject Vybere nakreslený objekt GDI, například pero.
CDC::SelectPalette Vybere logickou paletu.
CDC::SelectStockObject Vybere jedno z předdefinovaných per, štětců nebo písem poskytovaných systémem Windows.
CDC::SetAbortProc Nastaví programátorem zadanou funkci zpětného volání, kterou systém Windows volá, pokud je nutné přerušit tiskovou úlohu.
CDC::SetArcDirection Nastaví směr kreslení, který se má použít pro obloukové a obdélníkové funkce.
CDC::SetAttribDC Nastaví m_hAttribDCkontext zařízení atributu.
CDC::SetBkColor Nastaví aktuální barvu pozadí.
CDC::SetBkMode Nastaví režim pozadí.
CDC::SetBoundsRect Řídí akumulace informací o ohraničujícího obdélníku pro zadaný kontext zařízení.
CDC::SetBrushOrg Určuje původ dalšího štětce vybraného v kontextu zařízení.
CDC::SetColorAdjustment Nastaví hodnoty úprav barev pro kontext zařízení pomocí zadaných hodnot.
CDC::SetDCBrushColor Nastaví aktuální barvu štětce.
CDC::SetDCPenColor Nastaví aktuální barvu pera.
CDC::SetGraphicsMode Nastaví aktuální grafický režim pro zadaný kontext zařízení.
CDC::SetLayout Změní rozložení kontextu zařízení (DC).
CDC::SetMapMode Nastaví aktuální režim mapování.
CDC::SetMapperFlags Změní algoritmus, který mapovač písem používá, když mapuje logická písma na fyzická písma.
CDC::SetMiterLimit Nastaví limit pro délku spojení miterů pro kontext zařízení.
CDC::SetOutputDC Nastaví m_hDCkontext výstupního zařízení.
CDC::SetPixel Nastaví pixel v zadaném bodě na nejbližší aproximaci zadané barvy.
CDC::SetPixelV Nastaví pixel na zadaných souřadnicích na nejbližší aproximaci zadané barvy. SetPixelV je rychlejší než SetPixel proto, že nemusí vracet barevnou hodnotu namalovaného bodu.
CDC::SetPolyFillMode Nastaví režim mnohoúhelníku.
CDC::SetROP2 Nastaví aktuální režim kreslení.
CDC::SetStretchBltMode Nastaví režim rastrového roztažení.
CDC::SetTextAlign Nastaví příznaky zarovnání textu.
CDC::SetTextCharacterExtra Nastaví velikost mezer mezi znaky.
CDC::SetTextColor Nastaví barvu textu.
CDC::SetTextJustification Přidá mezeru ke znakům zalomení v řetězci.
CDC::SetViewportExt Nastaví rozsahy x a y oblasti zobrazení.
CDC::SetViewportOrg Nastaví zdroj oblasti zobrazení.
CDC::SetWindowExt Nastaví rozsahy x a y přidruženého okna.
CDC::SetWindowOrg Nastaví původ okna kontextu zařízení.
CDC::SetWorldTransform Nastaví aktuální světovou mezeru na transformaci stránkového prostoru.
CDC::StartDoc Informuje ovladač zařízení, že se spouští nová tisková úloha.
CDC::StartPage Informuje ovladač zařízení, že se spouští nová stránka.
CDC::StretchBlt V případě potřeby přesune rastrový obrázek ze zdrojového obdélníku a zařízení do cílového obdélníku, roztáhne nebo zkomprimuje rastrový obrázek tak, aby odpovídal rozměrům cílového obdélníku.
CDC::StrokeAndFillPath Zavře všechny otevřené obrázky v cestě, přeškrtá obrys cesty pomocí aktuálního pera a vyplní jeho interiér pomocí aktuálního štětce.
CDC::StrokePath Vykreslí zadanou cestu pomocí aktuálního pera.
CDC::TabbedTextOut Zapíše řetězec znaků do zadaného umístění a rozbalí tabulátory na hodnoty zadané v poli pozic zarážky tabulátoru.
CDC::TextOut Zapíše řetězec znaků do zadaného umístění pomocí aktuálně vybraného písma.
CDC::TransparentBlt Přenese bitové bloky barevných dat ze zadaného kontextu zdrojového zařízení do kontextu cílového zařízení, čímž se v přenosu zobrazí zadaná barva průhledná.
CDC::UpdateColors Aktualizuje oblast klienta kontextu zařízení tím, že odpovídá aktuálním barvám v klientské oblasti se systémovou paletou na pixel-by-pixel.
CDC::WidenPath Předefinuje aktuální cestu jako oblast, která by byla vykreslena, pokud by byla cesta tahována pomocí pera aktuálně vybraného do kontextu zařízení.

Veřejné operátory

Název Popis
CDC::operator HDC Načte popisovač kontextu zařízení.

Veřejné datové členy

Název Popis
CDC::m_hAttribDC Kontext atributu zařízení používaný tímto CDC objektem.
CDC::m_hDC Kontext výstupního zařízení používaný tímto CDC objektem.

Poznámky

Objekt CDC poskytuje členské funkce pro práci s kontextem zařízení, jako je zobrazení nebo tiskárna, a členy pro práci s kontextem zobrazení přidruženým k klientské oblasti okna.

Projděte si všechny členské funkce objektu CDC . Třída poskytuje členské funkce pro operace kontextu zařízení, práce s nástroji kreslení, typově bezpečné rozhraní grafického zařízení (GDI) výběr objektů a práce s barvami a paletami. Poskytuje také členské funkce pro získávání a nastavení atributů výkresu, mapování, práci s oblastí zobrazení, práci s rozsahem okna, převod souřadnic, práci s oblastmi, oříznutí, kreslení čar a kreslení jednoduchých obrazců, elips a mnohoúhelníku. Členské funkce jsou také k dispozici pro kreslení textu, práci s písmy, použití řídicích znaků tiskárny, posouvání a přehrávání metasouborů.

Pokud chcete použít CDC objekt, vytvořte ho a potom volejte jeho členské funkce, které paralelně používají funkce Systému Windows, které používají kontexty zařízení.

Poznámka:

Ve Windows 95/98 jsou všechny souřadnice obrazovky omezené na 16 bitů. int CDC Předání členské funkci proto musí být v rozsahu -32768 až 32767.

Pro konkrétní použití poskytuje knihovna tříd Microsoft Foundation několik tříd odvozených z CDC . CPaintDC zapouzdřuje volání do BeginPaint a EndPaint. CClientDC spravuje kontext zobrazení přidružený k klientské oblasti okna. CWindowDC spravuje kontext zobrazení přidružený k celému okně, včetně jeho rámce a ovládacích prvků. CMetaFileDC přidruží kontext zařízení k metasouboru.

CDC poskytuje dvě členské funkce GetLayout a SetLayoutpro vrácení rozložení kontextu zařízení, které nedědí jeho rozložení z okna. Taková orientace zprava doleva je nezbytná pro aplikace napsané pro jazykové verze, jako je arabština nebo hebrejština, kde rozložení znaků není evropským standardem.

CDC obsahuje dva kontexty zařízení, m_hDC které m_hAttribDCpři vytváření objektu CDC odkazují na stejné zařízení. CDCsměruje všechna volání GDI výstupu do m_hDC a většina volání GDI atributu .m_hAttribDC (Příklad volání atributu je GetTextColor, zatímco SetTextColor je výstupní volání.)

Architektura například používá tyto dva kontexty zařízení k implementaci objektu CMetaFileDC , který bude odesílat výstup do metasouboru při čtení atributů z fyzického zařízení. Náhled tisku se implementuje v rámci podobným způsobem. V kódu specifickém pro aplikaci můžete také použít dva kontexty zařízení podobným způsobem.

Někdy můžete potřebovat informace o textové metrice z m_hDC kontextu zařízení i m_hAttribDC z kontextu zařízení. Následující páry funkcí poskytují tuto funkci:

Používá m_hAttribDC Používá m_hDC
GetTextExtent GetOutputTextExtent
GetTabbedTextExtent GetOutputTabbedTextExtent
GetTextMetrics GetOutputTextMetrics
GetCharWidth GetOutputCharWidth

Další informace najdete v CDCtématu Kontexty zařízení.

Hierarchie dědičnosti

CObject

CDC

Požadavky

Záhlaví: afxwin.h

CDC::AbortDoc

Ukončí aktuální tiskovou úlohu a vymaže všechno, co aplikace napsala do zařízení od posledního StartDoc volání členské funkce.

int AbortDoc();

Návratová hodnota

Hodnota větší nebo rovna 0, pokud byla úspěšná, nebo záporná hodnota, pokud došlo k chybě. Následující seznam obsahuje běžné chybové hodnoty a jejich významy:

  • SP_ERROR Obecná chyba.

  • SP_OUTOFDISK Není k dispozici dostatek místa na disku pro zařazování a nebude k dispozici žádné další místo.

  • SP_OUTOFMEMORY Pro zařazování není k dispozici dostatek paměti.

  • SP_USERABORT Uživatel ukončil úlohu prostřednictvím Správce tisku.

Poznámky

Tato členová funkce nahrazuje řídicí znak tiskárny ABORTDOC .

AbortDoc by měly být použity k ukončení následujících:

  • Tiskové operace, které nezadávají funkci přerušení pomocí SetAbortProc.

  • Tiskové operace, které ještě nedosáhly prvního NEWFRAME nebo NEXTBAND řídicího volání.

Pokud aplikace narazí na chybu tisku nebo zrušenou tiskovou operaci, nesmí se pokoušet ukončit operaci pomocí buď EndDoc AbortDoc pomocí nebo členské funkce třídy CDC. GDI automaticky ukončí operaci před vrácením chybové hodnoty.

Pokud aplikace zobrazí dialogové okno, které uživateli umožní zrušit operaci tisku, musí před zničením dialogového okna volat AbortDoc .

Pokud byl správce tisku použit ke spuštění tiskové úlohy, volání AbortDoc vymaže celou úlohu zařazování – tiskárna neobdrží nic. Pokud správce tisku nebyl použit ke spuštění tiskové úlohy, data byla pravděpodobně odeslána do tiskárny předtím, než AbortDoc byla volána. V takovém případě by ovladač tiskárny resetoval tiskárnu (pokud je to možné) a zavřel tiskovou úlohu.

Příklad

Podívejte se na příklad pro CDC::StartDoc.

CDC::AbortPath

Zavře a zahodí všechny cesty v kontextu zařízení.

BOOL AbortPath();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Pokud je v kontextu zařízení otevřená závorka cesty, zavře se závorka cesty a cesta se zahodí. Pokud je v kontextu zařízení uzavřená cesta, cesta se zahodí.

CDC::AddMetaFileComment

Zkopíruje komentář z vyrovnávací paměti do zadaného metasouboru rozšířeného formátu.

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

Parametry

nDataSize
Určuje délku vyrovnávací paměti komentáře v bajtech.

pCommentData
Odkazuje na vyrovnávací paměť, která obsahuje komentář.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Komentář může obsahovat jakékoli soukromé informace – například zdroj obrázku a datum jeho vytvoření. Komentář by měl začínat podpisem aplikace následovaným daty. Komentáře by neměly obsahovat data specifická pro pozici. Data specifická pro pozici určují umístění záznamu a neměla by být zahrnuta, protože jeden metasoubor může být vložen do jiného metasouboru. Tuto funkci lze použít pouze s rozšířenými metasoubory.

CDC::AlphaBlend

Voláním této členské funkce zobrazíte rastrové obrázky, které mají průhledné nebo poloprůhledné pixely.

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

Parametry

xDest
Určuje souřadnici x v logických jednotkách v levém horním rohu cílového obdélníku.

yDest
Určuje souřadnici y v logických jednotkách v levém horním rohu cílového obdélníku.

nDestWidth
Určuje šířku cílového obdélníku v logických jednotkách.

nDestHeight
Určuje výšku cílového obdélníku v logických jednotkách.

pSrcDC
Ukazatel na kontext zdrojového zařízení

xSrc
Určuje souřadnici x v logických jednotkách v levém horním rohu zdrojového obdélníku.

ySrc
Určuje souřadnici y v logických jednotkách v levém horním rohu zdrojového obdélníku.

nSrcWidth
Určuje šířku zdrojového obdélníku v logických jednotkách.

nSrcHeight
Určuje výšku zdrojového obdélníku v logických jednotkách.

blend
Určuje BLENDFUNCTION strukturu.

Návratová hodnota

TRUE v případě úspěchu; jinak FALSE.

Poznámky

Další informace najdete AlphaBlend v sadě Windows SDK.

CDC::AngleArc

Nakreslí segment čáry a oblouk.

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

Parametry

x
Určuje logickou souřadnici x středu kruhu.

y
Určuje logickou souřadnici y středu kruhu.

nRadius
Určuje poloměr kruhu v logických jednotkách. Tato hodnota musí být kladná.

fStartAngle
Určuje počáteční úhel ve stupních vzhledem k ose x.

fSweepAngle
Určuje úhel úklidu ve stupních vzhledem k počátečnímu úhlu.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Segment čáry je nakreslen z aktuální pozice na začátek oblouku. Oblouk je nakreslen podél obvodu kruhu s daným poloměrem a středem. Délka oblouku je definována daným počátečním a uklidit úhly.

AngleArc přesune aktuální pozici na koncový bod oblouku. Oblouk nakreslený touto funkcí se může zdát eliptický v závislosti na aktuálním režimu transformace a mapování. Před nakreslením oblouku tato funkce nakreslí segment čáry z aktuální pozice na začátek oblouku. Oblouk je vykreslen vytvořením imaginárního kruhu se zadaným poloměrem kolem zadaného středového bodu. Počáteční bod oblouku je určen měřením proti směru hodinových ručiček z osy x kruhu počtem stupňů v počátečním úhlu. Koncový bod je podobně umístěn měřením proti směru hodinových ručiček od počátečního bodu počtem stupňů v úhlu úklidu.

Pokud je úhel úklidu větší než 360 stupňů, oblouk se několikrát protáhl. Tato funkce nakreslí čáry pomocí aktuálního pera. Obrázek není vyplněný.

CDC::Arc

Nakreslí elipsický oblouk.

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);

Parametry

x1
Určuje souřadnici x levého horního rohu ohraničujícího obdélníku (v logických jednotkách).

y1
Určuje souřadnici y levého horního rohu ohraničujícího obdélníku (v logických jednotkách).

x2
Určuje souřadnici x pravého dolního rohu ohraničujícího obdélníku (v logických jednotkách).

y2
Určuje souřadnici y pravého dolního rohu ohraničujícího obdélníku (v logických jednotkách).

x3
Určuje souřadnici x bodu, který definuje výchozí bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

y3
Určuje souřadnici y bodu, který definuje výchozí bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

x4
Určuje souřadnici x bodu, který definuje koncový bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

y4
Určuje souřadnici y bodu, který definuje koncový bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

lpRect
Určuje ohraničující obdélník (v logických jednotkách). Pro tento parametr můžete předat objekt LPRECT nebo CRect objekt.

ptStart
Určuje souřadnice x a y bodu, který definuje výchozí bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

ptEnd
Určuje souřadnice x a y bodu, který definuje koncový bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Oblouk nakreslený pomocí funkce je segment tří teček definovaný zadaným ohraničujícím obdélníkem.

Skutečný počáteční bod oblouku je bod, ve kterém paprsek nakreslený ze středu ohraničujícího obdélníku přes zadaný počáteční bod protíná tři tečky. Skutečný koncový bod oblouku je bod, ve kterém paprsek nakreslený ze středu ohraničujícího obdélníku přes zadaný koncový bod protíná tři tečky. Oblouk je nakreslen proti směru hodinových ručiček. Vzhledem k tomu, že oblouk není uzavřený obrázek, není vyplněný. Šířka i výška obdélníku musí být větší než 2 jednotky a menší než 32 767 jednotek.

Příklad

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

Nakreslí elipsický oblouk.

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);

Parametry

x1
Určuje souřadnici x levého horního rohu ohraničujícího obdélníku (v logických jednotkách).

y1
Určuje souřadnici y levého horního rohu ohraničujícího obdélníku (v logických jednotkách).

x2
Určuje souřadnici x pravého dolního rohu ohraničujícího obdélníku (v logických jednotkách).

y2
Určuje souřadnici y pravého dolního rohu ohraničujícího obdélníku (v logických jednotkách).

x3
Určuje souřadnici x bodu, který definuje výchozí bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

y3
Určuje souřadnici y bodu, který definuje výchozí bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

x4
Určuje souřadnici x bodu, který definuje koncový bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

y4
Určuje souřadnici y bodu, který definuje koncový bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

lpRect
Určuje ohraničující obdélník (v logických jednotkách). Pro tento parametr můžete předat ukazatel na datovou RECT strukturu nebo CRect objekt.

ptStart
Určuje souřadnice x a y bodu, který definuje výchozí bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku. Pro tento parametr můžete předat datovou POINT CPoint strukturu nebo objekt.

ptEnd
Určuje souřadnice x a y bodu, který definuje koncový bod oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku. Pro tento parametr můžete předat datovou POINT CPoint strukturu nebo objekt.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato funkce je podobná s tím rozdílem CDC::Arc, že aktuální pozice je aktualizována. Body ( x1, y1) a ( x2) y2určují ohraničující obdélník. Elipsa tvořená daným ohraničujícím obdélníkem definuje křivku oblouku. Oblouk rozšiřuje proti směru hodinových ručiček (výchozí směr oblouku) od bodu, kde protíná paprskovou čáru ze středu ohraničujícího obdélníku na ( *x3*, y3). Oblouk končí tam, kde protíná paprskovou čáru ze středu ohraničujícího obdélníku na ( x4, y4). Pokud je počáteční bod a koncový bod stejný, je nakreslená úplná tři tečka.

Čára je nakreslena z aktuální pozice do počátečního bodu oblouku. Pokud nedojde k žádné chybě, je aktuální pozice nastavena na koncový bod oblouku. Oblouk je nakreslen pomocí aktuálního pera; není vyplněná.

CDC::Attach

Tato členová funkce slouží k připojení hDC objektu CDC .

BOOL Attach(HDC hDC);

Parametry

hDC
Kontext zařízení s Windows.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Objekt hDC je uložen v m_hDCkontextu výstupního zařízení i v m_hAttribDCkontextu atributu zařízení.

CDC::BeginPath

Otevře závorku cesty v kontextu zařízení.

BOOL BeginPath();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Po otevření závorky cesty může aplikace začít volat funkce kreslení GDI, aby definovala body, které leží v cestě. Aplikace může zavřít otevřenou závorku cesty voláním EndPath členské funkce. Při volání BeginPathaplikace se všechny předchozí cesty zahodí.

Seznam BeginPath funkcí výkresu, které definují body v cestě, najdete v sadě Windows SDK.

Příklad

// 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

Zkopíruje rastrový obrázek ze zdrojového kontextu zařízení do tohoto aktuálního kontextu zařízení.

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

Parametry

x
Určuje logickou souřadnici x levého horního rohu cílového obdélníku.

y
Určuje logickou souřadnici y levého horního rohu cílového obdélníku.

nWidth
Určuje šířku (v logických jednotkách) cílového obdélníku a zdrojového rastrového obrázku.

nHeight
Určuje výšku (v logických jednotkách) cílového obdélníku a zdrojového rastrového obrázku.

pSrcDC
Ukazatel na CDC objekt, který identifikuje kontext zařízení, ze kterého se rastrový obrázek zkopíruje. Musí to být NULL , pokud dwRop určuje rastrovou operaci, která neobsahuje zdroj.

xSrc
Určuje logickou souřadnici x levého horního rohu zdrojového rastrového obrázku.

ySrc
Určuje logickou souřadnici y levého horního rohu zdrojového rastrového obrázku.

dwRop
Určuje rastrovou operaci, která má být provedena. Rastrové kódy operací definují, jak GDI kombinuje barvy ve výstupních operacích, které zahrnují aktuální štětec, možnou zdrojovou bitmapu a cílovou bitmapu. BitBlt Seznam kódů dwRop rastrových operací a jejich popisů najdete v sadě Windows SDK.

Úplný seznam kódů rastrových operací naleznete v tématu O raster operation codes in the Windows SDK.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Aplikace může zarovnat okna nebo klientské oblasti na hranicích bajtů, aby se zajistilo, že BitBlt k operacím dochází na obdélníkech zarovnaných podle bajtů. (Nastavte CS_BYTEALIGNWINDOW příznaky při CS_BYTEALIGNCLIENT registraci tříd oken.)

BitBlt operace s obdélníky zarovnané podle bajtů jsou výrazně rychlejší než BitBlt operace s obdélníky, které nejsou zarovnané bajty. Pokud chcete zadat styly tříd, jako je zarovnání bajtů pro vlastní kontext zařízení, budete muset zaregistrovat třídu okna, a nemusíte se spoléhat na třídy Microsoft Foundation, aby to udělal za vás. Použijte globální funkci AfxRegisterWndClass.

GDI transformuje nWidth a nHeightjednou pomocí kontextu cílového zařízení a jednou pomocí kontextu zdrojového zařízení. Pokud se výsledné rozsahy neshodují, GDI použije funkci Windows StretchBlt ke komprimaci nebo roztažení zdrojového rastrového obrázku podle potřeby.

Pokud cílové, zdrojové a vzorové rastrové obrázky nemají stejný barevný formát, funkce převede zdrojové a vzorové rastrové obrázky tak, BitBlt aby odpovídaly cíli. V převodu se používají barvy popředí a pozadí cílového rastrového obrázku.

BitBlt Když funkce převede monochromatický rastr na barvu, nastaví bílé bity (1) na barvu pozadí a černé bity (0) na barvu popředí. Použijí se barvy popředí a pozadí kontextu cílového zařízení. Pokud chcete převést barvu na monochromatické, nastaví pixely, BitBlt které odpovídají barvě pozadí, na bílou a nastaví všechny ostatní pixely na černou. BitBlt používá barvy popředí a pozadí kontextu barevného zařízení k převodu z barvy na monochromatické.

Ne všechny kontexty zařízení podporují BitBlt. Pokud chcete zkontrolovat, jestli daný kontext zařízení podporuje BitBlt, použijte GetDeviceCaps členovou funkci a zadejte index RASTERCAPS.

Příklad

Podívejte se na příklad pro CDC::CreateCompatibleDC.

CDC::CDC

CDC Vytvoří objekt.

CDC();

CDC::Chord

Nakreslí akord (uzavřený obrázek ohraničený průsečíkem tří teček a segmentu čáry).

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);

Parametry

x1
Určuje souřadnici x levého horního rohu ohraničujícího obdélníku chordu (v logických jednotkách).

y1
Určuje souřadnici y levého horního rohu ohraničujícího obdélníku chordu (v logických jednotkách).

x2
Určuje souřadnici x pravého dolního rohu ohraničujícího obdélníku chordu (v logických jednotkách).

y2
Určuje souřadnici y pravého dolního rohu ohraničujícího obdélníku chordu (v logických jednotkách).

x3
Určuje souřadnici x bodu, který definuje počáteční bod chordu (v logických jednotkách).

y3
Určuje souřadnici y bodu, který definuje výchozí bod chordu (v logických jednotkách).

x4
Určuje souřadnici x bodu, který definuje koncový bod chordu (v logických jednotkách).

y4
Určuje souřadnici y bodu, který definuje koncový bod chordu (v logických jednotkách).

lpRect
Určuje ohraničující obdélník (v logických jednotkách). Pro tento parametr můžete předat objekt LPRECT nebo ho CRect .

ptStart
Určuje souřadnice x a y bodu, který definuje výchozí bod chordu (v logických jednotkách). Tento bod nemusí lhát přesně na chordu. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

*ptEnd*
Určuje souřadnice x a y bodu, který definuje koncový bod chordu (v logických jednotkách). Tento bod nemusí lhát přesně na chordu. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Parametry ( , y1) a ( x2x1, y2) určují levé horní a pravé dolní rohy obdélníku ohraničující tři tečky, které jsou součástí chordu. Parametry ( , x3y3) a ( x4, y4) určují koncové body čáry, která protíná tři tečky. Akord je kreslen pomocí vybraného pera a vyplněn pomocí vybraného štětce.

Obrázek nakreslený Chord funkcí se rozšiřuje až na, ale neobsahuje pravé a dolní souřadnice. To znamená, že výška obrázku je y2 - y1 a šířka obrázku je .x2 - x1

Příklad

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

Zavře otevřený obrázek v cestě.

BOOL CloseFigure();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Funkce zavře obrázek tak, že nakreslí čáru z aktuální pozice na první bod obrázku (obvykle bod určený posledním voláním MoveTo členské funkce) a spojí čáry pomocí stylu spojení čáry. Pokud je obrázek uzavřen pomocí LineTo členské funkce místo CloseFigure, koncová zakončení se použijí k vytvoření rohu místo spojení. CloseFigure měla by být volána pouze v případě, že je v kontextu zařízení otevřená závorka cesty.

Obrázek v cestě je otevřený, pokud není explicitně uzavřen pomocí této funkce. (Obrázek může být otevřen i v případě, že aktuální bod a výchozí bod obrázku jsou stejné.) Jakákoli čára nebo křivka přidaná do cesty po CloseFigure zahájení nového obrázku.

CDC::CreateCompatibleDC

Vytvoří kontext paměťového zařízení, který je kompatibilní se zařízením určeným pDCnástrojem .

BOOL CreateCompatibleDC(CDC* pDC);

Parametry

pDC
Ukazatel na kontext zařízení. Pokud pDC ano NULL, funkce vytvoří kontext paměťového zařízení, který je kompatibilní se zobrazením systému.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Kontext paměťového zařízení je blok paměti, který představuje plochu zobrazení. Dá se použít k přípravě obrázků v paměti předtím, než je zkopírujete na plochu zařízení kompatibilního zařízení.

Když se vytvoří kontext paměťového zařízení, GDI pro něj automaticky vybere monochromatický rastrový obrázek 1 po 1. Výstupní funkce GDI lze použít s kontextem paměťového zařízení pouze v případě, že byl v tomto kontextu vytvořen a vybrán rastrový obrázek.

Tuto funkci lze použít pouze k vytvoření kompatibilních kontextů zařízení pro zařízení, která podporují rastrové operace. Informace o přenosech bitových bloků mezi kontexty zařízení najdete v CDC::BitBlt členské funkci. Pokud chcete zjistit, zda kontext zařízení podporuje rastrové operace, podívejte se na RC_BITBLT možnosti rastru v členské funkci CDC::GetDeviceCaps.

Příklad

// 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

Vytvoří kontext zařízení pro zadané zařízení.

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

Parametry

lpszDriverName
Odkazuje na řetězec ukončený hodnotou null, který určuje název souboru (bez přípony) ovladače zařízení (například "EPSON"). Pro tento parametr můžete také předat CString objekt.

lpszDeviceName
Odkazuje na řetězec ukončený hodnotou null, který určuje název konkrétního zařízení, které se má podporovat (například "EPSON FX-80"). Tento lpszDeviceName parametr se použije, pokud modul podporuje více než jedno zařízení. Pro tento parametr můžete také předat CString objekt.

lpszOutput
Odkazuje na řetězec ukončený hodnotou null, který určuje název souboru nebo zařízení fyzického výstupního média (soubor nebo výstupní port). Pro tento parametr můžete také předat CString objekt.

lpInitData
Odkazuje na DEVMODE strukturu obsahující data inicializace specifická pro zařízení pro ovladač zařízení. Funkce Windows DocumentProperties načte tuto strukturu vyplněnou pro dané zařízení. Parametr lpInitData musí být NULL v případě, že ovladač zařízení použije výchozí inicializaci (pokud existuje) určenou uživatelem prostřednictvím Ovládací panely.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Pokud PRINT.H se struktura použije, je soubor hlavičky DEVMODE povinný.

Názvy zařízení se řídí těmito konvencemi: koncová dvojtečka (:) se doporučuje, ale volitelné. Systém Windows odstraní ukončující dvojtečku tak, aby byl název zařízení končící dvojtečka mapován na stejný port jako stejný název bez dvojtečky. Názvy ovladačů a portů nesmí obsahovat úvodní ani koncové mezery. Výstupní funkce GDI nelze použít s kontexty informací.

CDC::CreateIC

Vytvoří kontext informací pro zadané zařízení.

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

Parametry

lpszDriverName
Odkazuje na řetězec ukončený hodnotou null, který určuje název souboru (bez přípony) ovladače zařízení (například "EPSON"). Pro tento parametr můžete předat CString objekt.

lpszDeviceName
Odkazuje na řetězec ukončený hodnotou null, který určuje název konkrétního zařízení, které se má podporovat (například "EPSON FX-80"). Tento lpszDeviceName parametr se použije, pokud modul podporuje více než jedno zařízení. Pro tento parametr můžete předat CString objekt.

lpszOutput
Odkazuje na řetězec ukončený hodnotou null, který určuje název souboru nebo zařízení pro fyzické výstupní médium (soubor nebo port). Pro tento parametr můžete předat CString objekt.

lpInitData
Odkazuje na data inicializace specifická pro konkrétní zařízení pro ovladač zařízení. Parametr lpInitData musí být NULL v případě, že ovladač zařízení použije výchozí inicializaci (pokud existuje) určenou uživatelem prostřednictvím Ovládací panely. Viz CreateDC formát dat pro inicializaci specifickou pro zařízení.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Kontext informací poskytuje rychlý způsob, jak získat informace o zařízení bez vytvoření kontextu zařízení.

Názvy zařízení se řídí těmito konvencemi: koncová dvojtečka (:) se doporučuje, ale volitelné. Systém Windows odstraní ukončující dvojtečku tak, aby byl název zařízení končící dvojtečka mapován na stejný port jako stejný název bez dvojtečky. Názvy ovladačů a portů nesmí obsahovat úvodní ani koncové mezery. Výstupní funkce GDI nelze použít s kontexty informací.

CDC::DeleteDC

Obecně nevolejte tuto funkci; destruktor to udělá za vás.

BOOL DeleteDC();

Návratová hodnota

Nenulové, pokud se funkce úspěšně dokončila; jinak 0.

Poznámky

Členová DeleteDC funkce odstraní kontexty zařízení s Windows, které jsou přidružené m_hDC k aktuálnímu CDC objektu. Pokud je tento CDC objekt posledním aktivním kontextem zařízení pro dané zařízení, uvolní se všechny prostředky úložiště a systému používané zařízením.

Aplikace by neměla volat DeleteDC , pokud byly objekty vybrány do kontextu zařízení. Objekty musí být před odstraněním nejprve vybrány mimo kontext zařízení.

Aplikace nesmí odstranit kontext zařízení, jehož popisovač byl získán voláním CWnd::GetDC. Místo toho musí volat CWnd::ReleaseDC , aby uvolnil kontext zařízení. CWindowDC K CClientDC zabalení této funkce jsou k dispozici tyto třídy.

Funkce DeleteDC se obecně používá k odstranění kontextů zařízení vytvořených pomocí CreateDC, CreateICnebo CreateCompatibleDC.

Příklad

Podívejte se na příklad pro CPrintDialog::GetPrinterDC.

CDC::DeleteTempMap

Volá se automaticky obslužnou rutinou CWinApp nečinnosti, DeleteTempMap odstraní všechny dočasné CDC objekty vytvořené FromHandle, ale nezničí kontextové popisovače zařízení ( hDCs) dočasně přidružené k objektům CDC .

static void PASCAL DeleteTempMap();

CDC::Detach

Voláním této funkce odpojete m_hDC (kontext výstupního zařízení) od objektu CDC a nastavíte obojí m_hDC i m_hAttribDC na NULLhodnotu .

HDC Detach();

Návratová hodnota

Kontext zařízení s Windows.

CDC::DPtoHIMETRIC

Tuto funkci použijte, pokud dáváte HIMETRIC velikost OLE, převádět pixely na HIMETRIC.

void DPtoHIMETRIC(LPSIZE lpSize) const;

Parametry

lpSize
Odkazuje na strukturu nebo CSize objekt SIZE.

Poznámky

Pokud je MM_LOENGLISHrežim mapování objektu kontextu zařízení , MM_HIENGLISHMM_LOMETRICMM_HIMETRICnebo , převod je založen na počtu pixelů ve fyzickém paleci. Pokud je režim mapování jedním z ostatních neomezujících režimů (například MM_TEXT), převod je založen na počtu pixelů v logickém paleci.

CDC::DPtoLP

Převede jednotky zařízení na logické jednotky.

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

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

Parametry

lpPoints
Odkazuje na pole POINT struktur nebo CPoint objektů.

nCount
Počet bodů v matici

lpRect
Odkazuje na RECT strukturu nebo CRect objekt. Tento parametr se používá pro jednoduchý případ převodu jednoho obdélníku z bodů zařízení na logické body.

lpSize
Odkazuje na SIZE strukturu nebo CSize objekt.

Poznámky

Funkce mapuje souřadnice každého bodu nebo rozměru velikosti ze souřadnicového systému zařízení do logického souřadnicového systému GDI. Převod závisí na aktuálním režimu mapování a nastavení počátečních a rozsahů pro okno a oblast zobrazení zařízení.

CDC::Draw3dRect

Voláním této členské funkce nakreslete trojrozměrný obdélník.

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

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

Parametry

lpRect
Určuje ohraničující obdélník (v logických jednotkách). Pro tento parametr můžete předat ukazatel na RECT strukturu nebo CRect objekt.

clrTopLeft
Určuje barvu horní a levé strany trojrozměrného obdélníku.

clrBottomRight
Určuje barvu dolní a pravé strany trojrozměrného obdélníku.

x
Určuje logickou souřadnici x levého horního rohu trojrozměrného obdélníku.

y
Určuje logickou souřadnici y levého horního rohu trojrozměrného obdélníku.

cx
Určuje šířku trojrozměrného obdélníku.

cy
Určuje výšku trojrozměrného obdélníku.

Poznámky

Obdélník bude kreslen s horní a levou stranou v barvě určené clrTopLeft podle a dolní a pravé strany v barvě určené clrBottomRight.

Příklad

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

Voláním této členské funkce opakovaně překreslete obdélník přetažení.

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

Parametry

lpRect
Odkazuje na RECT strukturu nebo CRect objekt, který určuje logické souřadnice obdélníku – v tomto případě se jedná o koncovou pozici obdélníku, který se překresluje.

size
Určuje posun z levého horního rohu vnějšího okraje do levého horního rohu vnitřního ohraničení (tj. tloušťky ohraničení) obdélníku.

lpRectLast
Odkazuje na RECT strukturu nebo CRect objekt, který určuje logické souřadnice pozice obdélníku – v tomto případě původní pozice obdélníku, který se překresluje.

sizeLast
Určuje posun z levého horního rohu vnějšího okraje do levého horního rohu vnitřního ohraničení (tj. tloušťky ohraničení) původního obdélníku, který se překresluje.

pBrush
Ukazatel na objekt štětce Nastavte na NULL použití výchozího polotónového štětce.

pBrushLast
Ukazatel na poslední použitý objekt štětce Nastavte na NULL použití výchozího polotónového štětce.

Poznámky

Pojmenujte ji ve smyčce při ukázkové pozici myši, abyste mohli poskytnout vizuální zpětnou vazbu. Při volání DrawDragRectse předchozí obdélník vymaže a nakreslí se nový obdélník. Například když uživatel přetáhne obdélník přes obrazovku, DrawDragRect vymaže původní obdélník a překreslí nový obdélník v jeho nové pozici. Ve výchozím nastavení nakreslí obdélník pomocí polotónového štětce k DrawDragRect odstranění blikání a vytvoření vzhledu hladce pohyblivého obdélníku.

Při prvním volání DrawDragRectlpRectLast by parametr měl být NULL.

CDC::DrawEdge

Voláním této členské funkce nakreslete okraje obdélníku zadaného typu a stylu.

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

Parametry

lpRect
Ukazatel na RECT strukturu, která obsahuje logické souřadnice obdélníku.

nEdge
Určuje typ vnitřního a vnějšího okraje, který se má nakreslit. Tento parametr musí být kombinací jednoho příznaku vnitřního ohraničení a jednoho příznaku vnějšího ohraničení. Tabulku DrawEdge typů parametrů najdete v sadě Windows SDK.

nFlags
Příznaky, které určují typ ohraničení, který se má nakreslit. Tabulku DrawEdge hodnot parametru najdete v sadě Windows SDK. U diagonálních čar BF_RECT určují příznaky koncový bod vektoru ohraničeného parametrem obdélníku.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

CDC::DrawEscape

Přistupuje k možnostem kreslení zobrazení videa, které nejsou přímo dostupné prostřednictvím rozhraní grafického zařízení (GDI).

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

Parametry

nEscape
Určuje řídicí funkci, která se má provést.

nInputSize
Určuje počet bajtů dat odkazovaných parametrem lpszInputData .

lpszInputData
Odkazuje na vstupní strukturu požadovanou pro zadaný řídicí znak.

Návratová hodnota

Určuje výsledek funkce. Pokud je řídicí znak větší než nula, s výjimkou řídicího znaku QUERYESCSUPPORT kreslení, který kontroluje pouze implementaci, nebo nulu, pokud řídicí znak není implementován, nebo menší než nula, pokud došlo k chybě.

Poznámky

Při volání DrawEscapeaplikace data identifikovaná nInputSize a lpszInputData předávají se přímo zadanému ovladači zobrazení.

CDC::DrawFocusRect

Nakreslí obdélník ve stylu použitém k označení, že obdélník má fokus.

void DrawFocusRect(LPCRECT lpRect);

Parametry

lpRect
Odkazuje na RECT strukturu nebo CRect objekt, který určuje logické souřadnice obdélníku, které se mají nakreslit.

Poznámky

Vzhledem k tomu, že se jedná o logickou funkci XOR (^), volání této funkce podruhé se stejným obdélníkem odebere obdélník ze zobrazení. Obdélník nakreslený touto funkcí nelze posunout. Pokud chcete posunout oblast obsahující obdélník nakreslený touto funkcí, nejprve zavolejte DrawFocusRect , abyste obdélník odebrali ze zobrazení, posuňte oblast a potom znovu zavoláte DrawFocusRect , aby se obdélník nakreslel do nové pozice.

Upozornění

DrawFocusRect funguje pouze v MM_TEXT režimu. V jiných režimech tato funkce nekreslí obdélník fokusu správně, ale nevrací chybové hodnoty.

CDC::DrawFrameControl

Voláním této členské funkce nakreslete ovládací prvek rámce zadaného typu a stylu.

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

Parametry

lpRect
Ukazatel na RECT strukturu, která obsahuje logické souřadnice obdélníku.

nType
Určuje typ ovládacího prvku rámečku, který se má nakreslit. uType Seznam možných hodnot tohoto parametru najdete v DrawFrameControl sadě Windows SDK.

nState
Určuje počáteční stav ovládacího prvku rámce. Může to být jedna nebo více hodnot popsaných pro uState parametr v DrawFrameControl sadě Windows SDK. nState Pomocí hodnoty DFCS_ADJUSTRECT upravte ohraničující obdélník tak, aby se vyloučil okolní okraj tlačítka.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

V několika případech nState závisí na parametru nType . Následující seznam ukazuje vztah mezi čtyřmi nType hodnotami a nState:

  • DFC_BUTTON

    • DFCS_BUTTON3STATE Tlačítko se třemi stavy

    • DFCS_BUTTONCHECK Políčko

    • DFCS_BUTTONPUSH Tlačítko

    • DFCS_BUTTONRADIO Přepínač

    • DFCS_BUTTONRADIOIMAGE Obrázek pro přepínač (jiné nežquare potřebuje obrázek)

    • DFCS_BUTTONRADIOMASK Maska pro přepínač (nonsquare needs mask)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE Tlačítko Zavřít

    • DFCS_CAPTIONHELP Tlačítko Nápověda

    • DFCS_CAPTIONMAX Tlačítko Maximalizovat

    • DFCS_CAPTIONMIN Tlačítko Minimalizovat

    • DFCS_CAPTIONRESTORE Tlačítko Obnovit

  • DFC_MENU

    • DFCS_MENUARROW Šipka podnabídky

    • DFCS_MENUBULLET Kulka

    • DFCS_MENUCHECK Zaškrtnutí

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX Posuvník pole se seznamem

    • DFCS_SCROLLDOWN Šipka dolů posuvníku

    • DFCS_SCROLLLEFT Levá šipka posuvníku

    • DFCS_SCROLLRIGHT Šipka doprava na posuvníku

    • DFCS_SCROLLSIZEGRIP Velikost úchytu v pravém dolním rohu okna

    • DFCS_SCROLLUP Šipka nahoru posuvníku

Příklad

Tento kód nakreslí úchyt velikosti v pravém dolním rohu okna. Je vhodné pro OnPaint obslužnou rutinu dialogového okna, která nemá žádné styly a obvykle neobsahuje další ovládací prvky (například stavový řádek), které by jí mohly dát úchyt velikosti.

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

Nakreslí na zařízení ikonu reprezentovanou aktuálním CDC objektem.

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

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

Parametry

x
Určuje logickou souřadnici x levého horního rohu ikony.

y
Určuje logickou souřadnici y levého horního rohu ikony.

hIcon
Identifikuje úchyt ikony, která se má nakreslit.

point
Určuje logické souřadnice x a y levého horního rohu ikony. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Nenulové, pokud se funkce úspěšně dokončila; jinak 0.

Poznámky

Funkce umístí levý horní roh ikony do umístění určeného operátorem x a y. Umístění podléhá aktuálnímu režimu mapování kontextu zařízení.

Prostředek ikony musí být dříve načten pomocí funkcí CWinApp::LoadIcon, CWinApp::LoadStandardIconnebo CWinApp::LoadOEMIcon. Před MM_TEXT použitím této funkce je nutné vybrat režim mapování.

Příklad

Podívejte se na příklad pro CWnd::IsIconic.

CDC::DrawState

Voláním této členské funkce zobrazíte obrázek a použijete vizuální efekt k označení stavu, například zakázaného nebo výchozího stavu.

Poznámka:

Pro všechny nFlag stavy kromě DSS_NORMAL, obrázek je převeden na monochromatické před použitím vizuálního efektu.

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);

Parametry

pt
Určuje umístění obrázku.

size
Určuje velikost obrázku.

hBitmap
Úchyt rastrového obrázku.

nFlags
Příznaky, které určují typ a stav obrázku. Informace DrawState o možných typech a stavech nFlags najdete v sadě Windows SDK.

hBrush
Rukojeť na štětec.

pBitmap
Ukazatel na CBitmap objekt.

pBrush
Ukazatel na CBrush objekt.

hIcon
Úchyt ikony.

lpszText
Ukazatel na text.

bPrefixText
Text, který může obsahovat měmonicku akcelerátoru. Parametr lData určuje adresu řetězce a nTextLen parametr určuje délku. Pokud nTextLen je hodnota 0, předpokládá se, že řetězec má hodnotu null-terminate.

nTextLen
Délka textového řetězce, na který lpszTextodkazuje . Pokud nTextLen je hodnota 0, předpokládá se, že řetězec má hodnotu null-terminate.

lpDrawProc
Ukazatel na funkci zpětného volání, která se používá k vykreslení obrázku. Tento parametr se vyžaduje, pokud je DST_COMPLEXtyp image in nFlags . Je nepovinný a může být NULL , pokud je DST_TEXTtyp obrázku . U všech ostatních typů imagí se tento parametr ignoruje. Další informace o funkci zpětného volání naleznete DrawStateProc v této funkci v sadě Windows SDK.

lData
Určuje informace o obrázku. Význam tohoto parametru závisí na typu image.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

CDC::DrawText

Voláním této členské funkce naformátujte text v daném obdélníku. Chcete-li zadat více možností formátování, použijte CDC::DrawTextEx.

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

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

Parametry

lpszString
Odkazuje na řetězec, který se má nakreslit. Pokud nCount je hodnota -1, řetězec musí být ukončen s hodnotou null.

nCount
Určuje počet znaků v řetězci. Pokud nCount je hodnota -1, předpokládá se, lpszString že se jedná o dlouhý ukazatel na řetězec ukončený hodnotou null a DrawText vypočítá počet znaků automaticky.

lpRect
Odkazuje na RECT strukturu nebo CRect objekt obsahující obdélník (v logických souřadnicích), ve kterém má být text formátován.

str
Objekt CString obsahující zadané znaky, které se mají nakreslit.

nFormat
Určuje metodu formátování textu. Může se jednat o libovolnou kombinaci hodnot popsaných pro uFormat parametr v DrawText sadě Windows SDK. (zkombinujte pomocí bitového operátoru OR):

Poznámka:

Některé uFormat kombinace příznaků můžou způsobit úpravu předávaného řetězce. Použití DT_MODIFYSTRING s řetězcem DT_END_ELLIPSIS nebo DT_PATH_ELLIPSIS může způsobit úpravu řetězce, což způsobuje kontrolní výraz v přepsání CString . Hodnoty DT_CALCRECT, , DT_EXTERNALLEADINGDT_INTERNALDT_NOCLIP, a DT_NOPREFIX nelze použít s DT_TABSTOP hodnotou.

Návratová hodnota

Výška textu, pokud je funkce úspěšná.

Poznámky

Formátuje text tak, že zvětší tabulátory do příslušných mezer, zarovná text doleva, doprava nebo na střed daného obdélníku a rozdělí text na řádky, které se vejdou do daného obdélníku. Typ formátování je určen .nFormat

Tato členská funkce používá k vykreslení textu vybrané písmo, barvu textu a barvu pozadí kontextu zařízení. Pokud se DT_NOCLIP formát nepoužije, DrawText vystřiží text tak, aby se text nezojevil mimo daný obdélník. Veškeré formátování se předpokládá, že má více řádků, pokud DT_SINGLELINE není formát uveden.

Pokud je vybrané písmo pro zadaný obdélník příliš velké, DrawText členová funkce se nepokouší nahradit menší písmo.

DT_CALCRECT Pokud je příznak zadán, bude obdélník určený lpRect aktualizací, aby odrážel šířku a výšku potřebnou k vykreslení textu.

TA_UPDATECP Pokud je nastaven příznak zarovnání textu (vizCDC::SetTextAlign), DrawText zobrazí se text začínající na aktuální pozici, nikoli nalevo od daného obdélníku. DrawText nebude zalamovat text, pokud TA_UPDATECP je příznak nastavený (to znamená, DT_WORDBREAK že příznak nebude mít žádný vliv).

Barvu textu může nastavit CDC::SetTextColor.

CDC::DrawTextEx

Naformátuje text v daném obdélníku.

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

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

Parametry

lpszString
Odkazuje na řetězec, který se má nakreslit. Pokud nCount je -1, řetězec musí být ukončen null.

nCount
Určuje počet znaků v řetězci. Pokud nCount je hodnota -1, předpokládá se, lpszString že se jedná o dlouhý ukazatel na řetězec ukončený hodnotou null a DrawText vypočítá počet znaků automaticky.

lpRect
Odkazuje na RECT strukturu nebo CRect objekt obsahující obdélník (v logických souřadnicích), ve kterém má být text formátován.

str
Objekt CString obsahující zadané znaky, které se mají nakreslit.

nFormat
Určuje metodu formátování textu. Může se jednat o libovolnou kombinaci hodnot popsaných pro uFormat parametr v DrawText sadě Windows SDK. (Kombinování pomocí bitové OPERÁTOR OR ):

Poznámka:

Některé uFormat kombinace příznaků můžou způsobit úpravu předávaného řetězce. Použití DT_MODIFYSTRING s řetězcem DT_END_ELLIPSIS nebo DT_PATH_ELLIPSIS může způsobit úpravu řetězce, což způsobuje kontrolní výraz v přepsání CString . Hodnoty DT_CALCRECT, , DT_EXTERNALLEADINGDT_INTERNALDT_NOCLIP, a DT_NOPREFIX nelze použít s DT_TABSTOP hodnotou.

lpDTParams
Ukazatel na DRAWTEXTPARAMS strukturu, která určuje více možností formátování. Tento parametr může být NULL.

Poznámky

Formátuje text tak, že zvětší tabulátory do příslušných mezer, zarovná text doleva, doprava nebo na střed daného obdélníku a rozdělí text na řádky, které se vejdou do daného obdélníku. Typ formátování je určen a nFormat lpDTParams. Další informace najdete v sadě CDC::DrawText Windows SDK a DrawTextEx v této části.

Barvu textu může nastavit CDC::SetTextColor.

CDC::Ellipse

Nakreslí tři tečky.

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

BOOL Ellipse(LPCRECT lpRect);

Parametry

x1
Určuje logickou souřadnici x levého horního rohu ohraničujícího obdélníku se třemi tečky.

y1
Určuje logickou souřadnici y levého horního rohu ohraničujícího obdélníku se třemi tečky.

x2
Určuje logickou souřadnici x pravého dolního rohu ohraničujícího obdélníku se třemi tečky.

y2
Určuje logickou souřadnici y pravého dolního rohu ohraničujícího obdélníku se třemi tečky.

lpRect
Určuje ohraničující obdélník tří teček. Pro tento parametr můžete také předat CRect objekt.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Střed tří teček je středem ohraničujícího obdélníku určeného parametrem x1, , y1a x2, nebo y2lpRect. Tři tečky jsou nakresleny aktuálním perem a jeho interiér je naplněn aktuálním kartáčem.

Obrázek nakreslený touto funkcí se rozšiřuje až do, ale nezahrnuje pravé a dolní souřadnice. To znamená, že výška obrázku je y2 - y1 a šířka obrázku je .x2 - x1

Pokud je šířka nebo výška ohraničujícího obdélníku 0, nevykreslí se žádné tři tečky.

CDC::EndDoc

Ukončí tiskovou úlohu spuštěnou voláním StartDoc členské funkce.

int EndDoc();

Návratová hodnota

Větší než nebo rovno 0, pokud je funkce úspěšná, nebo záporná hodnota, pokud došlo k chybě.

Poznámky

Tato členová funkce nahrazuje řídicí klávesu ENDDOC tiskárny a měla by být volána okamžitě po dokončení úspěšné tiskové úlohy.

Pokud aplikace narazí na chybu tisku nebo zrušenou tiskovou operaci, nesmí se pokusit operaci ukončit pomocí ani EndDoc AbortDoc. GDI automaticky ukončí operaci před vrácením chybové hodnoty.

Tato funkce by neměla být použita uvnitř metasouborů.

Příklad

Podívejte se na příklad pro CDC::StartDoc.

CDC::EndPage

Informuje zařízení, že aplikace dokončila zápis na stránku.

int EndPage();

Návratová hodnota

Větší než nebo rovno 0, pokud je funkce úspěšná, nebo záporná hodnota, pokud došlo k chybě.

Poznámky

Tato členová funkce se obvykle používá k nasměrovávání ovladače zařízení na novou stránku.

Tato členová funkce nahrazuje řídicí znak tiskárny NEWFRAME . Na rozdíl od NEWFRAME, tato funkce je vždy volána po tisku stránky.

Příklad

Podívejte se na příklad pro CDC::StartDoc.

CDC::EndPath

Zavře závorku cesty a vybere cestu definovanou závorkou do kontextu zařízení.

BOOL EndPath();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Příklad

Podívejte se na příklad pro CDC::BeginPath.

CDC::EnumObjects

Vytvoří výčet per a štětců dostupných v kontextu zařízení.

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

Parametry

nObjectType
Určuje typ objektu. Může obsahovat hodnoty OBJ_BRUSH nebo OBJ_PEN.

lpfn
Je adresa instance procedury funkce zpětného volání zadané aplikací. Viz část Poznámky níže.

lpData
Odkazuje na data zadaná aplikací. Data se předají funkci zpětného volání spolu s informacemi o objektu.

Návratová hodnota

Určuje poslední hodnotu vrácenou funkcí zpětného volání. Jeho význam je definovaný uživatelem.

Poznámky

Pro každý objekt daného typu se volá funkce zpětného volání, kterou předáte, s informacemi pro daný objekt. Systém volá funkci zpětného volání, dokud nejsou k dispozici žádné další objekty nebo funkce zpětného volání vrátí hodnotu 0.

Nové funkce jazyka Microsoft Visual C++ umožňují použít běžnou funkci jako předanou EnumObjectsfunkci . Předaná EnumObjects adresa je ukazatel na funkci exportovanou s EXPORT konvencí volání Pascal. V aplikacích v režimu ochrany nemusíte tuto funkci vytvářet pomocí funkce Windows MakeProcInstance ani ji po použití s FreeProcInstance funkcí Windows uvolnit.

Také nemusíte exportovat název funkce v EXPORTS příkazu v souboru definice modulu vaší aplikace. Místo toho můžete použít EXPORT modifikátor funkce, jak je uvedeno v

int CALLBACK EXPORT AFunction (LPSTR, LPSTR);

aby kompilátor vygeneroval správný záznam exportu pro export podle názvu bez aliasů. To funguje pro většinu potřeb. V některých speciálních případech, jako je export funkce pomocí řadových nebo aliasů exportu, musíte stále použít EXPORTS příkaz v souboru definice modulu.

Pro kompilaci programů Microsoft Foundation obvykle použijete možnosti a /GEs možnosti kompilátoru/GA. Možnost /Gw kompilátoru se nepoužívá s třídami Microsoft Foundation. (Pokud používáte funkci Windows, budete muset ukazatel vrácené funkce MakeProcInstanceFARPROC explicitně přetypovat na typ potřebný v tomto rozhraní API.) Registrační rozhraní zpětného volání jsou nyní typově bezpečná (musíte předat ukazatel funkce, který odkazuje na správný druh funkce pro konkrétní zpětné volání).

Všechny funkce zpětného volání musí před návratem do systému Windows soutisknout výjimky služby Microsoft Foundation, protože výjimky nelze vyvolat přes hranice zpětného volání. Další informace o výjimkách najdete v článku Výjimky.

Příklad

// 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

Tato členská funkce je prakticky zastaralá pro programování win32.

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

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

Parametry

nEscape
Určuje řídicí funkci, která se má provést.

Úplný seznam řídicích funkcí najdete Escape v sadě Windows SDK.

nCount
Určuje počet bajtů dat, na které lpszInDataodkazuje .

lpszInData
Odkazuje na vstupní datovou strukturu potřebnou pro tento řídicí znak.

lpOutData
Odkazuje na strukturu, která má přijímat výstup z tohoto řídicího znaku. Parametr lpOutData je NULL v případě, že se nevrátí žádná data.

nInputSize
Určuje počet bajtů dat odkazovaných parametrem lpszInputData .

lpszInputData
Odkazuje na vstupní strukturu požadovanou pro zadaný řídicí znak.

nOutputSize
Určuje počet bajtů dat odkazovaných parametrem lpszOutputData .

lpszOutputData
Odkazuje na strukturu, která přijímá výstup z tohoto řídicího příkazu. Tento parametr by měl být NULL v případě, že se nevrátí žádná data.

Návratová hodnota

Kladná hodnota se vrátí, pokud je funkce úspěšná, s výjimkou řídicího znaku QUERYESCSUPPORT , který kontroluje pouze implementaci. Nula se vrátí, pokud řídicí znak není implementován. Pokud došlo k chybě, vrátí se záporná hodnota. Toto jsou běžné chybové hodnoty:

  • SP_ERROR Obecná chyba.

  • SP_OUTOFDISK Není k dispozici dostatek místa na disku pro zařazování a nebude k dispozici žádné další místo.

  • SP_OUTOFMEMORY Pro zařazování není k dispozici dostatek paměti.

  • SP_USERABORT Uživatel ukončil úlohu prostřednictvím Správce tisku.

Poznámky

U původní tiskárny je podporován pouze QUERYESCSUPPORT pro aplikace Win32. Všechny ostatní řídicí znaky tiskárny jsou zastaralé a podporují se pouze kvůli kompatibilitě s 16bitovými aplikacemi.

Pro programování CDC win32 nyní poskytuje šest členských funkcí, které nahrazují odpovídající řídicí panely tiskárny:

Kromě toho CDC::GetDeviceCaps podporuje indexy Win32, které nahrazují jiné řídicí znaky tiskárny. Další informace najdete GetDeviceCaps v sadě Windows SDK.

Tato členová funkce umožňuje aplikacím přístup k zařízením konkrétního zařízení, které nejsou přímo dostupné prostřednictvím GDI.

První verzi použijte, pokud vaše aplikace používá předdefinované řídicí hodnoty. Druhou verzi použijte, pokud vaše aplikace definuje privátní řídicí hodnoty. Další ExtEscape informace o druhé verzi najdete v sadě Windows SDK.

CDC::ExcludeClipRect

Vytvoří novou oblast výřezu, která se skládá z existující oblasti výřezu minus zadaný obdélník.

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

int ExcludeClipRect(LPCRECT lpRect);

Parametry

x1
Určuje logickou souřadnici x levého horního rohu obdélníku.

y1
Určuje logickou souřadnici y levého horního rohu obdélníku.

x2
Určuje logickou souřadnici x pravého dolního rohu obdélníku.

y2
Určuje logickou souřadnici y pravého dolního rohu obdélníku.

lpRect
Určuje obdélník. Může to být CRect také objekt.

Návratová hodnota

Určuje typ nové oblasti výřezu. Může to být libovolná z následujících hodnot:

  • COMPLEXREGION Oblast má překrývající se ohraničení.

  • ERROR Nebyla vytvořena žádná oblast.

  • NULLREGION Oblast je prázdná.

  • SIMPLEREGION Oblast nemá žádné překrývající se ohraničení.

Poznámky

Šířka obdélníku určená absolutní hodnotou x2 - x1nesmí překročit 32 767 jednotek. Tento limit platí i pro výšku obdélníku.

CDC::ExcludeUpdateRgn

Zabrání kreslení v neplatných oblastech okna vyloučením aktualizované oblasti v okně z oblasti výřezu přidružené k objektu CDC .

int ExcludeUpdateRgn(CWnd* pWnd);

Parametry

pWnd
Odkazuje na objekt okna, jehož okno se aktualizuje.

Návratová hodnota

Typ vyloučené oblasti. Může to být libovolná z následujících hodnot:

  • COMPLEXREGION Oblast má překrývající se ohraničení.

  • ERROR Nebyla vytvořena žádná oblast.

  • NULLREGION Oblast je prázdná.

  • SIMPLEREGION Oblast nemá žádné překrývající se ohraničení.

CDC::ExtFloodFill

Vyplní oblast plochy displeje aktuálním štětcem.

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

Parametry

x
Určuje logickou souřadnici x bodu, kde začíná plnění.

y
Určuje logickou souřadnici y bodu, kde začíná plnění.

crColor
Určuje barvu hranice nebo oblasti, která se má vyplnit. Interpretace crColor závisí na hodnotě nFillType.

nFillType
Určuje typ povodňové výplně, která se má provést. Musí to být jedna z následujících hodnot:

  • FLOODFILLBORDER Oblast výplně je ohraničena barvou určenou parametrem crColor. Tento styl je identický s plněním prováděným FloodFill.

  • FLOODFILLSURFACE Oblast výplně je definována barvou určenou parametrem crColor. Vyplňování pokračuje směrem ven ve všech směrech, pokud je zjištěna barva. Tento styl je užitečný pro vyplnění oblastí s vícebarevnými hranicemi.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0, pokud vyplnění nebylo možné dokončit, pokud má daný bod hranici určenou crColor (pokud FLOODFILLBORDER byl požadován), pokud daný bod nemá barvu určenou crColor (pokud FLOODFILLSURFACE byl požadován), nebo pokud bod není mimo oblast výřezu.

Poznámky

Tato členová funkce nabízí větší flexibilitu než FloodFill proto, že můžete zadat typ nFillTypevýplně .

Pokud nFillType je nastavena na FLOODFILLBORDER, předpokládá se, že oblast je zcela ohraničena barvou určenou crColor. Funkce začíná v bodě určeném x a y vyplní všechny směry na hranici barvy.

Pokud nFillType je nastavena na FLOODFILLSURFACE, funkce začíná v bodě určeném x a y pokračuje ve všech směrech, vyplňte všechny sousední oblasti obsahující barvu určenou crColor.

Pouze kontexty paměti a zařízení, která podporují podporu ExtFloodFillrastrové technologie zobrazení . Další informace najdete v GetDeviceCaps členské funkci.

CDC::ExtTextOut

Voláním této členské funkce napíšete řetězec znaků v obdélníkové oblasti pomocí aktuálně vybraného písma.

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);

Parametry

x
Určuje logickou souřadnici x buňky znaku pro první znak v zadaném řetězci.

y
Určuje logickou souřadnici y horní části buňky znaku pro první znak v zadaném řetězci.

nOptions
Určuje typ obdélníku. Tento parametr může být jeden, oba nebo ani jedna z následujících hodnot:

  • ETO_CLIPPED Určuje, že text je oříznutý na obdélník.

  • ETO_OPAQUE Určuje, že aktuální barva pozadí vyplní obdélník. (Aktuální barvu pozadí můžete nastavit a dotazovat pomocí SetBkColor členských GetBkColor funkcí.)

lpRect
Odkazuje na RECT strukturu, která určuje rozměry obdélníku. Tento parametr může být NULL. Pro tento parametr můžete také předat CRect objekt.

lpszString
Odkazuje na zadaný řetězec znaku, který se má nakreslit. Pro tento parametr můžete také předat CString objekt.

nCount
Určuje počet znaků v řetězci.

lpDxWidths
Odkazuje na pole hodnot, které označují vzdálenost mezi počátku sousedních buněk znaků. Například lpDxWidths[ i] logické jednotky oddělí původ znakové buňky a znakové buňky i i + 1. Pokud lpDxWidths ano NULL, ExtTextOut použije výchozí mezery mezi znaky.

str
Objekt CString obsahující zadané znaky, které se mají nakreslit.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Obdélníková oblast může být neprůhledná (vyplněná aktuální barvou pozadí) a může to být oblast výřezu.

Pokud nOptions je hodnota 0 a lpRect je NULL, funkce zapíše text do kontextu zařízení bez použití obdélníkové oblasti. Ve výchozím nastavení funkce nepoužívá ani neaktualizuje aktuální pozici. Pokud aplikace potřebuje aktualizovat aktuální pozici při volání ExtTextOut, může aplikace volat CDC členovou funkci SetTextAlign s nastavenou nFlags hodnotou TA_UPDATECP. Pokud je tento příznak nastaven, systém Windows ignoruje x a y při následných voláních ExtTextOut a používá místo toho aktuální pozici. Pokud aplikace používá TA_UPDATECP k aktualizaci aktuální pozice, ExtTextOut nastaví aktuální pozici buď na konec předchozího řádku textu, nebo na pozici určenou posledním prvkem pole, na který odkazuje lpDxWidths, podle toho, která hodnota je větší.

CDC::FillPath

Zavře všechny otevřené obrázky v aktuální cestě a vyplní jeho interiér pomocí aktuálního štětce a polygonového režimu.

BOOL FillPath();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Po vyplnění jeho interiéru se cesta zahodí z kontextu zařízení.

CDC::FillRect

Voláním této členské funkce vyplníte daný obdélník pomocí zadaného štětce.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parametry

lpRect
Odkazuje na RECT strukturu, která obsahuje logické souřadnice obdélníku, které mají být vyplněny. Pro tento parametr můžete také předat CRect objekt.

pBrush
Identifikuje štětec použitý k vyplnění obdélníku.

Poznámky

Funkce vyplní celý obdélník, včetně levého a horního ohraničení, ale nevyplní pravé a dolní ohraničení.

Štětec musí být vytvořen buď pomocí CBrush členských funkcí CreateHatchBrush, CreatePatternBrusha , CreateSolidBrushnebo načíst GetStockObject funkcí Systému Windows.

Při vyplňování zadaného obdélníku FillRect nezahrnuje pravé a dolní strany obdélníku. GDI vyplní obdélník nahoru, ale nezahrnuje pravý sloupec a dolní řádek bez ohledu na aktuální režim mapování. FillRectporovná hodnoty , top, bottomlefta right členy zadaného obdélníku. Je-li menší než nebo rovno top, nebo je-li bottom right menší než nebo rovno left, obdélník není nakreslen.

FillRect je podobný CDC::FillSolidRect; ale FillRect vezme štětec, a proto lze použít k vyplnění obdélníku plnou barvou, dithered barvu, šrafované štětce nebo vzor. FillSolidRect používá pouze plnou barvu (označenou parametrem COLORREF ). FillRect obvykle je pomalejší než FillSolidRect.

CDC::FillRgn

Vyplní oblast určenou štětcem pRgn určeným parametrem pBrush.

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

Parametry

pRgn
Ukazatel na oblast, která se má vyplnit. Souřadnice pro danou oblast jsou zadány v logických jednotkách.

pBrush
Identifikuje štětec, který se má použít k vyplnění oblasti.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Štětec musí být vytvořen pomocí CBrush členské funkce CreateHatchBrush, CreatePatternBrush, CreateSolidBrushnebo musí být načten .GetStockObject

Příklad

Podívejte se na příklad pro CRgn::CreateRoundRectRgn.

CDC::FillSolidRect

Voláním této členské funkce vyplníte daný obdélník zadanou plnou barvou.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

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

Parametry

lpRect
Určuje ohraničující obdélník (v logických jednotkách). Pro tento parametr můžete předat ukazatel na datovou RECT strukturu nebo CRect objekt.

clr Určuje barvu, která se má použít k vyplnění obdélníku.

x
Určuje logickou souřadnici x levého horního rohu obdélníku.

y
Určuje logickou souřadnici y levého horního rohu cílového obdélníku.

cx
Určuje šířku obdélníku.

cy
Určuje výšku obdélníku.

Poznámky

FillSolidRect je velmi podobný CDC::FillRect; ale FillSolidRect používá pouze plné barvy (označené parametrem COLORREF ), zatímco FillRect trvá štětec, a proto lze použít k vyplnění obdélníku plnou barvou, dithered barvu, šrafované štětce nebo vzor. FillSolidRect obvykle je rychlejší než FillRect.

Poznámka:

Při volání FillSolidRectje barva pozadí, která byla dříve nastavena pomocí SetBkColor, nastavena na barvu označenou clr.

CDC::FlattenPath

Transformuje všechny křivky v cestě vybrané na aktuální kontext zařízení a změní každou křivku na posloupnost čar.

BOOL FlattenPath();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

CDC::FloodFill

Vyplní oblast plochy displeje aktuálním štětcem.

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

Parametry

x
Určuje logickou souřadnici x bodu, kde začíná plnění.

y
Určuje logickou souřadnici y bodu, kde začíná plnění.

crColor
Určuje barvu hranice.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; v opačném případě se vrátí hodnota 0, pokud se vyplnění nepovedlo dokončit, má daný bod barvu hranice určenou hodnotou crColor, nebo je bod mimo oblast výřezu.

Poznámky

Předpokládá se, že oblast je ohraničena podle specifikace crColor. Funkce FloodFill začíná v bodě určeném x a y pokračuje ve všech směrech k barevné hranici.

Členské funkce podporují pouze kontexty a zařízení v paměti a zařízení, která podporují FloodFill technologii rastrového zobrazení. Informace o RC_BITBLT možnostech najdete v GetDeviceCaps členské funkci.

Funkce ExtFloodFill poskytuje podobné možnosti, ale větší flexibilitu.

CDC::FrameRect

Nakreslí ohraničení kolem obdélníku určeného parametrem lpRect.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parametry

lpRect
Odkazuje na RECT strukturu nebo CRect objekt, který obsahuje logické souřadnice levého horního a pravého dolního rohu obdélníku. Pro tento parametr můžete také předat CRect objekt.

pBrush
Identifikuje štětec, který se má použít k rámování obdélníku.

Poznámky

Funkce pomocí daného štětce nakreslete ohraničení. Šířka a výška ohraničení je vždy 1 logická jednotka.

Pokud je souřadnice obdélníku bottom menší nebo rovna topnebo je right menší nebo rovna left, obdélník se nevykreslí.

Ohraničení FrameRect nakreslené pomocí stejné pozice jako ohraničení nakreslené Rectangle členskou funkcí pomocí stejných souřadnic (pokud Rectangle používá pero, které je široké 1 logické jednotky). Vnitřní část obdélníku není vyplněna FrameRect.

CDC::FrameRgn

Nakreslí ohraničení kolem oblasti určené pRgn pomocí štětce určeného štětcem pBrush.

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

Parametry

pRgn
Odkazuje na CRgn objekt, který identifikuje oblast, která má být uzavřena v ohraničení. Souřadnice pro danou oblast jsou zadány v logických jednotkách.

pBrush
Odkazuje na CBrush objekt, který identifikuje štětec, který se má použít k vykreslení ohraničení.

nWidth
Určuje šířku ohraničení ve svislých tahech štětce v jednotkách zařízení.

nHeight
Určuje výšku ohraničení v vodorovných tahech štětce v jednotkách zařízení.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Příklad

Podívejte se na příklad pro CRgn::CombineRgn.

CDC::FromHandle

Vrátí ukazatel na CDC objekt při zadání popisovače kontextu zařízení.

static CDC* PASCAL FromHandle(HDC hDC);

Parametry

hDC
Obsahuje popisovač kontextu zařízení s Windows.

Návratová hodnota

Ukazatel může být dočasný a neměl by být uložen mimo okamžité použití.

Poznámky

CDC Pokud objekt není připojený k popisovači, vytvoří se dočasný CDC objekt a připojí se.

Příklad

Podívejte se na příklad pro CPrintDialog::GetPrinterDC.

CDC::GetArcDirection

Vrátí aktuální směr oblouku pro kontext zařízení.

int GetArcDirection() const;

Návratová hodnota

Určuje směr aktuálního oblouku, pokud je úspěšný. Platné návratové hodnoty jsou následující:

  • AD_COUNTERCLOCKWISE Oblouky a obdélníky nakreslené proti směru hodinových ručiček

  • AD_CLOCKWISE Arcs a obdélníky nakreslené po směru hodinových ručiček.

Pokud dojde k chybě, návratová hodnota je nula.

Poznámky

Obloukové a obdélníkové funkce používají směr oblouku.

CDC::GetAspectRatioFilter

Načte nastavení aktuálního filtru poměru stran.

CSize GetAspectRatioFilter() const;

Návratová hodnota

Objekt CSize představující poměr stran používaný aktuálním filtrem poměru stran.

Poznámky

Poměr stran je poměr vytvořený šířkou a výškou pixelů zařízení. Informace o poměru stran zařízení se používají při vytváření, výběru a zobrazení písem. Systém Windows poskytuje speciální filtr, filtr poměru stran a výběr písem určených pro určitý poměr stran ze všech dostupných písem. Filtr používá poměr stran určený členkou SetMapperFlags funkce.

CDC::GetBkColor

Vrátí aktuální barvu pozadí.

COLORREF GetBkColor() const;

Návratová hodnota

Hodnota barvy RGB.

Poznámky

Pokud je OPAQUErežim pozadí , systém použije barvu pozadí k vyplnění mezer ve stylovaných čarách, mezery mezi šrafovanými čarami v štětcích a pozadím v buňkách znaků. Systém také používá barvu pozadí při převodu rastrových obrázků mezi barevnými a monochromatými kontexty zařízení.

CDC::GetBkMode

Vrátí režim pozadí.

int GetBkMode() const;

Návratová hodnota

Aktuální režim pozadí, který může být OPAQUE nebo TRANSPARENT.

Poznámky

Režim pozadí definuje, jestli systém před kreslením textu, šrafovanými štětci nebo jakýmkoli stylem pera, který není plnou čárou, odebere existující barvy pozadí na kreslicí ploše.

CDC::GetBoundsRect

Vrátí aktuální kumulovaný ohraničující obdélník pro zadaný kontext zařízení.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

Parametry

lpRectBounds
Odkazuje na vyrovnávací paměť, která obdrží aktuální ohraničující obdélník. Obdélník se vrátí v logických souřadnicích.

flags
Určuje, jestli má být ohraničující obdélník po vrácení vymazán. Tento parametr by měl být nulový nebo nastavený na následující hodnotu:

  • DCB_RESET Vynutí, aby se ohraničující obdélník po vrácení vymazal.

Návratová hodnota

Určuje aktuální stav ohraničujícího obdélníku, pokud je funkce úspěšná. Může se jednat o kombinaci následujících hodnot:

  • DCB_ACCUMULATE K ohraničující akumulace obdélníků dochází.

  • DCB_RESET Ohraničující obdélník je prázdný.

  • DCB_SET Ohraničující obdélník není prázdný.

  • DCB_ENABLE Ohraničení akumulace je zapnutá.

  • DCB_DISABLE Ohraničující akumulace je vypnutá.

CDC::GetBrushOrg

Načte původ štětce (v jednotkách zařízení) aktuálně vybraný pro kontext zařízení.

CPoint GetBrushOrg() const;

Návratová hodnota

Aktuální původ štětce (v jednotkách zařízení) jako CPoint objekt.

Poznámky

Počáteční původ štětce je v klientské oblasti (0,0). Vrácená hodnota určuje tento bod v jednotkách zařízení vzhledem k počátku okna plochy.

CDC::GetCharacterPlacement

Načte různé typy informací o řetězci znaků.

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;

Parametry

lpString
Ukazatel na řetězec znaků, který se má zpracovat.

nCount
Určuje délku řetězce. U verze ANSI se jedná o BYTE počet a pro funkci Unicode se jedná o WORD počet. Další informace najdete na webu GetCharacterPlacement.

nMaxExtent
Určuje maximální rozsah (v logických jednotkách), do kterého se řetězec zpracuje. Znaky, které by při zpracování překročily tento rozsah, se ignorují. Výpočty pro všechna požadovaná pole řazení nebo glyfů platí jenom pro zahrnuté znaky. Tento parametr se používá pouze v případě, GCP_MAXEXTENT že je v parametru dwFlags zadána hodnota. Vzhledem k tomu, že funkce zpracovává vstupní řetězec, každý znak a jeho rozsah se přidá do výstupu, rozsahu a dalších polí pouze v případě, že celkový rozsah ještě nepřekročil maximum. Po dosažení limitu se zpracování zastaví.

lpResults
Ukazatel na GCP_Results strukturu, která přijímá výsledky funkce.

dwFlags
Určuje, jak zpracovat řetězec do požadovaných polí. Tento parametr může být jedna nebo více hodnot uvedených v dwFlags části GetCharacterPlacement tématu.

str
Ukazatel na objekt, CString který se má zpracovat.

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota je šířka a výška řetězce v logických jednotkách.

Pokud funkce selže, návratová hodnota je nula.

Poznámky

Tato členová funkce emuluje funkce funkce GetCharacterPlacement, jak je popsáno v sadě Windows SDK.

CDC::GetCharABCWidths

Načte šířky po sobě jdoucích znaků v zadaném rozsahu z aktuálního písma TrueType.

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

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

Parametry

nFirstChar
Určuje první znak v rozsahu znaků od aktuálního písma, pro které se vrátí šířky znaků.

nLastChar
Určuje poslední znak v rozsahu znaků od aktuálního písma, pro které se vrátí šířky znaků.

lpabc
Odkazuje na pole ABC struktur, které obdrží šířky znaků, když funkce vrátí. Toto pole musí obsahovat alespoň tolik struktur, kolik ABC znaků je v rozsahu určeném nFirstChar parametry.nLastChar

lpABCF
Odkazuje na vyrovnávací paměť zadanou aplikací s polem ABCFLOAT struktur, aby při vrácení funkce získala šířky znaků. Šířky vrácené touto funkcí jsou ve formátu IEEE s plovoucí desetinou čárkou.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Šířky se vrátí v logických jednotkách. Tato funkce je úspěšná pouze s písmy TrueType.

Rasterizátor TrueType poskytuje mezery mezi znaky "ABC" po výběru konkrétní velikosti bodu. Mezera "A" je vzdálenost, která je přidána k aktuální pozici před umístěním glyf. Mezera "B" je šířka černé části glyfu. Mezery "C" se přidají do aktuální pozice, aby se zohlednily prázdné znaky napravo od glyfu. Celková rozšířená šířka je uvedena pomocí A + B + C.

Když členová GetCharABCWidths funkce načte záporné šířky "A" nebo "C" znaku, bude tento znak obsahovat převisy nebo převisy.

Pokud chcete převést šířky ABC na jednotky návrhu písma, aplikace by měla vytvořit písmo, jehož výška (jak je uvedeno v lfHeight členu LOGFONT struktury) se rovná hodnotě uložené ve členu ntmSizeEM NEWTEXTMETRIC struktury. (Hodnotu člena ntmSizeEM lze načíst voláním EnumFontFamilies funkce Windows.)

Šířky ABC výchozího znaku se používají pro znaky, které jsou mimo rozsah aktuálně vybraného písma.

Pokud chcete načíst šířky znaků v písmech jiných než TrueType, měly by aplikace používat GetCharWidth funkci Windows.

CDC::GetCharABCWidthsI

Načte šířky v logických jednotkách po sobě jdoucích indexů glyfů v zadaném rozsahu z aktuálního písma TrueType.

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

Parametry

giFirst
Určuje první index glyfů ve skupině po sobě jdoucích indexů glyfů z aktuálního písma. Tento parametr se používá pouze v případě, že pgi je NULLparametr .

cgi
Určuje počet indexů glyfů.

pgi
Ukazatel na pole obsahující indexy glyfů. Pokud je NULLhodnota , giFirst použije se místo toho parametr. Parametr cgi určuje počet indexů glyfů v tomto poli.

lpabc
Ukazatel na pole ABC struktur, které přijímají šířky znaků. Toto pole musí obsahovat alespoň tolik ABC struktur, kolik obsahuje indexy glyf určené parametrem cgi .

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato členová funkce emuluje funkce funkce GetCharABCWidthsI, jak je popsáno v sadě Windows SDK.

CDC::GetCharWidth

Načte šířky jednotlivých znaků v po sobě jdoucí skupině znaků z aktuálního písma pomocí m_hAttribDCkontextu vstupního zařízení.

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

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

Parametry

nFirstChar
Určuje první znak v po sobě jdoucí skupině znaků v aktuálním písmu.

nLastChar
Určuje poslední znak v po sobě jdoucí skupině znaků v aktuálním písmu.

lpBuffer
Odkazuje na vyrovnávací paměť, která bude přijímat hodnoty šířky pro po sobě jdoucí skupinu znaků v aktuálním písmu.

lpFloatBuffer
Odkazuje na vyrovnávací paměť pro příjem šířky znaků. Vrácené šířky jsou ve 32bitovém formátu IEEE s plovoucí desetinou čárkou. (Šířky se měří podél základního řádku znaků.)

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Pokud nFirstChar například identifikuje písmeno "a" a nLastChar identifikuje písmeno "z", funkce načte šířky všech malých písmen.

Funkce ukládá hodnoty do vyrovnávací paměti, na kterou lpBufferodkazuje . Tato vyrovnávací paměť musí být dostatečně velká, aby držela všechny šířky. To znamená, že v uvedeném příkladu musí existovat alespoň 26 položek.

Pokud znak v po sobě jdoucí skupině znaků v určitém písmu neexistuje, přiřadí se mu hodnota šířky výchozího znaku.

CDC::GetCharWidthI

Načte šířky v logických souřadnicích po sobě jdoucích indexů glyfů v zadaném rozsahu od aktuálního písma.

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

Parametry

giFirst
Určuje první index glyfů ve skupině po sobě jdoucích indexů glyfů z aktuálního písma. Tento parametr se používá pouze v případě, že pgi je NULLparametr .

cgi
Určuje počet indexů glyfů.

pgi
Ukazatel na pole obsahující indexy glyfů. Pokud je NULLhodnota , giFirst použije se místo toho parametr. Parametr cgi určuje počet indexů glyfů v tomto poli.

lpBuffer
Ukazatel na vyrovnávací paměť, která přijímá šířky.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato členová funkce emuluje funkce funkce GetCharWidthI, jak je popsáno v sadě Windows SDK.

CDC::GetClipBox

Načte rozměry nejtěsnějšího ohraničujícího obdélníku kolem aktuální hranice oříznutí.

virtual int GetClipBox(LPRECT lpRect) const;

Parametry

lpRect
Odkazuje na RECT strukturu nebo CRect objekt, který má přijímat rozměry obdélníku.

Návratová hodnota

Typ oblasti výřezu. Může to být libovolná z následujících hodnot:

  • COMPLEXREGION Oblast výřezu má překrývající se ohraničení.

  • ERROR Kontext zařízení není platný.

  • NULLREGION Oblast výřezu je prázdná.

  • SIMPLEREGION Oblast výřezu neobsahuje překrývající se ohraničení.

Poznámky

Rozměry se zkopírují do vyrovnávací paměti, na kterou lpRectodkazuje .

CDC::GetColorAdjustment

Načte hodnoty úprav barev pro kontext zařízení.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

Parametry

lpColorAdjust
Odkazuje na datovou COLORADJUSTMENT strukturu, aby získal hodnoty úprav barev.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

CDC::GetCurrentBitmap

Vrátí ukazatel na aktuálně vybraný CBitmap objekt.

CBitmap* GetCurrentBitmap() const;

Návratová hodnota

Ukazatel na CBitmap objekt, pokud je úspěšný; jinak NULL.

Poznámky

Tato členová funkce může vracet dočasné objekty.

CDC::GetCurrentBrush

Vrátí ukazatel na aktuálně vybraný CBrush objekt.

CBrush* GetCurrentBrush() const;

Návratová hodnota

Ukazatel na CBrush objekt, pokud je úspěšný; jinak NULL.

Poznámky

Tato členová funkce může vracet dočasné objekty.

CDC::GetCurrentFont

Vrátí ukazatel na aktuálně vybraný CFont objekt.

CFont* GetCurrentFont() const;

Návratová hodnota

Ukazatel na CFont objekt, pokud je úspěšný; jinak NULL.

Poznámky

Tato členová funkce může vracet dočasné objekty.

CDC::GetCurrentPalette

Vrátí ukazatel na aktuálně vybraný CPalette objekt.

CPalette* GetCurrentPalette() const;

Návratová hodnota

Ukazatel na CPalette objekt, pokud je úspěšný; jinak NULL.

Poznámky

Tato členová funkce může vracet dočasné objekty.

CDC::GetCurrentPen

Vrátí ukazatel na aktuálně vybraný CPen objekt.

CPen* GetCurrentPen() const;

Návratová hodnota

Ukazatel na CPen objekt, pokud je úspěšný; jinak NULL.

Poznámky

Tato členová funkce může vracet dočasné objekty.

CDC::GetCurrentPosition

Načte aktuální pozici (v logických souřadnicích).

CPoint GetCurrentPosition() const;

Návratová hodnota

Aktuální pozice jako CPoint objekt.

Poznámky

Aktuální pozici lze nastavit pomocí MoveTo členské funkce.

CDC::GetDCBrushColor

Načte aktuální barvu štětce.

COLORREF GetDCBrushColor() const;

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota je COLORREF hodnota aktuální barvy štětce.

Pokud funkce selže, návratová hodnota je CLR_INVALID.

Poznámky

Tato členová funkce emuluje funkce funkce GetDCBrushColor, jak je popsáno v sadě Windows SDK.

CDC::GetDCPenColor

Načte aktuální barvu pera.

COLORREF GetDCPenColor() const;

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota je COLORREF hodnota aktuální barvy pera.

Pokud funkce selže, návratová hodnota je CLR_INVALID.

Poznámky

Tato členová funkce využívá funkci GetDCPenColorWin32, jak je popsáno v sadě Windows SDK.

CDC::GetDeviceCaps

Načte širokou škálu informací o zařízení specifickém pro dané zařízení.

int GetDeviceCaps(int nIndex) const;

Parametry

nIndex
Určuje typ informací, které se mají vrátit. Seznam hodnot najdete GetDeviceCaps v sadě Windows SDK.

Návratová hodnota

Hodnota požadované schopnosti, pokud je funkce úspěšná.

Příklad

Podívejte se na příklad pro CPrintDialog::GetDefaults.

CDC::GetFontData

Načte informace o metrikách písma ze škálovatelného souboru písma.

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

Parametry

dwTable
Určuje název tabulky metrik, která se má vrátit. Tento parametr může být jednou z tabulek metrik zdokumentovaných ve specifikaci TrueType Font Files publikované společností Microsoft Corporation. Pokud je tento parametr 0, informace se načtou od začátku souboru písma.

dwOffset
Určuje posun od začátku tabulky, na které se mají začít načítat informace. Pokud je tento parametr 0, informace se načtou od začátku tabulky určené parametrem dwTable . Pokud je tato hodnota větší nebo rovna velikosti tabulky, GetFontData vrátí hodnotu 0.

lpData
Odkazuje na vyrovnávací paměť, která obdrží informace o písmu. Pokud je NULLtato hodnota, vrátí funkce velikost vyrovnávací paměti vyžadovanou pro data písma zadaná v parametru dwTable .

cbData
Určuje délku informací, které se mají načíst, v bajtech. Pokud je tento parametr 0, GetFontData vrátí velikost dat zadaných v parametru dwTable .

Návratová hodnota

Určuje počet bajtů vrácených v vyrovnávací paměti, na kterou lpData odkazuje, pokud je funkce úspěšná, jinak -1.

Poznámky

Informace k načtení jsou identifikovány zadáním posunu do souboru písma a délky informací, které se mají vrátit.

Aplikace může někdy pomocí GetFontData členské funkce uložit písmo TrueType s dokumentem. Za tímto účelem aplikace určí, zda lze písmo vložit a pak načte celý soubor písma, který určuje hodnotu 0 pro dwTabledwOffset, a cbData parametry.

Aplikace můžou určit, jestli je možné vložit písmo, a to tak, že zkontrolují otmfsType člen OUTLINETEXTMETRIC struktury. Pokud je nastavená bit 1, otmfsType vkládání není pro písmo povolené. Pokud je bit 1 jasný, je možné písmo vložit. Pokud je nastavená bit 2, vkládání je jen pro čtení.

Pokud se aplikace pokusí použít tuto funkci k načtení informací pro písmo jiného typu než TrueType, vrátí členová GetFontData funkce hodnotu -1.

CDC::GetFontLanguageInfo

Vrátí informace o aktuálně vybraném písmu pro zadaný kontext zobrazení.

DWORD GetFontLanguageInfo() const;

Návratová hodnota

Vrácená hodnota identifikuje charakteristiky aktuálně vybraného písma. Úplný seznam možných hodnot naleznete v tématu GetFontLanguageInfo.

Poznámky

Tato členová funkce emuluje funkce funkce GetFontLanguageInfo, jak je popsáno v sadě Windows SDK.

CDC::GetGlyphOutline

Načte křivku obrysu nebo rastrový obrázek pro znak osnovy v aktuálním písmu.

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

Parametry

nChar
Určuje znak, pro který se mají vrátit informace.

nFormat
Určuje formát, ve kterém má funkce vracet informace. Může to být jedna z následujících hodnot nebo 0:

Hodnota Význam
GGO_BITMAP Vrátí rastrový obrázek glyf. Když se funkce vrátí, vyrovnávací paměť, na kterou lpBuffer odkazuje, obsahuje rastrový obrázek o rozměrech 1 bitů na pixel, jehož řádky začínají na hranicích s dvojitým heslem.
GGO_NATIVE Vrátí datové body křivky v nativním formátu rasterizátoru pomocí jednotek zařízení. Pokud je tato hodnota zadaná, všechny transformace zadané v lpmat2 této hodnotě budou ignorovány.

Pokud je hodnota nFormat 0, funkce vyplní GLYPHMETRICS strukturu, ale nevrací data přehledu glyfů.

lpgm
Odkazuje na GLYPHMETRICS strukturu, která popisuje umístění glyf v buňce znaku.

cbBuffer
Určuje velikost vyrovnávací paměti, do které funkce kopíruje informace o znaku osnovy. Pokud je tato hodnota 0 a nFormat parametr je buď hodnota GGO_BITMAP , nebo GGO_NATIVE hodnoty, vrátí funkce požadovanou velikost vyrovnávací paměti.

lpBuffer
Odkazuje na vyrovnávací paměť, do které funkce kopíruje informace o znaku osnovy. Pokud nFormat určuje GGO_NATIVE hodnotu, informace se zkopírují ve formě TTPOLYGONHEADER a TTPOLYCURVE struktur. Pokud je tato hodnota a nFormat jedná se NULL o GGO_BITMAP hodnotu nebo GGO_NATIVE hodnotu, vrátí funkce požadovanou velikost vyrovnávací paměti.

lpmat2
Odkazuje na MAT2 strukturu, která obsahuje transformační matici znaku. Tento parametr nemůže být NULL, ani když GGO_NATIVE je zadána hodnota pro nFormat.

Návratová hodnota

Velikost vyrovnávací paměti požadované pro načtené informace v bajtech, pokud cbBuffer je 0 nebo lpBuffer je NULL. Jinak je to kladná hodnota, pokud je funkce úspěšná, nebo -1, pokud dojde k chybě.

Poznámky

Aplikace může otáčet znaky načtené v rastrovém formátu zadáním transformační matice 2 po 2 ve struktuře, na kterou lpmat2odkazuje .

Obrys glyfů se vrátí jako řada obrysů. Každý obrys je definován strukturou TTPOLYGONHEADER následovanou tolika TTPOLYCURVE strukturami, kolik je třeba popsat. Všechny body se vrátí jako POINTFX struktury a představují absolutní pozice, nikoli relativní pohyby. Výchozí bod zadaný pfxStart členem TTPOLYGONHEADER struktury je bod, na kterém začíná obrys obrysu. Následující TTPOLYCURVE struktury můžou být buď záznamy čar, nebo spline záznamy. Polyline records are a series of points; čáry nakreslené mezi body popisují obrys znaku. Spline records represent the quadratic curves used by TrueType (to is, quadratic b-splines).

CDC::GetGraphicsMode

Načte aktuální grafický režim pro zadaný kontext zařízení.

int GetGraphicsMode() const;

Návratová hodnota

Vrátí aktuální grafický režim při úspěchu. Seznam hodnot, které tato metoda může vrátit, naleznete v tématu GetGraphicsMode.

Vrátí hodnotu 0 při selhání.

Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

Poznámky

Tato metoda zabalí funkci GetGraphicsModeGDI systému Windows .

CDC::GetHalftoneBrush

Voláním této členské funkce načtěte půltónový štětec.

static CBrush* PASCAL GetHalftoneBrush();

Návratová hodnota

Ukazatel na CBrush objekt, pokud je úspěšný; jinak NULL.

Poznámky

Polotónový štětec zobrazuje pixely, které jsou alternativně popředí a barvy pozadí pro vytvoření diterovaného vzorku. Následující diagram znázorňuje příklad diterovaného vzoru vytvořeného polotónovým štětcem:

Diagram, který znázorňuje, jak se skládají pohybové tahy pera

Diagram znázorňuje, jak se barva pozadí černého pozadí a barva popředí žluté barvy zkombinují do vzoru tak, že se střídají černé a žluté pixely, aby se vytvořily oddáděné pero tahy.

CDC::GetKerningPairs

Načte dvojice prokládání znaků pro písmo, které je aktuálně vybrané v zadaném kontextu zařízení.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

Parametry

nPairs
Určuje počet KERNINGPAIR struktur, na které lpkrnpairodkazuje . Funkce nebude kopírovat více párů prokládání, než je určeno nPairs.

lpkrnpair
Odkazuje na pole KERNINGPAIR struktur, které při vrácení funkce obdrží prokládání párů. Toto pole musí obsahovat alespoň tolik struktur, kolik určuje nPairs. Pokud je NULLtento parametr, vrátí funkce celkový počet párů prokládání písma.

Návratová hodnota

Určuje počet párů prokládání načtených nebo celkový počet párů prokládání v písmu, pokud je funkce úspěšná. Nula se vrátí, pokud funkce selže nebo pro písmo neexistují žádné dvojice prokládání.

CDC::GetLayout

Voláním této členské funkce určíte rozložení textu a grafiky pro kontext zařízení, například tiskárnu nebo metasoubor.

DWORD GetLayout() const;

Návratová hodnota

Pokud je to úspěšné, označí se rozložení pro aktuální kontext zařízení. V opačném případě hodnota GDI_ERROR. Pro rozšířené informace o chybě volejte GetLastError. Seznam příznaků rozložení najdete v tématu CDC::SetLayout.

Poznámky

Výchozí rozložení je zleva doprava.

CDC::GetMapMode

Načte aktuální režim mapování.

int GetMapMode() const;

Návratová hodnota

Režim mapování.

Poznámky

Popis režimů mapování najdete v SetMapMode členské funkci.

Poznámka:

Pokud voláte SetLayout změnu rozložení řadiče domény zprava doleva, SetLayout automaticky změní režim mapování na MM_ISOTROPIC. V důsledku toho se vrátí jakékoli následné volání GetMapMode MM_ISOTROPIC.

CDC::GetMiterLimit

Vrátí limit miter pro kontext zařízení.

float GetMiterLimit() const;

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Limit miteru se používá při kreslení geometrických čar, které mají spojení miteru.

CDC::GetNearestColor

Vrátí plnou barvu, která nejlépe odpovídá zadané logické barvě.

COLORREF GetNearestColor(COLORREF crColor) const;

Parametry

crColor
Určuje barvu, která se má shodovat.

Návratová hodnota

Hodnota barvy RGB (červená, zelená, modrá), která definuje plnou barvu nejblíže hodnotě crColor , kterou může zařízení reprezentovat.

Poznámky

Dané zařízení musí být schopné tuto barvu znázorňovat.

CDC::GetOutlineTextMetrics

Načte informace o metrice pro písma TrueType.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

Parametry

lpotm
Odkazuje na pole OUTLINETEXTMETRIC struktur. Pokud je NULLtento parametr , vrátí funkce velikost vyrovnávací paměti vyžadované pro načtená data metriky.

cbData
Určuje velikost vyrovnávací paměti v bajtech, do které se vrátí informace.

lpotm
Odkazuje na OUTLINETEXTMETRIC strukturu. Pokud je NULLtento parametr , vrátí funkce velikost vyrovnávací paměti vyžadované pro načtené informace metriky.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Struktura OUTLINETEXTMETRIC obsahuje většinu informací o metrikách písma, které jsou k dispozici ve formátu TrueType, včetně TEXTMETRIC struktury. Poslední čtyři členy OUTLINETEXTMETRIC struktury jsou ukazatele na řetězce. Aplikace by měly pro tyto řetězce přidělit místo kromě místa potřebného pro ostatní členy. Vzhledem k tomu, že neexistuje žádný systémový limit velikosti řetězců, nejjednodušší metodou přidělování paměti je načtení požadované velikosti zadáním hodnoty NULL pro lpotm první volání GetOutlineTextMetrics funkce.

CDC::GetOutputCharWidth

Používá kontext m_hDCvýstupního zařízení a načte šířky jednotlivých znaků v po sobě jdoucí skupině znaků z aktuálního písma.

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

Parametry

nFirstChar
Určuje první znak v po sobě jdoucí skupině znaků v aktuálním písmu.

nLastChar
Určuje poslední znak v po sobě jdoucí skupině znaků v aktuálním písmu.

lpBuffer
Odkazuje na vyrovnávací paměť, která bude přijímat hodnoty šířky pro po sobě jdoucí skupinu znaků v aktuálním písmu.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Pokud nFirstChar například identifikuje písmeno "a" a nLastChar identifikuje písmeno "z", funkce načte šířky všech malých písmen.

Funkce ukládá hodnoty do vyrovnávací paměti, na kterou lpBufferodkazuje . Tato vyrovnávací paměť musí být dostatečně velká, aby držela všechny šířky; to znamená, že v uvedeném příkladu musí být alespoň 26 položek.

Pokud znak v po sobě jdoucí skupině znaků v určitém písmu neexistuje, přiřadí se mu hodnota šířky výchozího znaku.

CDC::GetOutputTabbedTextExtent

Voláním této členské funkce vypočítáte šířku a výšku řetězce znaků pomocí m_hDCkontextu výstupního zařízení.

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

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

Parametry

lpszString
Odkazuje na řetězec znaků, který se má změřit. Pro tento parametr můžete také předat CString objekt.

nCount
Určuje délku řetězce , na který lpszStringodkazuje .

nTabPositions
Určuje počet pozic zarážky tabulátoru v poli, na který lpnTabStopPositionsodkazuje .

lpnTabStopPositions
Odkazuje na pole celých čísel obsahujících pozice zarážky tabulátoru v logických jednotkách. Zarážky tabulátoru musí být seřazeny vzestupně; nejmenší hodnota x by měla být první položkou v matici. Zadní karty nejsou povolené.

str
Objekt CString obsahující zadané znaky, které se mají měřit.

Návratová hodnota

Dimenze řetězce (v logických jednotkách) v objektu CSize .

Poznámky

Pokud řetězec obsahuje jeden nebo více znaků tabulátoru, je šířka řetězce založena na zarážek tabulátoru určených znakem lpnTabStopPositions. Funkce používá aktuálně vybrané písmo k výpočtu dimenzí řetězce.

Aktuální oblast výřezu nepřesazuje šířku a výšku vrácenou GetOutputTabbedTextExtent funkcí.

Vzhledem k tomu, že některá zařízení neumisťují znaky do běžných polí buněk (tj. prokládání znaků), nemusí se součet rozsahů znaků v řetězci rovnat rozsahu řetězce.

Pokud nTabPositions je 0 a lpnTabStopPositions je NULL, tabulátory jsou rozšířeny na osm průměrných znaků šířky. Pokud nTabPositions je 1, zarážky tabulátoru budou odděleny vzdáleností určenou první hodnotou v matici, na kterou lpnTabStopPositions odkazuje. Pokud lpnTabStopPositions odkazuje na více než jednu hodnotu, nastaví se zarážka tabulátoru pro každou hodnotu v matici až k číslu určenému znakem nTabPositions.

CDC::GetOutputTextExtent

Voláním této členské funkce použijete kontext m_hDCvýstupního zařízení a vypočítá šířku a výšku řádku textu pomocí aktuálního písma.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

Parametry

lpszString
Odkazuje na řetězec znaků. Pro tento parametr můžete také předat CString objekt.

nCount
Určuje délku řetězce , na který lpszStringodkazuje .

str
Objekt CString obsahující zadané znaky, které se mají měřit.

Návratová hodnota

Dimenze řetězce (v logických jednotkách) vrácené v objektu CSize .

Poznámky

Aktuální oblast výřezu nemá vliv na šířku a výšku vrácenou GetOutputTextExtenthodnotou .

Vzhledem k tomu, že některá zařízení neumisťují znaky do běžných polí buněk (tj. provádí prokládání), nemusí se součet rozsahů znaků v řetězci rovnat rozsahu řetězce.

CDC::GetOutputTextMetrics

Načte metriky pro aktuální písmo pomocí m_hDCkontextu výstupního zařízení.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parametry

lpMetrics
Odkazuje na TEXTMETRIC strukturu, která přijímá metriky.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

CDC::GetPath

Načte souřadnice definující koncové body čar a kontrolní body křivek nalezených v cestě vybrané v kontextu zařízení.

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

Parametry

lpPoints
Odkazuje na pole datových POINT struktur nebo CPoint objektů, kde jsou umístěny koncové body čáry a řídicí body křivky.

lpTypes
Odkazuje na pole bajtů, kde jsou umístěny typy vrcholů. Hodnoty jsou jedna z následujících hodnot:

  • PT_MOVETO Určuje, že odpovídající bod začíná lpPoints nesouvislým obrázkem.

  • PT_LINETO Určuje, že předchozí bod a odpovídající bod jsou lpPoints koncové body řádku.

  • PT_BEZIERTO Určuje, že odpovídající bod je lpPoints řídicí bod nebo koncový bod pro křivku Bzier.

PT_BEZIERTO typy se vždy vyskytují v sadách tří. Bod v cestě bezprostředně před nimi definuje výchozí bod pro křivku Bzier. První dva PT_BEZIERTO body jsou kontrolní body a třetí PT_BEZIERTO bod je koncový bod (pokud je pevně zakódován).

PT_BEZIERTO Nebo PT_LINETO typ lze kombinovat s následujícím příznakem (pomocí bitového operátoru OR) k označení, že odpovídající bod je posledním bodem na obrázku a že by měl být obrázek uzavřen:

  • PT_CLOSEFIGURE Určuje, že se obrázek automaticky zavře po vykreslení odpovídající čáry nebo křivky. Obrázek je uzavřen vykreslením čáry ze koncového bodu čáry nebo křivky k bodu odpovídajícímu poslednímu PT_MOVETO.

nCount
Určuje celkový počet datových POINT struktur, které mohou být umístěny v lpPoints poli. Tato hodnota musí být stejná jako počet bajtů, které mohou být umístěny v matici lpTypes .

Návratová hodnota

nCount Pokud je parametr nenulový, je počet bodů výčtu. Pokud nCount je 0, celkový počet bodů v cestě (a GetPath nezapisuje nic do vyrovnávací paměti). Pokud nCount je nenulová a je menší než počet bodů v cestě, je návratová hodnota -1.

Poznámky

Kontext zařízení musí obsahovat uzavřenou cestu. Body cesty se vrátí v logických souřadnicích. Body jsou uložené v cestě v souřadnicích zařízení, takže GetPath změní body ze souřadnic zařízení na logické souřadnice pomocí inverzní funkce aktuální transformace. Členské FlattenPath funkce může být volána před GetPath, aby se všechny křivky v cestě převely na segmenty čáry.

Příklad

Podívejte se na příklad pro CDC::BeginPath.

CDC::GetPixel

Načte hodnotu barvy RGB pixelu v bodě určeném znakem x *y*.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

Parametry

x
Určuje logickou souřadnici x bodu, který se má prověřit.

y
Určuje logickou souřadnici y bodu, který má být zkoumán.

point
Určuje logické souřadnice x a y bodu, který se má prověřit.

Návratová hodnota

Pro některou verzi funkce je hodnota barvy RGB pro barvu daného bodu. Je -1, pokud souřadnice nezadávají bod v oblasti výřezu.

Poznámky

Bod musí být v oblasti výřezu. Pokud bod není v oblasti výřezu, funkce nemá žádný vliv a vrátí hodnotu -1.

Funkci nepodporují GetPixel všechna zařízení. Další informace najdete v RC_BITBLT rastrové funkci v rámci GetDeviceCaps členské funkce.

Členová GetPixel funkce má dvě formy. První má dvě souřadnicové hodnoty; druhá přebírá POINT strukturu nebo CPoint objekt.

CDC::GetPolyFillMode

Načte aktuální režim vyplňování mnohoúhelníku.

int GetPolyFillMode() const;

Návratová hodnota

Aktuální režim vyplněný mnohoúhelníkem nebo ALTERNATE WINDING, pokud je funkce úspěšná.

Poznámky

SetPolyFillMode Popis režimů mnohoúhelníku vyplňování najdete v členské funkci.

CDC::GetROP2

Načte aktuální režim výkresu.

int GetROP2() const;

Návratová hodnota

Režim kreslení. Seznam hodnot režimu kreslení najdete v SetROP2 členské funkci.

Poznámky

Režim kreslení určuje, jak se barvy pera a vnitřní části vyplněných objektů kombinují s barvou, která je již na ploše zobrazení.

CDC::GetSafeHdc

Voláním této členské funkce získáte m_hDCkontext výstupního zařízení.

HDC GetSafeHdc() const;

Návratová hodnota

Popisovač kontextu zařízení.

Poznámky

Tato členová funkce funguje také s ukazateli null.

CDC::GetStretchBltMode

Načte aktuální režim roztažení rastrového obrázku.

int GetStretchBltMode() const;

Návratová hodnota

Návratová hodnota určuje aktuální režim roztažení rastrového obrázku – STRETCH_ANDSCANSSTRETCH_DELETESCANS, nebo STRETCH_ORSCANS – pokud je funkce úspěšná.

Poznámky

Režim rastrového roztažení definuje způsob odebrání informací z rastrových obrázků, které jsou roztaženy nebo komprimovány členovou StretchBlt funkcí.

Režimy STRETCH_ANDSCANS a STRETCH_ORSCANS režimy se obvykle používají k zachování pixelů popředí v monochromatických bitmapách. Režim STRETCH_DELETESCANS se obvykle používá k zachování barvy v barevných bitmapách.

CDC::GetTabbedTextExtent

Voláním této členské funkce vypočítáte šířku a výšku řetězce znaků pomocí m_hAttribDCkontextu atributu zařízení.

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

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

Parametry

lpszString
Odkazuje na řetězec znaků. Pro tento parametr můžete také předat CString objekt.

nCount
Určuje délku řetězce , na který lpszStringodkazuje .

nTabPositions
Určuje počet pozic zarážky tabulátoru v poli, na který lpnTabStopPositionsodkazuje .

lpnTabStopPositions
Odkazuje na pole celých čísel obsahujících pozice zarážky tabulátoru v logických jednotkách. Zarážky tabulátoru musí být seřazeny vzestupně; nejmenší hodnota x by měla být první položkou v matici. Zadní karty nejsou povolené.

str
Objekt CString obsahující zadané znaky, které se mají nakreslit.

Návratová hodnota

Dimenze řetězce (v logických jednotkách) v objektu CSize .

Poznámky

Pokud řetězec obsahuje jeden nebo více znaků tabulátoru, je šířka řetězce založena na zarážek tabulátoru určených znakem lpnTabStopPositions. Funkce používá aktuálně vybrané písmo k výpočtu dimenzí řetězce.

Aktuální oblast výřezu nepřesazuje šířku a výšku vrácenou GetTabbedTextExtent funkcí.

Vzhledem k tomu, že některá zařízení neumisťují znaky do běžných polí buněk (tj. prokládání znaků), nemusí se součet rozsahů znaků v řetězci rovnat rozsahu řetězce.

Pokud nTabPositions je 0 a lpnTabStopPositions je NULL, tabulátory se rozbalí na osmkrát průměrnou šířku znaků. Pokud nTabPositions je 1, zarážky tabulátoru budou odděleny vzdáleností určenou první hodnotou v matici, na kterou lpnTabStopPositions odkazuje. Pokud lpnTabStopPositions odkazuje na více než jednu hodnotu, nastaví se zarážka tabulátoru pro každou hodnotu v matici až k číslu určenému znakem nTabPositions.

CDC::GetTextAlign

Načte stav příznaků zarovnání textu pro kontext zařízení.

UINT GetTextAlign() const;

Návratová hodnota

Stav příznaků zarovnání textu Vrácená hodnota je jedna nebo více z následujících hodnot:

  • TA_BASELINE Určuje zarovnání osy x a účaří zvoleného písma v ohraničujícím obdélníku.

  • TA_BOTTOM Určuje zarovnání osy x a dolní části ohraničujícího obdélníku.

  • TA_CENTER Určuje zarovnání osy y a středu ohraničujícího obdélníku.

  • TA_LEFT Určuje zarovnání osy y a levé strany ohraničujícího obdélníku.

  • TA_NOUPDATECP Určuje, že aktuální pozice není aktualizována.

  • TA_RIGHT Určuje zarovnání osy y a pravé strany ohraničujícího obdélníku.

  • TA_TOP Určuje zarovnání osy x a horní části ohraničujícího obdélníku.

  • TA_UPDATECP Určuje, že se aktuální pozice aktualizuje.

Poznámky

Příznaky zarovnání textu určují, jak TextOut členské ExtTextOut funkce zarovnají řetězec textu vzhledem k počátečnímu bodu řetězce. Příznaky zarovnání textu nemusí být nutně jednobitové a můžou být rovny 0. Pokud chcete otestovat, jestli je nastavený příznak, měla by aplikace postupovat takto:

  1. Použijte bitový operátor OR (|) na příznak a související příznaky seskupené následujícím způsobem:

    • TA_LEFT, TA_CENTERa TA_RIGHT

    • TA_BASELINE, TA_BOTTOMa TA_TOP

    • TA_NOUPDATECP a TA_UPDATECP

  2. Použití bitového operátoru AND jazyka& C++ na výsledek a návratovou GetTextAlignhodnotu .

  3. Otestujte rovnost tohoto výsledku a příznaku.

CDC::GetTextCharacterExtra

Načte aktuální nastavení pro množství mezer mezi znaky.

int GetTextCharacterExtra() const;

Návratová hodnota

Množství mezer mezi znaky.

Poznámky

GDI přidá toto řádkování ke každému znaku, včetně znaků zalomení, když zapíše řádek textu do kontextu zařízení.

Výchozí hodnota pro množství mezer mezi znaky je 0.

CDC::GetTextColor

Načte aktuální barvu textu.

COLORREF GetTextColor() const;

Návratová hodnota

Aktuální barva textu jako hodnota barvy RGB.

Poznámky

Barva textu je barva popředí znaků nakreslených pomocí členské funkce TextOutvýstupu textu GDI , ExtTextOuta TabbedTextOut.

CDC::GetTextExtent

Voláním této členské funkce vypočítáte šířku a výšku řádku textu pomocí aktuálního písma k určení rozměrů.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

Parametry

lpszString
Odkazuje na řetězec znaků. Pro tento parametr můžete také předat CString objekt.

nCount
Určuje počet znaků v řetězci.

str
Objekt CString , který obsahuje zadané znaky.

Návratová hodnota

Dimenze řetězce (v logických jednotkách) v objektu CSize .

Poznámky

Informace se načtou z m_hAttribDCkontextu atributu zařízení.

Ve výchozím nastavení se předpokládá, že text, pro který načte dimenzi, GetTextExtent je nastaven podél vodorovné čáry (tedy řídicí znak je 0). Pokud vytvoříte písmo určující nenulový řídicí znak, musíte převést úhel textu explicitně, abyste získali rozměry řetězce.

Aktuální oblast výřezu nemá vliv na šířku a výšku vrácenou GetTextExtenthodnotou .

Vzhledem k tomu, že některá zařízení neumisťují znaky do běžných polí buněk (tj. provádí prokládání), nemusí se součet rozsahů znaků v řetězci rovnat rozsahu řetězce.

CDC::GetTextExtentExPointI

Načte počet znaků v zadaném řetězci, který se vejde do zadaného místa, a vyplní matici textovým rozsahem pro každý z těchto znaků.

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

Parametry

pgiIn
Ukazatel na pole indexů glyfů, pro které se mají načíst rozsahy.

cgi
Určuje počet glyfů v poli, na který pgiInodkazuje .

nMaxExtent
Určuje maximální povolenou šířku v logických jednotkách formátovaného řetězce.

lpnFit
Ukazatel na celé číslo, které obdrží počet maximálního počtu znaků, které se vejdou do prostoru určeného znakem nMaxExtent. Pokud lpnFit je , nMaxExtent NULLje ignorována.

alpDx
Ukazatel na pole celých čísel, která přijímají částečné rozsahy glyfů. Každý prvek v poli dává vzdálenost v logických jednotkách mezi začátkem indexů glyfů a jedním z glyfů, které se vejdou do prostoru určeného nMaxExtent. Ačkoli toto pole by mělo mít alespoň tolik prvků jako indexy glyf určené cgi, funkce vyplní pole rozsahy pouze pro tolik indexů glyfů, kolik je určeno lpnFit. Pokud lpnDx ano NULL, funkce nevypočítává částečné šířky řetězců.

lpSize
Ukazatel na SIZE strukturu, která přijímá rozměry pole indexů glyfů v logických jednotkách. Tato hodnota nemůže být NULL.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato členová funkce emuluje funkce funkce GetTextExtentExPointI, jak je popsáno v sadě Windows SDK.

CDC::GetTextExtentPointI

Načte šířku a výšku zadaného pole indexů glyfů.

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

Parametry

pgiIn
Ukazatel na pole indexů glyfů, pro které se mají načíst rozsahy.

cgi
Určuje počet glyfů v poli, na který pgiInodkazuje .

lpSize
Ukazatel na SIZE strukturu, která přijímá rozměry pole indexů glyfů v logických jednotkách. Tato hodnota nemůže být NULL.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato členová funkce emuluje funkce funkce GetTextExtentPointI, jak je popsáno v sadě Windows SDK.

CDC::GetTextFace

Voláním této členské funkce zkopírujete název písma aktuálního písma do vyrovnávací paměti.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

Parametry

nCount
Určuje velikost vyrovnávací paměti (v bajtech). Pokud je název typeface delší než počet bajtů určených tímto parametrem, název se zkrátí.

lpszFacename
Odkazuje na vyrovnávací paměť pro název písma.

rString
Odkaz na CString objekt.

Návratová hodnota

Počet bajtů zkopírovaných do vyrovnávací paměti, včetně ukončujícího znaku null. Pokud dojde k chybě, je to 0.

Poznámky

Název typeface se zkopíruje jako řetězec ukončený hodnotou null.

CDC::GetTextMetrics

Načte metriky pro aktuální písmo pomocí kontextu atributu zařízení.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parametry

lpMetrics
Odkazuje na TEXTMETRIC strukturu, která přijímá metriky.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

CDC::GetViewportExt

Načte rozsahy x a y zobrazení kontextu zařízení.

CSize GetViewportExt() const;

Návratová hodnota

Rozsahy x a y (v jednotkách zařízení) jako CSize objekt.

CDC::GetViewportOrg

Načte souřadnice x a y původu oblasti zobrazení přidruženého k kontextu zařízení.

CPoint GetViewportOrg() const;

Návratová hodnota

Původ oblasti zobrazení (v souřadnicích zařízení) jako CPoint objekt.

CDC::GetWindow

Vrátí okno přidružené k kontextu zařízení pro zobrazení.

CWnd* GetWindow() const;

Návratová hodnota

Ukazatel na CWnd objekt, pokud je úspěšný; jinak NULL.

Poznámky

Jedná se o pokročilou funkci. Tato členová funkce například nemusí při tisku nebo v náhledu tisku vrátit okno zobrazení. Vždy vrátí okno přidružené k výstupu. Výstupní funkce, které používají daný dc draw into this window.

CDC::GetWindowExt

Načte rozsahy x a y okna přidruženého k kontextu zařízení.

CSize GetWindowExt() const;

Návratová hodnota

Rozsahy x a y (v logických jednotkách) jako CSize objekt.

CDC::GetWindowOrg

Načte souřadnice x a y původu okna přidruženého k kontextu zařízení.

CPoint GetWindowOrg() const;

Návratová hodnota

Původ okna (v logických souřadnicích) jako CPoint objekt.

CDC::GetWorldTransform

Načte aktuální světovou mezeru na transformaci stránkového prostoru.

BOOL GetWorldTransform(XFORM& rXform) const;

Parametry

rXform
Odkaz na XFORM strukturu, která přijímá aktuální světovou mezeru na transformaci stránkového prostoru.

Návratová hodnota

Vrátí nenulovou hodnotu úspěchu.

Vrátí hodnotu 0 při selhání.

Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

Poznámky

Tato metoda zabalí funkci GetWorldTransformGDI systému Windows .

CDC::GradientFill

Voláním této členské funkce vyplníte obdélníkové a trojúhelníkové struktury barvou, která hladce zmizí z jedné strany na druhou.

BOOL GradientFill(
    TRIVERTEX* pVertices,
    ULONG nVertices,
    void* pMesh,
    ULONG nMeshElements,
    DWORD dwMode);

Parametry

pVertices
Ukazatel na pole TRIVERTEX struktur, které každý definuje vrchol trojúhelníku.

nVertices
Počet vrcholů.

pMesh
GRADIENT_TRIANGLE Pole struktur v režimu trojúhelníku nebo pole GRADIENT_RECT struktur v režimu obdélníku

nMeshElements
Počet prvků (trojúhelníky nebo obdélníky) v pMesh.

dwMode
Určuje režim přechodové výplně. Seznam možných hodnot najdete GradientFill v sadě Windows SDK.

Návratová hodnota

TRUE v případě úspěchu; jinak FALSE.

Poznámky

Další informace najdete GradientFill v sadě Windows SDK.

CDC::GrayString

Nakreslí šedě (šedý) text na dané místo tím, že text zapíše do obrázku paměti, ztlumí rastrový obrázek a zkopíruje rastrový obrázek do zobrazení.

virtual BOOL GrayString(
    CBrush* pBrush,
    BOOL (CALLBACK* lpfnOutput)(
    HDC,
    LPARAM,
    int),
    LPARAM lpData,
    int nCount,
    int x,
    int y,
    int nWidth,
    int nHeight);

Parametry

pBrush
Identifikuje štětec, který se má použít pro dimming (šedi).

lpfnOutput
Určuje adresu instance procedury pro funkci zpětného volání zadanou aplikací, která bude nakreslit řetězec. Další informace najdete v popisu funkce zpětného volání systému Windows.OutputFunc Pokud je NULLtento parametr , systém používá funkci Windows TextOut k vykreslení řetězce a lpData předpokládá se, že je dlouhý ukazatel na řetězec znaků, který má být výstupem.

lpData
Určuje daleko ukazatel na data, která se mají předat výstupní funkci. Pokud lpfnOutput ano NULL, lpData musí být dlouhý ukazatel na řetězec, který má být výstupem.

nCount
Určuje počet znaků, které mají být výstupem. Pokud je tento parametr 0, GrayString vypočítá délku řetězce (za předpokladu, že lpData je ukazatel na řetězec). Pokud nCount je 1 a funkce odkazovaná na lpfnOutput hodnotu 0, obrázek se zobrazí, ale není zašedlý.

x
Určuje logickou souřadnici x počáteční pozice obdélníku, která uzavře řetězec.

y
Určuje logickou souřadnici y počáteční pozice obdélníku, která uzavře řetězec.

nWidth
Určuje šířku (v logických jednotkách) obdélníku, který uzavře řetězec. Pokud nWidth je 0, GrayString vypočítá šířku oblasti za předpokladu lpData , že je ukazatel na řetězec.

nHeight
Určuje výšku (v logických jednotkách) obdélníku, který uzavře řetězec. Pokud nHeight je 0, GrayString vypočítá výšku oblasti za předpokladu lpData , že je ukazatel na řetězec.

Návratová hodnota

Nenulové, pokud je řetězec nakreslený, nebo 0, pokud TextOut funkce nebo výstupní funkce zadané aplikací vrátila hodnotu 0 nebo pokud nebylo dostatek paměti k vytvoření rastrového obrázku paměti pro dimming.

Poznámky

Funkce ztlumí text bez ohledu na vybraný štětec a pozadí. Členová GrayString funkce používá aktuálně vybrané písmo. Před MM_TEXT použitím této funkce je nutné vybrat režim mapování.

Aplikace může na zařízeních, která podporují plnou šedou barvu, kreslit šedě (šedě) řetězce bez volání GrayString členské funkce. Systémová barva COLOR_GRAYTEXT je plná-šedá systémová barva použitá k kreslení zakázaného textu. Aplikace může volat GetSysColor funkci Windows k načtení barevné hodnoty COLOR_GRAYTEXT. Pokud je barva jiná než 0 (černá), aplikace může volat SetTextColor členovou funkci, která nastaví barvu textu na hodnotu barvy a pak řetězec nakreslete přímo. Pokud je načtená barva černá, aplikace musí volat GrayString šedě (šedý) text.

Pokud lpfnOutput je NULL, GDI používá funkci Windows TextOut a lpData předpokládá se, že je daleko ukazatel na znak, který má být výstupem. Pokud znaky, které mají být výstupem TextOut , nelze zpracovat členovou funkcí (například řetězec je uložen jako rastrový obrázek), musí aplikace zadat vlastní výstupní funkci.

Všechny funkce zpětného volání musí před návratem do systému Windows soutisknout výjimky služby Microsoft Foundation, protože výjimky nelze vyvolat napříč hranicemi zpětného volání. Další informace o výjimkách najdete v článku Výjimky.

Funkce zpětného volání předaná k GrayString použití __stdcall konvence volání a musí být exportována s __declspec.

Pokud je architektura v režimu preview, volání GrayString členské funkce se přeloží na TextOut volání a funkce zpětného volání se nevolá.

CDC::HIMETRICtoDP

Tuto funkci použijte při převodu HIMETRIC velikostí z OLE na pixely.

void HIMETRICtoDP(LPSIZE lpSize) const;

Parametry

lpSize
Odkazuje na SIZE strukturu nebo CSize objekt.

Poznámky

Pokud je MM_LOENGLISHrežim mapování objektu kontextu zařízení , MM_HIENGLISHMM_LOMETRIC nebo MM_HIMETRIC, převod je založen na počtu pixelů ve fyzickém paleci. Pokud je režim mapování jedním z ostatních neomezujících režimů (například MM_TEXT), převod je založen na počtu pixelů v logickém paleci.

CDC::HIMETRICtoLP

Voláním této funkce převedete HIMETRIC jednotky na logické jednotky.

void HIMETRICtoLP(LPSIZE lpSize) const;

Parametry

lpSize
Odkazuje na SIZE strukturu nebo CSize objekt.

Poznámky

Tuto funkci použijte, když získáte HIMETRIC velikosti z OLE a chcete je převést do režimu přirozeného mapování vaší aplikace.

Převod se provádí tak, že nejprve převedete HIMETRIC jednotky na pixely a pak tyto jednotky převedete na logické jednotky pomocí aktuálních mapovacích jednotek kontextu zařízení. Všimněte si, že rozsahy okna a oblasti zobrazení zařízení ovlivní výsledek.

CDC::IntersectClipRect

Vytvoří novou oblast výřezu vytvořením průsečíku aktuální oblasti a obdélníku určeného parametrem x1, y1, x2a y2.

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

int IntersectClipRect(LPCRECT lpRect);

Parametry

x1
Určuje logickou souřadnici x levého horního rohu obdélníku.

y1
Určuje logickou souřadnici y levého horního rohu obdélníku.

x2
Určuje logickou souřadnici x pravého dolního rohu obdélníku.

y2
Určuje logickou souřadnici y pravého dolního rohu obdélníku.

lpRect
Určuje obdélník. Pro tento parametr můžete předat CRect objekt nebo ukazatel na RECT strukturu.

Návratová hodnota

Nový typ oblasti výřezu. Může to být libovolná z následujících hodnot:

  • COMPLEXREGION Nová oblast výřezu má překrývající se ohraničení.

  • ERROR Kontext zařízení není platný.

  • NULLREGION Nová oblast výřezu je prázdná.

  • SIMPLEREGION Nová oblast výřezu nemá žádné překrývající se ohraničení.

Poznámky

GDI vystřižuje všechny následné výstupy tak, aby se vešly do nové hranice. Šířka a výška nesmí překročit 32 767.

CDC::InvertRect

Invertuje obsah daného obdélníku.

void InvertRect(LPCRECT lpRect);

Parametry

lpRect
Odkazuje na RECT hodnotu, která obsahuje logické souřadnice obdélníku, které se mají invertovat. Pro tento parametr můžete také předat CRect objekt.

Poznámky

Inverze je logická operace NOT a překlopí bity jednotlivých pixelů. Na monochromatických displejích funkce zbarvuje bílé pixely černobíle a černé pixely. Na displejích barev závisí inverze na způsobu generování barev pro zobrazení. Volání InvertRect dvakrát se stejným obdélníkem obnoví zobrazení na předchozí barvy.

Pokud je obdélník prázdný, nic se nekreslí.

Příklad

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

Invertuje barvy v oblasti určené parametrem pRgn.

BOOL InvertRgn(CRgn* pRgn);

Parametry

pRgn
Identifikuje oblast, která se má invertovat. Souřadnice oblasti jsou zadány v logických jednotkách.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Na monochromatických displejích funkce zbarvuje bílé pixely černobíle a černé pixely. Při zobrazení barev závisí inverze na způsobu generování barev pro zobrazení.

CDC::IsPrinting

Určuje, jestli se pro tisk používá kontext zařízení.

BOOL IsPrinting() const;

Návratová hodnota

Nenulové, pokud CDC je objekt tiskárnou DC; jinak 0.

CDC::LineTo

Nakreslí čáru z aktuální pozice nahoru, ale ne včetně bodu určeného znakem x a y (nebo point).

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

Parametry

x
Určuje logickou souřadnici x koncového bodu pro čáru.

y
Určuje logickou souřadnici y koncového bodu pro čáru.

point
Určuje koncový bod pro řádek. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Nenulové, pokud je čára nakreslena; jinak 0.

Poznámky

Čára se nakreslí vybraným perem. Aktuální pozice je nastavena na xhodnotu , y nebo na pointhodnotu .

Příklad

Podívejte se na příklad pro CRect::CenterPoint.

CDC::LPtoDP

Převede logické jednotky na jednotky zařízení.

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

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

Parametry

lpPoints
Odkazuje na pole bodů. Každý bod v poli je POINT struktura nebo CPoint objekt.

nCount
Počet bodů v matici

lpRect
Odkazuje na RECT strukturu nebo CRect objekt. Tento parametr se používá pro běžný případ mapování obdélníku z logických jednotek na jednotky zařízení.

lpSize
Odkazuje na SIZE strukturu nebo CSize objekt.

Poznámky

Funkce mapuje souřadnice jednotlivých bodů nebo dimenzí velikosti z logického souřadnicového systému GDI na souřadnicový systém zařízení. Převod závisí na aktuálním režimu mapování a nastavení počátečních a rozsahů okna a oblasti zobrazení zařízení.

Souřadnice x a y bodů jsou 2 bajtová celá čísla v rozsahu -32 768 až 32 767. V případech, kdy by režim mapování způsoboval větší hodnoty než tyto limity, systém nastaví hodnoty na -32 768 a 32 767.

CDC::LPtoHIMETRIC

Voláním této funkce převedete logické jednotky na HIMETRIC jednotky.

void LPtoHIMETRIC(LPSIZE lpSize) const;

Parametry

lpSize
Odkazuje na SIZE strukturu nebo CSize objekt.

Poznámky

Tuto funkci použijte, když dáváte HIMETRIC velikost OLE a převedete ji z režimu přirozeného mapování aplikace. Rozsahy okna a oblasti zobrazení zařízení ovlivní výsledek.

Převod provedete tak, že nejprve převedete logické jednotky na pixely pomocí aktuálních mapovacích jednotek kontextu zařízení a pak tyto jednotky převedete na HIMETRIC jednotky.

CDC::m_hAttribDC

Kontext zařízení atributu pro tento CDC objekt.

HDC m_hAttribDC;

Poznámky

Ve výchozím nastavení je tento kontext zařízení roven m_hDC. Obecně platí, že volání GDI, která požadují informace z kontextu zařízení, CDC jsou směrována na m_hAttribDC. CDC Další informace o použití těchto dvou kontextů zařízení najdete v popisu třídy.

CDC::m_hDC

Kontext výstupního zařízení pro tento CDC objekt.

HDC m_hDC;

Poznámky

Ve výchozím nastavení m_hDC je rovna m_hAttribDC, druhý kontext zařízení zabalený CDC. Obecně platí, že volání GDI, která vytvářejí výstup, CDC přejdou do m_hDC kontextu zařízení. Inicializovat m_hDC a m_hAttribDC odkazovat na různá zařízení. CDC Další informace o použití těchto dvou kontextů zařízení najdete v popisu třídy.

CDC::MaskBlt

Kombinuje barevná data pro zdrojové a cílové rastrové obrázky pomocí dané masky a rastrové operace.

BOOL MaskBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    CBitmap& maskBitmap,
    int xMask,
    int yMask,
    DWORD dwRop);

Parametry

x
Určuje logickou souřadnici x levého horního rohu cílového obdélníku.

y
Určuje logickou souřadnici y levého horního rohu cílového obdélníku.

nWidth
Určuje šířku cílového obdélníku a zdrojového rastrového obrázku v logických jednotkách.

nHeight
Určuje výšku cílového obdélníku a zdrojového rastrového obrázku v logických jednotkách.

pSrcDC
Identifikuje kontext zařízení, ze kterého se má rastrový obrázek zkopírovat. Pokud parametr určuje rastrovou operaci, která neobsahuje zdroj, musí být nula dwRop .

xSrc
Určuje logickou souřadnici x levého horního rohu zdrojového rastrového obrázku.

ySrc
Určuje logickou souřadnici y levého horního rohu zdrojového rastrového obrázku.

maskBitmap
Identifikuje monochromatický rastrový obrázek masky v kombinaci s barevným rastrem v kontextu zdrojového zařízení.

xMask
Určuje vodorovný posun pixelu pro rastrovou mapu masky určenou parametrem maskBitmap .

yMask
Určuje svislý posun pixelu pro rastrovou mapu masky určenou parametrem maskBitmap .

dwRop
Určuje ternární rasterové kódy popředí i pozadí, které funkce používá k řízení kombinace zdrojových a cílových dat. Rastrový kód operace pozadí je uložen ve vysokém bajtu vysokého slova této hodnoty; rasterový kód popředí je uložen v nízké bajtu vysokého slova této hodnoty; nízké slovo této hodnoty je ignorováno a mělo by být nula. MAKEROP4 Makro vytvoří takové kombinace kódů operací popředí a rastrového pozadí. V části Poznámky najdete diskuzi o popředí a pozadí v kontextu této funkce. BitBlt Seznam běžných rasterových kódů operací najdete v členské funkci.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Hodnota 1 v masce určená maskBitmap pomocí indikuje, že by měl být v tomto umístění použit kód operace rastrového popředí určený tímto kódem dwRop . Hodnota 0 v masce označuje, že by měl být v tomto umístění použit rastrový kód dwRop operace na pozadí. Pokud rastrové operace vyžadují zdroj, musí obdélník masky pokrýt zdrojový obdélník. Pokud ne, funkce selže. Pokud rastrové operace nevyžadují zdroj, musí obdélník masky pokrýt cílový obdélník. Pokud ne, funkce selže.

Pokud se při zavolání této funkce projeví rotace nebo shear transformace pro kontext zdrojového zařízení, dojde k chybě. Jsou však povoleny jiné typy transformací.

Pokud se barevné formáty zdrojového, vzorového a cílového rastrového obrázku liší, tato funkce převede vzor nebo zdrojový formát nebo obojí tak, aby odpovídaly cílovému formátu. Pokud rastrová mapa masky není monochromatická rastrová mapa, dojde k chybě. Při zaznamenávání rozšířeného metasouboru dojde k chybě (a funkce vrátí hodnotu 0), pokud kontext zdrojového zařízení identifikuje kontext zařízení s rozšířeným metasouborem. Ne všechna zařízení podporují MaskBlt. Aplikace by měla volat GetDeviceCaps , aby určila, jestli zařízení tuto funkci podporuje. Pokud není zadán žádný rastrový obrázek masky, tato funkce se chová přesně stejně jako BitBltpomocí rastrového kódu popředí. Posuny pixelů v mapě rastrového obrázku masky na bod (0,0) v rastrovém obrázku kontextu zdrojového zařízení. To je užitečné pro případy, kdy rastrová mapa masky obsahuje sadu masek; aplikace může snadno použít libovolný z nich na úlohu maskování úpravou posunů pixelů a velikostí obdélníků odeslaných do MaskBlt.

CDC::ModifyWorldTransform

Změní světovou transformaci kontextu zařízení pomocí zadaného režimu.

BOOL ModifyWorldTransform(
    const XFORM& rXform,
    DWORD iMode);

Parametry

rXform
Odkaz na XFORM strukturu použitou k úpravě světové transformace pro daný kontext zařízení.

iMode
Určuje, jak transformační data mění aktuální světovou transformaci. Seznam hodnot, které tento parametr může vzít, naleznete v tématu ModifyWorldTransform.

Návratová hodnota

Vrátí nenulovou hodnotu úspěchu.

Vrátí hodnotu 0 při selhání.

Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

Poznámky

Tato metoda zabalí funkci ModifyWorldTransformGDI systému Windows .

CDC::MoveTo

Přesune aktuální pozici k bodu určenému znakem x a y (nebo podle point).

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

Parametry

x
Určuje logickou souřadnici x nové pozice.

y
Určuje logickou souřadnici y nové pozice.

point
Určuje novou pozici. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Souřadnice x a y předchozí pozice jako CPoint objekt.

Příklad

Podívejte se na příklad pro CRect::CenterPoint.

CDC::OffsetClipRgn

Přesune oblast oříznutí kontextu zařízení podle zadaných posunů.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

Parametry

x
Určuje počet logických jednotek, které se mají přesunout doleva nebo doprava.

y
Určuje počet logických jednotek, které se mají přesunout nahoru nebo dolů.

size
Určuje částku, která se má odsazení odsazení.

Návratová hodnota

Typ nové oblasti. Může to být libovolná z následujících hodnot:

  • COMPLEXREGION Oblast výřezu má překrývající se ohraničení.

  • ERROR Kontext zařízení není platný.

  • NULLREGION Oblast výřezu je prázdná.

  • SIMPLEREGION Oblast výřezu neobsahuje překrývající se ohraničení.

Poznámky

Funkce přesune jednotky oblasti x podél osy x a y jednotky podél osy y.

CDC::OffsetViewportOrg

Upraví souřadnice původu oblasti zobrazení vzhledem ke souřadnicím aktuálního původu oblasti zobrazení.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

Parametry

nWidth
Určuje počet jednotek zařízení, které se mají přidat do souřadnice x aktuálního původu.

nHeight
Určuje počet jednotek zařízení, které se mají přidat do souřadnice y aktuálního původu.

Návratová hodnota

Předchozí zdroj oblasti zobrazení (v souřadnicích zařízení) jako CPoint objekt.

CDC::OffsetWindowOrg

Upraví souřadnice původu okna vzhledem ke souřadnicím aktuálního původu okna.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

Parametry

nWidth
Určuje počet logických jednotek, které se mají přidat ke souřadnici x aktuálního původu.

nHeight
Určuje počet logických jednotek, které mají být přidány do souřadnice y aktuálního původu.

Návratová hodnota

Předchozí zdroj okna (v logických souřadnicích) jako CPoint objekt.

CDC::operator HDC

Tento operátor slouží k načtení kontextového popisovače zařízení objektu CDC .

operator HDC() const;

Návratová hodnota

V případě úspěchu popisovač objektu kontextu zařízení; v opačném případě . NULL

Poznámky

Popisovač můžete použít k přímému volání rozhraní API systému Windows.

CDC::PaintRgn

Vyplní oblast zadanou pRgn pomocí aktuálního štětce.

BOOL PaintRgn(CRgn* pRgn);

Parametry

pRgn
Identifikuje oblast, která se má vyplnit. Souřadnice pro danou oblast jsou zadány v logických jednotkách.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

CDC::PatBlt

Vytvoří na zařízení bitový vzor.

BOOL PatBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    DWORD dwRop);

Parametry

x
Určuje logickou souřadnici x levého horního rohu obdélníku, která má tento vzor přijmout.

y
Určuje logickou souřadnici y levého horního rohu obdélníku, který má vzor přijmout.

nWidth
Určuje šířku (v logických jednotkách) obdélníku, který má vzor přijmout.

nHeight
Určuje výšku (v logickýchjednotkách

dwRop
Určuje rastrový kód operace. Raster-operation codes (ROPs) definují, jak GDI kombinuje barvy ve výstupních operacích, které zahrnují aktuální štětec, možnou zdrojovou bitmapu a cílovou bitmapu. Tento parametr může být jedna z následujících hodnot:

  • PATCOPY Zkopíruje vzor do cílového rastrového obrázku.

  • PATINVERT Kombinuje cílovou bitmapu se vzorem pomocí logického operátoru XOR (^).

  • DSTINVERT Invertuje cílovou bitmapu.

  • BLACKNESS Změní veškerý výstup na černou.

  • WHITENESS Změní veškerý výstup na bílou.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Vzor je kombinací vybraného štětce a vzoru, který už je na zařízení. Rastrový kód operace určený definováním dwRop způsobu kombinování vzorů. Rastrové operace uvedené pro tuto funkci jsou omezenou podmnožinou úplných 256 ternárních raster-operací kódů; zejména raster-operation kód, který odkazuje na zdroj nelze použít.

Funkce nepodporuje PatBlt všechny kontexty zařízení. Pokud chcete zjistit, jestli kontext zařízení podporuje PatBlt, zavolejte GetDeviceCaps členovou funkci s indexem RASTERCAPS a zkontrolujte návratovou hodnotu příznaku RC_BITBLT .

CDC::Pie

Nakreslí výsečový výsečový klín výkresem eliptického oblouku, jehož střed a dva koncové body jsou spojeny čarami.

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);

Parametry

x1
Určuje souřadnici x levého horního rohu ohraničujícího obdélníku (v logických jednotkách).

y1
Určuje souřadnici y levého horního rohu ohraničujícího obdélníku (v logických jednotkách).

x2
Určuje souřadnici x pravého dolního rohu ohraničujícího obdélníku (v logických jednotkách).

y2
Určuje souřadnici y pravého dolního rohu ohraničujícího obdélníku (v logických jednotkách).

x3
Určuje souřadnici x počátečního bodu oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

y3
Určuje souřadnici y počátečního bodu oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

x4
Určuje souřadnici x koncového bodu oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

y4
Určuje souřadnici y koncového bodu oblouku (v logických jednotkách). Tento bod nemusí lhát přesně na oblouku.

lpRect
Určuje ohraničující obdélník. Pro tento parametr můžete předat CRect objekt nebo ukazatel na RECT strukturu.

ptStart
Určuje výchozí bod oblouku. Tento bod nemusí lhát přesně na oblouku. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

ptEnd
Určuje koncový bod oblouku. Tento bod nemusí lhát přesně na oblouku. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Střed oblouku je středem ohraničujícího obdélníku určeného parametrem x1, y1, x2a y2 (nebo podle lpRect). Počáteční a koncové body oblouku jsou určeny pomocí x3, y3, x4, a y4 (nebo podle ptStart a ptEnd).

Oblouk je nakreslen vybraným perem a pohybuje se proti směru hodinových ručiček. Ze všech koncových bodů do středu oblouku jsou nakresleny dvě další čáry. Oblast ve tvaru výsečového grafu je vyplněna aktuálním štětcem. Pokud x3 se rovná x4 a y3 rovná y4se , výsledkem je tři tečky s jednou čárou ze středu elipsy na bod (x3, y3) nebo (x4, y4).

Obrázek nakreslený touto funkcí přesahuje, ale nezahrnuje pravé a dolní souřadnice. To znamená, že výška obrázku je y2 - y1 a šířka obrázku je .x2 - x1 Šířka i výška ohraničujícího obdélníku musí být větší než 2 jednotky a menší než 32 767 jednotek.

Příklad

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

Přehraje obsah zadaného metasouboru v kontextu zařízení.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

Parametry

hMF
Identifikuje metasoubor, který se má přehrát.

hEnhMetaFile
Identifikuje vylepšený metasoubor.

lpBounds
Odkazuje na RECT strukturu nebo CRect objekt, který obsahuje souřadnice ohraničujícího obdélníku použitého k zobrazení obrázku. Souřadnice jsou zadány v logických jednotkách.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Metasoubor lze přehrát libovolný počet.

Druhá verze zobrazí obrázek uložený v daném metasouboru rozšířeného PlayMetaFile formátu. Když aplikace volá druhou verzi PlayMetaFilesystému Windows, pomocí rámečku obrázku v záhlaví rozšířeného metasouboru mapuje obrázek na obdélník odkazovaný parametrem lpBounds . (Tento obrázek může být před voláním PlayMetaFilestřídavě nebo otočen nastavením světové transformace ve výstupním zařízení.) Body podél okrajů obdélníku jsou součástí obrázku. Obrázek rozšířeného metasouboru lze oříznout tak, že před přehráváním rozšířeného metasouboru definujete oblast výřezu ve výstupním zařízení.

Pokud rozšířený metasoubor obsahuje volitelnou paletu, může aplikace dosáhnout konzistentních barev nastavením barevné palety na výstupním zařízení před voláním druhé verze PlayMetaFile. Pokud chcete načíst volitelnou paletu GetEnhMetaFilePaletteEntries , použijte funkci Windows. Rozšířený metasoubor lze vložit do nově vytvořeného rozšířeného metasouboru voláním druhé verze a přehráním zdrojového rozšířeného PlayMetaFile metasouboru do kontextu zařízení pro nový rozšířený metasoubor.

Stavy kontextu výstupního zařízení se zachovají touto funkcí. Tato funkce odstraní jakýkoli objekt vytvořený, ale neodstraní se v rozšířeném metasouboru. Za účelem zastavení této funkce může aplikace volat CancelDC funkci Windows z jiného vlákna a ukončit operaci. V tomto případě vrátí funkce nulu.

CDC::PlgBlt

Provede bitový blok přenosu bitů barevných dat ze zadaného obdélníku v kontextu zdrojového zařízení do zadaného paralelogramu v daném kontextu zařízení.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

Parametry

lpPoint
Odkazuje na pole tří bodů v logickém prostoru, které identifikuje tři rohy cílového paralelogramu. Levý horní roh zdrojového obdélníku je namapován na první bod v tomto poli, pravý horní roh na druhý bod v tomto poli a levý dolní roh na třetí bod. Pravý dolní roh zdrojového obdélníku je mapován na implicitní čtvrtý bod paralelogramu.

pSrcDC
Identifikuje kontext zdrojového zařízení.

xSrc
Určuje souřadnici x v logických jednotkách v levém horním rohu zdrojového obdélníku.

ySrc
Určuje souřadnici y v logických jednotkách v levém horním rohu zdrojového obdélníku.

nWidth
Určuje šířku zdrojového obdélníku v logických jednotkách.

nHeight
Určuje výšku zdrojového obdélníku v logických jednotkách.

maskBitmap
Identifikuje volitelný monochromatický rastrový obrázek, který slouží k maskování barev zdrojového obdélníku.

xMask
Určuje souřadnici x levého horního rohu monochromatického rastrového obrázku.

yMask
Určuje souřadnici y levého horního rohu monochromatického rastrového obrázku.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Pokud daný úchyt bitové masky identifikuje platný monochromatický rastrový obrázek, funkce použije tento rastrový obrázek k maskování bitů barevných dat ze zdrojového obdélníku.

Čtvrtý vrchol paralelogramu (D) je definován tak, že považuje první tři body (A, B a C) za vektory a computing D = B + C - A.

Pokud bitová maska existuje, hodnota 1 v masce označuje, že barva zdrojového pixelu by se měla zkopírovat do cíle. Hodnota 0 v masce označuje, že se barva cílového pixelu nezmění.

Pokud je obdélník masky menší než zdrojový a cílový obdélník, funkce replikuje vzor masky.

Transformace škálování, překladu a reflexe jsou povoleny v kontextu zdrojového zařízení; ale rotace a střídmé transformace nejsou. Pokud rastrová mapa masky není monochromatická rastrová mapa, dojde k chybě. Režim roztažení kontextu cílového zařízení se používá k určení způsobu roztažení nebo komprese pixelů, pokud je to nezbytné. Při zaznamenávání rozšířeného metasouboru dojde k chybě, pokud kontext zdrojového zařízení identifikuje kontext zařízení s rozšířeným metasouborem.

Cílové souřadnice jsou transformovány podle kontextu cílového zařízení; zdrojové souřadnice jsou transformovány podle kontextu zdrojového zařízení; Pokud má transformace zdroje otočení nebo shear, vrátí se chyba. Pokud cílové a zdrojové obdélníky nemají stejný barevný formát, převede zdrojový obdélník tak, PlgBlt aby odpovídal cílovému obdélníku. Ne všechna zařízení podporují PlgBlt. Další informace najdete v popisu RC_BITBLT rastrové funkce ve CDC::GetDeviceCaps členské funkci.

Pokud kontexty zdrojového a cílového zařízení představují nekompatibilní zařízení, PlgBlt vrátí chybu.

CDC::PolyBezier

Nakreslí jednu nebo více čar Bzier.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

Parametry

lpPoints
Odkazuje na pole datových POINT struktur, které obsahují koncové body a kontrolní body spline(ů).

nCount
Určuje počet bodů v matici lpPoints . Tato hodnota musí být o jeden více než třikrát větší počet výsečí, protože každá křivka Bzier vyžaduje dva kontrolní body a koncový bod a počáteční spline vyžaduje další výchozí bod.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato funkce nakreslí krychlové splines Bzier pomocí koncových bodů a kontrolních bodů určených parametrem lpPoints . První křivka se vykreslí z prvního bodu do čtvrtého bodu pomocí druhého a třetího bodu jako kontrolních bodů. Každá další křivka v sekvenci potřebuje přesně tři další body: koncový bod předchozí křivky se používá jako výchozí bod, další dva body v sekvenci jsou řídicí body a třetí je koncový bod.

Funkce aktuální pozici nepoužívá ani neaktualizuje PolyBezier . Obrázek není vyplněný. Tato funkce nakreslí čáry pomocí aktuálního pera.

CDC::PolyBezierTo

Nakreslí jednu nebo více čar Bzier.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

Parametry

lpPoints
Odkazuje na pole datových POINT struktur, které obsahují koncové body a kontrolní body.

nCount
Určuje počet bodů v matici lpPoints . Tato hodnota musí být třikrát počet čar, které se mají nakreslit, protože každý Bzier spline vyžaduje dva kontrolní body a koncový bod.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato funkce nakreslí krychlové křivky Bzieru pomocí kontrolních bodů určených parametrem lpPoints . První křivka je nakreslena z aktuální pozice do třetího bodu pomocí prvních dvou bodů jako kontrolních bodů. Pro každou další spline potřebuje funkce přesně tři další body a použije koncový bod předchozího spline jako výchozí bod pro další bod. PolyBezierTo přesune aktuální pozici na koncový bod posledního bodu Bzier spline. Obrázek není vyplněný. Tato funkce nakreslí čáry pomocí aktuálního pera.

Příklad

Podívejte se na příklad pro CDC::BeginPath.

CDC::PolyDraw

Nakreslí sadu segmentů čar a Bzier splines.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

Parametry

lpPoints
Odkazuje na pole datových POINT struktur, které obsahují koncové body pro každý segment čáry a koncové body a kontrolní body pro každý Bzier spline.

lpTypes
Odkazuje na matici, která určuje, jak se každý bod v matici lpPoints používá. Hodnoty můžou být následující:

  • PT_MOVETO Určuje, že tento bod začíná nesouvislým obrázkem. Tento bod se stane novou aktuální pozicí.

  • PT_LINETO Určuje, že čára se má nakreslit z aktuální pozice do tohoto bodu, což se pak stane novou aktuální pozicí.

  • PT_BEZIERTO Určuje, že tento bod je řídicím bodem nebo koncovým bodem spojnice Bzier.

PT_BEZIERTO typy se vždy vyskytují v sadách tří. Aktuální pozice definuje výchozí bod pro Bzier spline. První dva PT_BEZIERTO body jsou řídicí body a třetí PT_BEZIERTO bod je koncový bod. Koncový bod se stane novou aktuální pozicí. Pokud nejsou tři po sobě jdoucí PT_BEZIERTO body, zobrazí se chybová zpráva.

A PT_LINETO nebo PT_BEZIERTO typ lze kombinovat s následující konstantou pomocí bitového operátoru OR k označení, že odpovídající bod je posledním bodem na obrázku a obrázek je uzavřen:

  • PT_CLOSEFIGUREUrčuje, že se obrázek po dokončení tohoto PT_BEZIERTO bodu automaticky zavřePT_LINETO. Čára je z tohoto bodu nakreslena k poslednímu PT_MOVETO bodu nebo MoveTo bodu.

    Tento příznak je kombinován s PT_LINETO typem čáry nebo s PT_BEZIERTO typem koncového bodu pro spojnici Bzier pomocí bitové operátoru OR . Aktuální pozice je nastavená na koncový bod uzavírací čáry.

nCount
Určuje celkový počet bodů v lpPoints matici, stejný jako počet bajtů v matici lpTypes .

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tuto funkci lze použít k kreslení oddělených obrázků místo po sobě jdoucích volání CDC::MoveTo, CDC::LineToa CDC::PolyBezierTo členských funkcí. Čáry a splines jsou kresleny pomocí aktuálního pera a obrázky nejsou vyplněné. Pokud je aktivní cesta spuštěná voláním CDC::BeginPath členské funkce, PolyDraw přidá se do cesty. Body obsažené v matici lpPoints a lpTypes indikují, zda je každý bod součástí CDC::MoveTo, a CDC::LineTonebo CDC::BezierTo operace. Je také možné zavřít postavy. Tato funkce aktualizuje aktuální pozici.

Příklad

Podívejte se na příklad pro CDC::BeginPath.

CDC::Polygon

Nakreslí mnohoúhelník skládající se ze dvou nebo více bodů (vrcholů) spojených spojnicemi pomocí aktuálního pera.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

Parametry

lpPoints
Odkazuje na matici bodů, která určuje vrcholy mnohoúhelníku. Každý bod v poli je POINT struktura nebo CPoint objekt.

nCount
Určuje počet vrcholů v poli.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Systém v případě potřeby automaticky zavře mnohoúhelník tak, že nakreslí čáru z posledního vrcholu na první.

Aktuální režim mnohoúhelníku lze načíst nebo nastavit pomocí GetPolyFillMode členských funkcí.SetPolyFillMode

Příklad

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

Nakreslí sadu segmentů čar spojujících body určené parametrem lpPoints.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

Parametry

lpPoints
Odkazuje na pole POINT struktur nebo CPoint objektů, které mají být propojeny.

nCount`
Určuje počet bodů v matici. Tato hodnota musí být alespoň 2.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Čáry jsou nakresleny z prvního bodu prostřednictvím následných bodů pomocí aktuálního pera. LineTo Na rozdíl od členské funkce Polyline funkce nepoužívá ani neaktualizuje aktuální pozici.

Další informace najdete PolyLine v sadě Windows SDK.

CDC::PolylineTo

Nakreslí jednu nebo více rovných čar.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

Parametry

lpPoints
Odkazuje na pole datových POINT struktur, které obsahují vrcholy čáry.

nCount
Určuje počet bodů v matici.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Čára se nakreslí z aktuální pozice k prvnímu bodu určenému lpPoints parametrem pomocí aktuálního pera. Pro každou další čáru funkce nakreslí z koncového bodu předchozí čáry na další bod určený lpPoints. PolylineTo přesune aktuální pozici na koncový bod poslední čáry. Pokud segmenty čar nakreslené touto funkcí tvoří uzavřený obrázek, není obrázek vyplněný.

CDC::PolyPolygon

Vytvoří dva nebo více mnohoúhelníku, které jsou vyplněny pomocí aktuálního režimu mnohoúhelníku.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

Parametry

lpPoints
Odkazuje na pole POINT struktur nebo CPoint objektů, které definují vrcholy mnohoúhelníku.

lpPolyCounts
Odkazuje na matici celých čísel, z nichž každá určuje počet bodů v jednom z mnohoúhelníků v matici lpPoints .

nCount
Počet položek v matici lpPolyCounts . Toto číslo určuje počet mnohoúhelníku, které se mají nakreslit. Tato hodnota musí být alespoň 2.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Mnohoúhelníky můžou být oddělené nebo překrývající se.

Každý mnohoúhelník zadaný ve volání PolyPolygon funkce musí být uzavřen. Na rozdíl od mnohoúhelníku vytvořených Polygon člennou funkcí se mnohoúhelníky vytvořené PolyPolygon automaticky nezavírají.

Funkce vytvoří dva nebo více mnohoúhelníku. K vytvoření jednoho mnohoúhelníku by aplikace měla používat členovou Polygon funkci.

Aktuální režim mnohoúhelníku lze načíst nebo nastavit pomocí GetPolyFillMode členských funkcí.SetPolyFillMode

CDC::PolyPolyline

Nakreslí více řad propojených segmentů čar.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

Parametry

lpPoints
Odkazuje na pole struktur, které obsahují vrcholy čar. Křivky jsou zadány po sobě.

lpPolyPoints
Odkazuje na matici proměnných určující počet bodů v lpPoints matici pro odpovídající mnohoúhelník. Každá položka musí být větší nebo rovna 2.

nCount
Určuje celkový počet počtů v lpPolyPoints poli.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Segmenty čáry jsou kresleny pomocí aktuálního pera. Obrázky vytvořené segmenty nejsou vyplněné. Tato funkce nepoužívá ani neaktualizuje aktuální pozici.

CDC::PtVisible

Určuje, jestli se daný bod nachází v oblasti výřezu kontextu zařízení.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

Parametry

x
Určuje logickou souřadnici x bodu.

y
Určuje logickou souřadnici y bodu.

point
Určuje bod, který se má vrátit se změnami logických souřadnic. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Nenulové, pokud je zadaný bod v oblasti výřezu; jinak 0.

CDC::QueryAbort

Volá funkci přerušení nainstalovanou členovou SetAbortProc funkcí pro tiskovou aplikaci a dotazuje se, zda se má tisk ukončit.

BOOL QueryAbort() const;

Návratová hodnota

Návratová hodnota je nenulová, pokud by tisk měl pokračovat nebo pokud neexistuje žádný postup přerušení. Je to 0, pokud by se tisková úloha měla ukončit. Vrácená hodnota je zadána funkcí abort.

CDC::RealizePalette

Mapuje položky z aktuální logické palety na systémovou paletu.

UINT RealizePalette();

Návratová hodnota

Určuje, kolik položek v logické paletě bylo namapováno na různé položky v systémové paletě. Představuje počet položek, které tato funkce přemapovala tak, aby vyhovovala změnám v systémové paletě od posledního dokončení logické palety.

Poznámky

Logická paleta barev funguje jako vyrovnávací paměť mezi aplikacemi náročnými na barvy a systémem, což aplikaci umožňuje používat tolik barev, kolik potřebujete, aniž by zasahovala do vlastních zobrazených barev nebo barev zobrazených jinými okny.

Když má okno vstupní fokus a volání RealizePalette, Windows zajistí, že okno zobrazí všechny požadované barvy až do maximálního počtu současně dostupného na obrazovce. Systém Windows také zobrazuje barvy, které nejsou v paletě okna nalezeny, a to tak, že je spáruje s dostupnými barvami.

Kromě toho systém Windows odpovídá barvám požadovaným neaktivními okny, která funkci volají co nejblíže dostupným barvám. To výrazně snižuje nežádoucí změny barev zobrazených v neaktivních oknech.

CDC::Rectangle

Nakreslí obdélník pomocí aktuálního pera.

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

BOOL Rectangle(LPCRECT lpRect);

Parametry

x1
Určuje souřadnici x levého horního rohu obdélníku (v logických jednotkách).

y1
Určuje souřadnici y levého horního rohu obdélníku (v logických jednotkách).

x2
Určuje souřadnici x pravého dolního rohu obdélníku (v logických jednotkách).

y2
Určuje souřadnici y pravého dolního rohu obdélníku (v logických jednotkách).

lpRect
Určuje obdélník v logických jednotkách. Pro tento parametr můžete předat CRect objekt nebo ukazatel na RECT strukturu.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Vnitřní část obdélníku je vyplněna pomocí aktuálního štětce.

Obdélník se rozšiřuje až do, ale nezahrnuje pravé a dolní souřadnice. To znamená, že výška obdélníku je y2 - y1 a šířka obdélníku je .x2 - x1 Šířka i výška obdélníku musí být větší než 2 jednotky a menší než 32 767 jednotek.

Příklad

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

Určuje, zda jakákoli část daného obdélníku leží v oblasti výřezu kontextu zobrazení.

virtual BOOL RectVisible(LPCRECT lpRect) const;

Parametry

lpRect
Odkazuje na RECT strukturu nebo CRect objekt, který obsahuje logické souřadnice zadaného obdélníku.

Návratová hodnota

Nenulové, pokud některá část daného obdélníku leží v oblasti výřezu; jinak 0.

CDC::ReleaseAttribDC

Voláním této členské funkce nastavíte m_hAttribDC hodnotu NULL.

virtual void ReleaseAttribDC();

Poznámky

To nezpůsobí Detach výskyt. K objektu je připojen pouze kontext výstupního CDC zařízení a lze ho odpojit.

CDC::ReleaseOutputDC

Voláním této členské funkce nastavíte člena m_hDC na NULLhodnotu .

virtual void ReleaseOutputDC();

Poznámky

Tuto členovou funkci nelze volat, pokud je k objektu připojen kontext výstupního CDC zařízení. Detach Pomocí členské funkce odpojte kontext výstupního zařízení.

CDC::ResetDC

Voláním této členské funkce aktualizujte kontext zařízení zabalený objektem CDC .

BOOL ResetDC(const DEVMODE* lpDevMode);

Parametry

lpDevMode
Ukazatel na strukturu Windows DEVMODE .

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Kontext zařízení se aktualizuje z informací zadaných ve struktuře Windows DEVMODE . Tato členová funkce resetuje pouze kontext zařízení atributu.

Aplikace obvykle použije ResetDC členovou funkci, když okno zpracuje WM_DEVMODECHANGE zprávu. Pomocí této členské funkce můžete při tisku dokumentu změnit orientaci papíru nebo přihrádky papíru.

Tuto členovu funkci nelze použít ke změně názvu ovladače, názvu zařízení nebo výstupního portu. Když uživatel změní název připojení k portu nebo zařízení, musíte odstranit původní kontext zařízení a vytvořit nový kontext zařízení s novými informacemi.

Před voláním této členské funkce je nutné zajistit, aby byly vybrány všechny objekty (jiné než skladové objekty), které byly vybrány do kontextu zařízení.

CDC::RestoreDC

Obnoví kontext zařízení do předchozího stavu zjištěného uživatelem nSavedDC.

virtual BOOL RestoreDC(int nSavedDC);

Parametry

nSavedDC
Určuje kontext zařízení, který se má obnovit. Může to být hodnota vrácená předchozím SaveDC voláním funkce. Pokud nSavedDC je -1, obnoví se naposledy uložený kontext zařízení.

Návratová hodnota

Nenulové, pokud byl zadaný kontext obnoven; jinak 0.

Poznámky

RestoreDC obnoví kontext zařízení tak, že z zásobníku vytvořeného dřívějšími voláními SaveDC členské funkce přepíná informace o stavu.

Zásobník může obsahovat informace o stavu pro několik kontextů zařízení. Pokud kontext zadaný nSavedDC v horní části zásobníku není, RestoreDC odstraní všechny informace o stavu mezi kontextem zařízení určeným nSavedDC a horní částí zásobníku. Odstraněné informace se ztratí.

CDC::RoundRect

Nakreslí obdélník se zaoblenými rohy pomocí aktuálního pera.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

Parametry

x1
Určuje souřadnici x levého horního rohu obdélníku (v logických jednotkách).

y1
Určuje souřadnici y levého horního rohu obdélníku (v logických jednotkách).

x2
Určuje souřadnici x pravého dolního rohu obdélníku (v logických jednotkách).

y2
Určuje souřadnici y pravého dolního rohu obdélníku (v logických jednotkách).

x3
Určuje šířku tří teček použitých k vykreslení zaoblených rohů (v logických jednotkách).

y3
Určuje výšku tří teček použitých k vykreslení zaoblených rohů (v logických jednotkách).

lpRect
Určuje ohraničující obdélník v logických jednotkách. Pro tento parametr můžete předat CRect objekt nebo ukazatel na RECT strukturu.

point
Souřadnice point x určuje šířku tří teček pro vykreslení zaoblených rohů (v logických jednotkách). Souřadnice point y určuje výšku tří teček pro vykreslení zaoblených rohů (v logických jednotkách). Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Vnitřní část obdélníku je vyplněna pomocí aktuálního štětce.

Obrázek, na který tato funkce nakreslí, se rozšíří až na pravé a dolní souřadnice, ale neobsahuje souřadnice vpravo a dole. To znamená, že výška obrázku je y2 - y1 a šířka obrázku je .x2 - x1 Výška i šířka ohraničujícího obdélníku musí být větší než 2 jednotky a menší než 32 767 jednotek.

Příklad

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

Uloží aktuální stav kontextu zařízení zkopírováním informací o stavu (například oříznutí oblasti, vybraných objektů a režimu mapování) do zásobníku kontextu spravovaného systémem Windows.

virtual int SaveDC();

Návratová hodnota

Celé číslo identifikující kontext uloženého zařízení. Pokud dojde k chybě, je to 0. Tato návratová hodnota se dá použít k obnovení kontextu zařízení voláním RestoreDC.

Poznámky

Kontext uloženého zařízení lze později obnovit pomocí RestoreDC.

SaveDC lze použít libovolný početkrát k uložení libovolného počtu stavů kontextu zařízení.

CDC::ScaleViewportExt

Upraví rozsahy oblasti zobrazení vzhledem k aktuálním hodnotám.

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parametry

xNum
Určuje množství, o které se má vynásobit aktuální rozsah x.

xDenom
Určuje hodnotu, o kterou se má výsledek vynásobit aktuálním rozsahem x hodnotou parametru xNum .

yNum
Určuje množství, o které se má aktuální rozsah y vynásobit.

yDenom
Určuje hodnotu, o kterou se má výsledek vynásobit aktuálním rozsahem y hodnotou parametru yNum .

Návratová hodnota

Předchozí rozsahy oblasti zobrazení (v jednotkách zařízení) jako CSize objekt.

Poznámky

Vzorce se zapisují takto:

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

Nové rozsahy oblasti zobrazení se počítají vynásobením aktuálních rozsahů daným čitatelem a následným vydělením daným jmenovatelem.

CDC::ScaleWindowExt

Upraví rozsahy okna vzhledem k aktuálním hodnotám.

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parametry

xNum
Určuje množství, o které se má vynásobit aktuální rozsah x.

xDenom
Určuje hodnotu, o kterou se má výsledek vynásobit aktuálním rozsahem x hodnotou parametru xNum .

yNum
Určuje množství, o které se má aktuální rozsah y vynásobit.

yDenom
Určuje hodnotu, o kterou se má výsledek vynásobit aktuálním rozsahem y hodnotou parametru yNum .

Návratová hodnota

Předchozí rozsah okna (v logických jednotkách) jako CSize objekt.

Poznámky

Vzorce se zapisují takto:

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

Nové rozsahy oken se počítají vynásobením aktuálních rozsahů daným čitatelem a následným vydělením daným jmenovatelem.

CDC::ScrollDC

Posune obdélník bitů vodorovně a svisle.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

Parametry

dx
Určuje počet vodorovných jednotek posouvání.

dy
Určuje počet svislých jednotek posouvání.

lpRectScroll
Odkazuje na RECT strukturu nebo CRect objekt, který obsahuje souřadnice obdélníku posouvání.

lpRectClip
Odkazuje na RECT strukturu nebo CRect objekt, který obsahuje souřadnice obdélníku výřezu. Pokud je tento obdélník menší než původní obdélník, na který lpRectScrollodkazuje , posouvání se vyskytuje pouze v menším obdélníku.

pRgnUpdate
Identifikuje oblast odkrytou procesem posouvání. Funkce ScrollDC tuto oblast definuje, není to nutně obdélník.

lpRectUpdate
Odkazuje na RECT strukturu nebo CRect objekt, který přijímá souřadnice obdélníku, který ohraničuje oblast aktualizace posouvání. Jedná se o největší obdélníkovou oblast, která vyžaduje překreslení. Hodnoty ve struktuře nebo objektu, když funkce vrátí, jsou v souřadnicích klienta bez ohledu na režim mapování pro daný kontext zařízení.

Návratová hodnota

Nenulové, pokud je provedeno posouvání; jinak 0.

Poznámky

Pokud lpRectUpdate ano NULL, Systém Windows nevypočítá obdélník aktualizace. Pokud se jedná o NULLlpRectUpdate obojípRgnUpdate, Windows nevypočítá oblast aktualizace. Pokud pRgnUpdate není NULL, systém Windows předpokládá, že obsahuje platný ukazatel na oblast odkrytou procesem posouvání (definovaným členovou ScrollDC funkcí). Oblast aktualizace vrácená v lpRectUpdate případě potřeby může být předána CWnd::InvalidateRgn .

Aplikace by měla používat ScrollWindow členskou funkci třídy CWnd , pokud je nutné posunout celou oblast klienta okna. Jinak by měl používat ScrollDC.

CDC::SelectClipPath

Vybere aktuální cestu jako oblast výřezu kontextu zařízení a zkombinuje novou oblast s jakoukoli existující oblastí výřezu pomocí zadaného režimu.

BOOL SelectClipPath(int nMode);

Parametry

nMode
Určuje způsob použití cesty. Jsou povoleny následující hodnoty:

  • RGN_AND Nová oblast výřezu zahrnuje průsečík (překrývající se oblasti) aktuální oblasti výřezu a aktuální cestu.

  • RGN_COPY Nová oblast výřezu je aktuální cesta.

  • RGN_DIFF Nová oblast výřezu zahrnuje oblasti aktuální oblasti výřezu a oblasti aktuální cesty jsou vyloučené.

  • RGN_OR Nová oblast výřezu zahrnuje sjednocení (kombinované oblasti) aktuální oblasti výřezu a aktuální cestu.

  • RGN_XOR Nová oblast výřezu zahrnuje sjednocení aktuální oblasti výřezu a aktuální cesty, ale bez překrývajících se oblastí.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Identifikovaný kontext zařízení musí obsahovat uzavřenou cestu.

CDC::SelectClipRgn

Vybere danou oblast jako aktuální oblast výřezu kontextu zařízení.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

Parametry

pRgn
Identifikuje oblast, která se má vybrat.

  • Pro první verzi této funkce, pokud je NULLtato hodnota , je vybrána celá oblast klienta a výstup je stále oříznut do okna.

  • Pro druhou verzi této funkce může být NULL tento popisovač pouze v případě, že RGN_COPY je zadaný režim.

nMode
Určuje operaci, která se má provést. Musí to být jedna z následujících hodnot:

  • RGN_AND Nová oblast výřezu kombinuje překrývající se oblasti aktuální oblasti výřezu a oblast identifikovaná uživatelem pRgn.

  • RGN_COPY Nová oblast výřezu je kopií oblasti identifikované uživatelem pRgn. Tato funkce je stejná jako první verze SelectClipRgn. Pokud je NULLoblast identifikovaná uživatelem pRgn , stane se nová oblast výřezu výchozí oblastí výřezu (oblast s hodnotou null).

  • RGN_DIFF Nová oblast výřezu kombinuje oblasti aktuální oblasti výřezu s těmito oblastmi vyloučenými z oblasti identifikované pRgn.

  • RGN_OR Nová oblast výřezu kombinuje aktuální oblast výřezu a oblast identifikovaná uživatelem pRgn.

  • RGN_XOR Nová oblast výřezu kombinuje aktuální oblast výřezu a oblast identifikovanou pRgn , ale vylučuje všechny překrývající se oblasti.

Návratová hodnota

Typ oblasti. Může to být libovolná z následujících hodnot:

  • COMPLEXREGION Nová oblast výřezu má překrývající se ohraničení.

  • ERROR Kontext zařízení nebo oblast nejsou platné.

  • NULLREGION Nová oblast výřezu je prázdná.

  • SIMPLEREGION Nová oblast výřezu nemá žádné překrývající se ohraničení.

Poznámky

Použije se jenom kopie vybrané oblasti. Samotnou oblast je možné vybrat pro libovolný počet dalších kontextů zařízení nebo ji můžete odstranit.

Funkce předpokládá, že souřadnice pro danou oblast jsou zadané v jednotkách zařízení. Některá zařízení tiskárny podporují textový výstup s vyšším rozlišením než grafický výstup, aby se zachovala přesnost potřebná k vyjádření textových metrik. Tato zařízení hlásí jednotky zařízení s vyšším rozlišením, tj. v textových jednotkách. Tato zařízení pak škálují souřadnice grafiky tak, aby se několik ohlášených jednotek zařízení mapuje pouze na 1 grafickou jednotku. Funkci byste měli vždy volat SelectClipRgn pomocí textových jednotek.

Aplikace, které musí vzít měřítko grafických objektů v GDI, mohou použít řídicí znak tiskárny GETSCALINGFACTOR k určení měřítka faktoru. Tento faktor škálování ovlivňuje oříznutí. Pokud se k oříznutí grafiky používá oblast, GDI rozdělí souřadnice měřítkem. Pokud se oblast používá k oříznutí textu, GDI neprovádí žádné úpravy měřítka. Měřítko 1 způsobí rozdělení souřadnic 2; faktor škálování 2 způsobí rozdělení souřadnic 4; a tak dále.

CDC::SelectObject

Vybere objekt do kontextu zařízení.

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);

Parametry

pPen
Ukazatel na CPen objekt, který chcete vybrat.

pBrush
Ukazatel na CBrush objekt, který chcete vybrat.

pFont
Ukazatel na CFont objekt, který chcete vybrat.

pBitmap
Ukazatel na CBitmap objekt, který chcete vybrat.

pRgn
Ukazatel na CRgn objekt, který chcete vybrat.

pObject
Ukazatel na CGdiObject objekt, který chcete vybrat.

Návratová hodnota

Ukazatel na nahrazený objekt. Toto je ukazatel na objekt jedné z tříd odvozených od CGdiObject, například CPen, v závislosti na tom, jakou verzi funkce se používá. Vrácená hodnota je NULL , pokud dojde k chybě. Tato funkce může vrátit ukazatel na dočasný objekt. Tento dočasný objekt je platný pouze během zpracování jedné zprávy systému Windows. Další informace najdete na webu CGdiObject::FromHandle.

Verze členské funkce, která přebírá parametr oblasti, provádí stejnou úlohu jako členová SelectClipRgn funkce. Její návratová hodnota může být libovolná z následujících možností:

  • COMPLEXREGION Nová oblast výřezu má překrývající se ohraničení.

  • ERROR Kontext zařízení nebo oblast nejsou platné.

  • NULLREGION Nová oblast výřezu je prázdná.

  • SIMPLEREGION Nová oblast výřezu nemá žádné překrývající se ohraničení.

Poznámky

Třída CDC poskytuje pět verzí specializovaných pro konkrétní druhy objektů GDI, včetně per, štětců, písem, rastrových obrázků a oblastí. Nově vybraný objekt nahradí předchozí objekt stejného typu. Pokud je například pObject obecná verze SelectObject bodů na CPen objekt, nahradí funkce aktuální pero perem určeným pObject.

Aplikace může najednou vybrat rastrový obrázek do kontextu paměťového zařízení a pouze do jednoho kontextu paměťového zařízení. Formát rastrového obrázku musí být buď monochromatický, nebo kompatibilní s kontextem zařízení; pokud není, SelectObject vrátí chybu.

Pro Windows 3.1 a novější vrátí funkce stejnou hodnotu bez ohledu na to, SelectObject jestli se používá v metasouboru nebo ne. V předchozích verzích Systému Windows SelectObject vrátila nenulovou hodnotu pro úspěch a hodnotu 0 pro selhání při použití v metasouboru.

CDC::SelectPalette

Vybere logickou paletu určenou pPalette jako vybraný objekt palety kontextu zařízení.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

Parametry

pPalette
Identifikuje logickou paletu, která se má vybrat. Tato paleta již musí být vytvořena pomocí CPalette členské funkce CreatePalette.

bForceBackground
Určuje, jestli je logická paleta vynucená být paletou pozadí. Pokud bForceBackground je nenulová, vybraná paleta je vždy paleta pozadí bez ohledu na to, jestli má okno vstupní fokus. Pokud bForceBackground je 0 a kontext zařízení je připojen k oknem, logická paleta je paleta popředí, pokud má okno vstupní fokus.

Návratová hodnota

Ukazatel na CPalette objekt identifikující logickou paletu nahrazenou paletou určenou parametrem pPalette. NULL Pokud dojde k chybě.

Poznámky

Nová paleta se stane objektem palety používaný GDI k řízení barev zobrazených v kontextu zařízení a nahradí předchozí paletu.

Aplikace může vybrat logickou paletu do více než jednoho kontextu zařízení. Změny logické palety ale ovlivní všechny kontexty zařízení, pro které je vybraná. Pokud aplikace vybere paletu do více než jednoho kontextu zařízení, musí všechny kontexty zařízení patřit do stejného fyzického zařízení.

CDC::SelectStockObject

Vybere CGdiObject objekt, který odpovídá některému z předdefinovaných per, štětců nebo písem.

virtual CGdiObject* SelectStockObject(int nIndex);

Parametry

nIndex
Určuje požadovaný druh skladového objektu. Může to být jedna z následujících hodnot:

  • BLACK_BRUSH Černý kartáč.

  • DKGRAY_BRUSH Tmavě šedý štětec.

  • GRAY_BRUSH Šedý štětec.

  • HOLLOW_BRUSH Prázdný kartáč.

  • LTGRAY_BRUSH Světle šedý štětec.

  • NULL_BRUSH Nulový štětec.

  • WHITE_BRUSH Bílý kartáč.

  • BLACK_PEN Černé pero.

  • NULL_PEN Pero s hodnotou Null.

  • WHITE_PEN Bílé pero.

  • ANSI_FIXED_FONT Opravené systémové písmo ANSI.

  • ANSI_VAR_FONT Systémové písmo proměnné ANSI.

  • DEVICE_DEFAULT_FONT Písmo závislé na zařízení

  • OEM_FIXED_FONT Pevné písmo závislé na OEM

  • SYSTEM_FONT Systémové písmo. Ve výchozím nastavení systém Windows používá systémové písmo k kreslení nabídek, ovládacích prvků dialogového okna a dalšího textu. Nejlepší je ale nespoléhat na SYSTEM_FONT získání písma používaného dialogovými okny a dialogy. Místo toho použijte SystemParametersInfo funkci s parametrem SPI_GETNONCLIENTMETRICS k načtení aktuálního písma. SystemParametersInfo bere v úvahu aktuální motiv a poskytuje informace o písmu pro titulky, nabídky a dialogy zpráv.

  • SYSTEM_FIXED_FONT Systémové písmo s pevnou šířkou použité ve Windows před verzí 3.0. Tento objekt je k dispozici z důvodu kompatibility s dřívějšími verzemi Systému Windows.

  • DEFAULT_PALETTE Výchozí paleta barev. Tato paleta se skládá z 20 statických barev v systémové paletě.

Návratová hodnota

Ukazatel na CGdiObject objekt, který byl nahrazen, pokud je funkce úspěšná. Skutečný objekt, na který odkazuje, je CPen, CBrushnebo CFont objekt. Pokud je volání neúspěšné, návratová hodnota je NULL.

CDC::SetAbortProc

Nainstaluje proceduru přerušení tiskové úlohy.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

Parametry

lpfn
Ukazatel na funkci přerušení, která se má nainstalovat jako procedura přerušení. Další informace o funkci zpětného volání naleznete v tématu Funkce zpětného volání pro CDC::SetAbortProc.

Návratová hodnota

Určuje výsledek SetAbortProc funkce. Některé z následujících hodnot jsou pravděpodobnější než jiné, ale všechny jsou možné.

  • SP_ERROR Obecná chyba.

  • SP_OUTOFDISK Není k dispozici dostatek místa na disku pro zařazování a nebude k dispozici žádné další místo.

  • SP_OUTOFMEMORY Pro zařazování není k dispozici dostatek paměti.

  • SP_USERABORT Uživatel ukončil úlohu prostřednictvím Správce tisku.

Poznámky

Pokud aplikace povolí zrušení tiskové úlohy během zařazování, musí před spuštěním tiskové úlohy s členskou StartDoc funkcí nastavit funkci přerušení. Správce tisku volá funkci přerušení během zařazování, aby mohla aplikace zrušit tiskovou úlohu nebo zpracovat podmínky volného místa na disku. Pokud není nastavena žádná funkce přerušení, úloha tisku selže, pokud není dostatek místa na disku pro zařazování.

Funkce Microsoft Visual C++ zjednodušují vytváření funkce zpětného volání předané .SetAbortProc Adresa předaná EnumObjects členské funkci je ukazatel na funkci exportovanou s __declspec(dllexport) konvencí volání a __stdcall konvence volání.

Také nemusíte exportovat název funkce v EXPORTS příkazu v souboru definice modulu vaší aplikace. Místo toho můžete použít EXPORT modifikátor funkce, jak je uvedeno v

BOOL CALLBACK EXPORT AFunction( HDC, int );

aby kompilátor vygeneroval správný záznam exportu pro export podle názvu bez aliasů. To funguje pro většinu potřeb. V některých speciálních případech, jako je export funkce pomocí řadových nebo aliasů exportu, musíte stále použít EXPORTS příkaz v souboru definice modulu.

Registrační rozhraní zpětného volání jsou nyní typově bezpečná (musíte předat ukazatel funkce, který odkazuje na správný druh funkce pro konkrétní zpětné volání).

Všechny funkce zpětného volání musí před návratem do systému Windows soutisknout výjimky služby Microsoft Foundation, protože výjimky nelze vyvolat napříč hranicemi zpětného volání. Další informace o výjimkách najdete v článku Výjimky.

CDC::SetArcDirection

Nastaví směr kreslení, který se má použít pro obloukové a obdélníkové funkce.

int SetArcDirection(int nArcDirection);

Parametry

nArcDirection
Určuje nový směr oblouku. Tento parametr může být některou z následujících hodnot:

  • AD_COUNTERCLOCKWISE Obrázky nakreslené proti směru hodinových ručiček.

  • AD_CLOCKWISE Obrázky nakreslené po směru hodinových ručiček.

Návratová hodnota

Určuje starý směr oblouku, pokud je úspěšný; jinak 0.

Poznámky

Výchozí směr je proti směru hodinových ručiček. Funkce SetArcDirection určuje směr, ve kterém se nakreslely následující funkce:

Arc Výsečový
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

Voláním této funkce nastavíte kontext m_hAttribDCzařízení atributu .

virtual void SetAttribDC(HDC hDC);

Parametry

hDC
Kontext zařízení s Windows.

Poznámky

Tato členová funkce nepřipočítá kontext zařízení k objektu CDC . K objektu je připojen pouze kontext výstupního CDC zařízení.

CDC::SetBkColor

Nastaví aktuální barvu pozadí na zadanou barvu.

virtual COLORREF SetBkColor(COLORREF crColor);

Parametry

crColor
Určuje novou barvu pozadí.

Návratová hodnota

Předchozí barva pozadí jako hodnota barvy RGB. Pokud dojde k chybě, návratová hodnota je 0x80000000.

Poznámky

Pokud je OPAQUErežim pozadí , systém použije barvu pozadí k vyplnění mezer ve stylovaných čarách, mezery mezi šrafovanými čarami v štětcích a pozadím v buňkách znaků. Systém také používá barvu pozadí při převodu rastrových obrázků mezi barevnými a monochromatými kontexty zařízení.

Pokud zařízení nemůže zobrazit zadanou barvu, systém nastaví barvu pozadí na nejbližší fyzickou barvu.

CDC::SetBkMode

Nastaví režim pozadí.

int SetBkMode(int nBkMode);

Parametry

nBkMode
Určuje režim, který se má nastavit. Tento parametr může být některou z následujících hodnot:

  • OPAQUE Pozadí se vyplní aktuální barvou pozadí před nakreslením textu, šrafovaného štětce nebo pera. Toto je výchozí režim pozadí.

  • TRANSPARENT Před kreslením se pozadí nezmění.

Návratová hodnota

Předchozí režim pozadí.

Poznámky

Režim pozadí definuje, jestli systém před kreslením textu, šrafovanými štětci nebo jakýmkoli stylem pera, který není plnou čárou, odebere existující barvy pozadí na kreslicí ploše.

Příklad

Podívejte se na příklad pro CWnd::OnCtlColor.

CDC::SetBoundsRect

Řídí akumulace informací o ohraničujícího obdélníku pro zadaný kontext zařízení.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

Parametry

lpRectBounds
Odkazuje na RECT strukturu nebo CRect objekt, který slouží k nastavení ohraničujícího obdélníku. Rozměry obdélníku jsou uvedeny v logických souřadnicích. Tento parametr může být NULL.

flags
Určuje, jak se nový obdélník zkombinuje s kumulovaným obdélníkem. Tento parametr může být kombinací následujících hodnot:

  • DCB_ACCUMULATE Přidejte obdélník určený lpRectBounds ohraničující obdélník (pomocí operace sjednocení obdélníku).

  • DCB_DISABLE Vypněte akumulace hranic.

  • DCB_ENABLE Zapněte akumulace hranic. (Výchozí nastavení pro akumulace hranic je zakázané.)

Návratová hodnota

Aktuální stav ohraničujícího obdélníku, pokud je funkce úspěšná. Návratová flagshodnota může být například kombinací DCB_ hodnot:

  • DCB_ACCUMULATE Ohraničující obdélník není prázdný. Tato hodnota bude vždy nastavena.

  • DCB_DISABLE Akumulace hranic je vypnutá.

  • DCB_ENABLE Nahromadění hranic je zapnuté.

Poznámky

Systém Windows může udržovat ohraničující obdélník pro všechny operace kreslení. Tento obdélník může aplikace dotazovat a resetovat. Vazby výkresu jsou užitečné pro zneplatnění mezipaměti rastrových obrázků.

CDC::SetBrushOrg

Určuje původ, který rozhraní GDI přiřadí dalšímu štětec, který aplikace vybere v kontextu zařízení.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

Parametry

x
Určuje souřadnici x (v jednotkách zařízení) nového původu. Tato hodnota musí být v rozsahu 0 až 7.

y
Určuje souřadnici y (v jednotkách zařízení) nového původu. Tato hodnota musí být v rozsahu 0 až 7.

point
Určuje souřadnice x a y nového původu. Každá hodnota musí být v rozsahu 0 až 7. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Předchozí původ kartáče v jednotkách zařízení.

Poznámky

Výchozí souřadnice pro původ štětce jsou (0, 0). Chcete-li změnit původ štětce, zavolejte UnrealizeObject funkci objektuCBrush, volání SetBrushOrgSelectObject a volání členské funkce a vyberte štětec do kontextu zařízení.

Nepoužívejte SetBrushOrg se skladovými CBrush objekty.

CDC::SetColorAdjustment

Nastaví hodnoty úprav barev pro kontext zařízení pomocí zadaných hodnot.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

Parametry

lpColorAdjust
Odkazuje na datovou COLORADJUSTMENT strukturu obsahující hodnoty úprav barev.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Hodnoty úprav barev slouží k úpravě vstupní barvy zdrojového rastrového obrázku pro volání CDC::StretchBlt členské funkce při HALFTONE nastavení režimu.

CDC::SetDCBrushColor

Nastaví aktuální barvu štětce kontextu zařízení (DC) na zadanou hodnotu barvy.

COLORREF SetDCBrushColor(COLORREF crColor);

Parametry

crColor
Určuje novou barvu štětce.

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota určuje předchozí barvu štětce řadiče domény jako COLORREF hodnotu.

Pokud funkce selže, návratová hodnota je CLR_INVALID.

Poznámky

Tato metoda emuluje funkce funkce SetDCBrushColor, jak je popsáno v sadě Windows SDK.

CDC::SetDCPenColor

Nastaví aktuální barvu pera pro kontext zařízení (DC) na zadanou hodnotu barvy.

COLORREF SetDCPenColor(COLORREF crColor);

Parametry

crColor
Určuje novou barvu pera.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato členová funkce využívá funkci SetDCPenColorWin32, jak je popsáno v sadě Windows SDK.

CDC::SetGraphicsMode

Nastaví grafický režim pro zadaný kontext zařízení.

int SetGraphicsMode(int iMode);

Parametry

iMode
Určuje grafický režim. Seznam hodnot, které tento parametr může vzít, naleznete v tématu SetGraphicsMode.

Návratová hodnota

Vrátí starý grafický režim při úspěchu.

Vrátí hodnotu 0 při selhání. Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

Poznámky

Tato metoda zabalí funkci SetGraphicsModeGDI systému Windows .

CDC::SetLayout

Voláním této členské funkce můžete změnit rozložení textu a grafiky kontextu zařízení zprava doleva, což je standardní rozložení pro jazykové verze, jako je arabština a hebrejština.

DWORD SetLayout(DWORD dwLayout);

Parametry

dwLayout
Rozložení kontextu zařízení a příznaky ovládacích prvků rastrového obrázku Může to být kombinace následujících hodnot.

Hodnota Význam
LAYOUT_BITMAPORIENTATIONPRESERVED Zakáže všechny reflexe volání do CDC::BitBlt a CDC::StretchBlt.
LAYOUT_RTL Nastaví výchozí vodorovné rozložení tak, aby bylo zprava doleva.
LAYOUT_LTR Nastaví výchozí rozložení tak, aby bylo zleva doprava.

Návratová hodnota

Pokud je to úspěšné, předchozí rozložení kontextu zařízení.

V případě neúspěchu . GDI_ERROR Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

Poznámky

Za normálních okolností byste nezavolali SetLayout okno. Rozložení zprava doleva v okně řídíte nastavením rozšířených stylů oken, například WS_EX_RTLREADING. Kontext zařízení, například tiskárna nebo metasoubor, toto rozložení nezdědí. Jediným způsobem, jak nastavit kontext zařízení pro rozložení zprava doleva, je voláním SetLayout.

Pokud voláte SetLayout(LAYOUT_RTL), SetLayout automaticky změní režim mapování na MM_ISOTROPIC. V důsledku toho se následné volání GetMapMode vrátí MM_ISOTROPIC místo MM_TEXT.

V některých případech, například u mnoha rastrových obrázků, můžete chtít zachovat rozložení zleva doprava. V těchto případech vykreslujte obrázek voláním BitBlt nebo StretchBlt, pak nastavte rastrový řídicí příznak pro dwLayout hodnotu LAYOUT_BITMAPORIENTATIONPRESERVED.

Jakmile změníte rozložení příznakem LAYOUT_RTL , příznaky, které obvykle určují pravý nebo levý, jsou obrácené. Abyste se vyhnuli nejasnostem, můžete chtít definovat alternativní názvy standardních příznaků. Seznamnavrhovaných SetLayout

CDC::SetMapMode

Nastaví režim mapování.

virtual int SetMapMode(int nMapMode);

Parametry

nMapMode
Určuje nový režim mapování. Může to být libovolná z následujících hodnot:

  • MM_ANISOTROPIC Logické jednotky se převedou na libovolné jednotky s libovolně škálovanými osami. Nastavením režimu MM_ANISOTROPIC mapování se nezmění aktuální okno ani nastavení oblasti zobrazení. Pokud chcete změnit jednotky, orientaci a škálování, zavolejte SetWindowExt funkce a SetViewportExt členské funkce.

  • MM_HIENGLISH Každá logická jednotka se převede na 0,001 palce. Kladné x je vpravo; pozitivní y je vzhůru.

  • MM_HIMETRIC Každá logická jednotka se převede na 0,01 milimetru. Kladné x je vpravo; pozitivní y je vzhůru.

  • MM_ISOTROPIC Logické jednotky jsou převedeny na libovolné jednotky s rovnoměrně škálovanými osami; to znamená, že 1 jednotka podél osy x se rovná 1 jednotce podél osy y. SetWindowExt Pomocí členských SetViewportExt funkcí určete požadované jednotky a orientaci os. GDI provádí úpravy podle potřeby, aby jednotky x a y zůstaly stejné velikosti.

  • MM_LOENGLISH Každá logická jednotka se převede na 0,01 palce. Kladné x je vpravo; pozitivní y je vzhůru.

  • MM_LOMETRIC Každá logická jednotka se převede na 0,1 milimetru. Kladné x je vpravo; pozitivní y je vzhůru.

  • MM_TEXT Každá logická jednotka se převede na 1 pixel zařízení. Kladné x je vpravo; pozitivní y je dole.

  • MM_TWIPS Každá logická jednotka se převede na 1/20 bodu. (Protože bod je 1/72 palce, twip je 1/1440 palce.) Kladné x je vpravo; pozitivní y je vzhůru.

Návratová hodnota

Předchozí režim mapování.

Poznámky

Režim mapování definuje měrnou jednotku použitou k převodu logických jednotek na jednotky zařízení; definuje také orientaci os x a y zařízení. GDI používá režim mapování k převodu logických souřadnic na příslušné souřadnice zařízení. Režim MM_TEXT umožňuje aplikacím pracovat v pixelech zařízení, kde se 1 jednotka rovná 1 pixel. Fyzická velikost pixelu se liší od zařízení po zařízení.

MM_HIENGLISHRežimy , , MM_LOMETRICMM_HIMETRICMM_LOENGLISHa MM_TWIPS jsou užitečné pro aplikace, které musí vykreslit fyzicky smysluplné jednotky (například palce nebo milimetry). Režim MM_ISOTROPIC zajišťuje poměr stran 1:1, což je užitečné, když je důležité zachovat přesný tvar obrázku. Režim MM_ANISOTROPIC umožňuje nezávisle upravit souřadnice x a y.

Poznámka:

Pokud voláte SetLayout změnu rozložení DC (kontext zařízení) na rozložení zprava doleva, SetLayout automaticky změní režim mapování na MM_ISOTROPIC.

Příklad

Podívejte se na příklad pro CView::OnPrepareDC.

CDC::SetMapperFlags

Změní metodu použitou mapovačem písma při převodu logického písma na fyzické písmo.

DWORD SetMapperFlags(DWORD dwFlag);

Parametry

dwFlag
Určuje, jestli se mapovač písma pokusí shodovat s výškou a šířkou stran písma na zařízení. Pokud je ASPECT_FILTERINGtato hodnota , mapper vybere pouze písma, jejichž x-aspekt a y-aspekt přesně odpovídají těm zadaným zařízením.

Návratová hodnota

Předchozí hodnota příznaku font-mapper.

Poznámky

Aplikace může použít SetMapperFlags k tomu, aby se mapovač písma pokusil zvolit pouze fyzické písmo, které přesně odpovídá poměru stran zadaného zařízení.

Aplikace, která používá pouze rastrová písma, může funkci použít SetMapperFlags k zajištění, že písmo vybrané mapovačem písma je atraktivní a čitelné na zadaném zařízení. Aplikace, které používají škálovatelná písma (TrueType), obvykle nepoužívají SetMapperFlags.

Pokud žádné fyzické písmo nemá poměr stran odpovídající specifikaci v logickém písmu, GDI zvolí nový poměr stran a vybere písmo, které odpovídá tomuto novému poměru stran.

CDC::SetMiterLimit

Nastaví limit pro délku spojení miterů pro kontext zařízení.

BOOL SetMiterLimit(float fMiterLimit);

Parametry

fMiterLimit
Určuje nový limit miteru pro kontext zařízení.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Délka miteru je definována jako vzdálenost od průsečíku stěn přímky uvnitř spojení k průsečíku stěn čáry na vnější straně spojení. Limit miteru je maximální povolený poměr délky miteru k šířce čáry. Výchozí limit miteru je 10,0.

CDC::SetOutputDC

Voláním této členské funkce nastavíte kontext m_hDCvýstupního zařízení .

virtual void SetOutputDC(HDC hDC);

Parametry

hDC
Kontext zařízení s Windows.

Poznámky

Tuto členovou funkci lze volat pouze v případě, že k objektu CDC nebyl připojen kontext zařízení. Tato členová funkce nastaví m_hDC kontext zařízení, ale nepřiponí k objektu CDC kontext zařízení.

CDC::SetPixel

Nastaví pixel v bodě určeném k nejbližší aproximaci barvy určené crColor.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

Parametry

x
Určuje logickou souřadnici x bodu, který se má nastavit.

y
Určuje logickou souřadnici y bodu, který se má nastavit.

crColor
Hodnota COLORREF RGB, která určuje barvu použitou k vykreslení bodu. COLORREF Popis této hodnoty najdete v sadě Windows SDK.

point
Určuje logické souřadnice x a y bodu, který se má nastavit. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Hodnota RGB pro barvu, kterou bod maluje. Tato hodnota se může lišit od hodnoty určené crColor v případě, že se použije aproximace této barvy. Pokud funkce selže (pokud je bod mimo oblast výřezu), návratová hodnota je -1.

Poznámky

Bod musí být v oblasti výřezu. Pokud bod není v oblasti výřezu, funkce nic nedělá.

Funkci nepodporují SetPixel všechna zařízení. Pokud chcete zjistit, jestli zařízení podporuje SetPixel, zavolejte GetDeviceCaps členovou funkci s indexem RASTERCAPS a zkontrolujte návratovou hodnotu příznaku RC_BITBLT .

CDC::SetPixelV

Nastaví pixel na zadaných souřadnicích na nejbližší aproximaci zadané barvy.

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

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

Parametry

x
Určuje souřadnici x v logických jednotkách bodu, který se má nastavit.

y
Určuje souřadnici y v logických jednotkách bodu, který se má nastavit.

crColor
Určuje barvu, která se má použít k vykreslení bodu.

point
Určuje logické souřadnice x a y bodu, který se má nastavit. Pro tento parametr můžete předat datovou POINT CPoint strukturu nebo objekt.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Bod musí být v oblasti výřezu i viditelné části povrchu zařízení. Ne všechna zařízení podporují členovu funkci. Další informace najdete RC_BITBLT v možnostech CDC::GetDeviceCaps členské funkce. SetPixelV je rychlejší než SetPixel proto, že nemusí vracet barevnou hodnotu namalovaného bodu.

CDC::SetPolyFillMode

Nastaví režim mnohoúhelníku.

int SetPolyFillMode(int nPolyFillMode);

Parametry

nPolyFillMode
Určuje nový režim plnění. Tato hodnota může být buď ALTERNATE nebo WINDING. Výchozí režim nastavený ve Windows je ALTERNATE.

Návratová hodnota

Předchozí režim plnění, pokud byl úspěšný; jinak 0.

Poznámky

Pokud je ALTERNATErežim mnohoúhelníku , systém vyplní oblast mezi lichými a sudými čísly mnohoúhelníku na každé čáře skenování. To znamená, že systém vyplní oblast mezi první a druhou stranou, mezi třetí a čtvrtou stranou atd. Tento režim je výchozí.

Pokud je WINDINGrežim mnohoúhelníku , systém používá směr, ve kterém byl obrázek vykreslen k určení, zda se má vyplnit oblast. Každý segment čáry v mnohoúhelníku je nakreslen ve směru hodinových ručiček nebo proti směru hodinových ručiček. Vždy, když imaginární čára vytažená z uzavřené oblasti na vnější část obrázku prochází segmentem ručiček po směru hodinových ručiček, zvýší se počet. Když čára prochází segmentem čáry proti směru hodinových ručiček, je počet dekrementován. Oblast se vyplní, pokud je počet nenulový, když čára dosáhne vnější části obrázku.

CDC::SetROP2

Nastaví aktuální režim kreslení.

int SetROP2(int nDrawMode);

Parametry

nDrawMode
Určuje nový režim kreslení. Může to být libovolná z následujících hodnot:

  • R2_BLACK Pixel je vždy černý.

  • R2_WHITE Pixel je vždy bílý.

  • R2_NOP Pixel zůstane beze změny.

  • R2_NOT Pixel je inverzní k barvě obrazovky.

  • R2_COPYPEN Pixel je barva pera.

  • R2_NOTCOPYPEN Pixel je inverzní funkce barvy pera.

  • R2_MERGEPENNOT Pixel je kombinace barvy pera a inverzní funkce k barvě obrazovky (konečný pixel = (~ pixel obrazovky) | pero).

  • R2_MASKPENNOTPixel je kombinace barev, které jsou společné pro pero i inverzní funkci obrazovky (konečný pixel = (~ pixel obrazovky). &

  • R2_MERGENOTPEN Pixel je kombinace barvy obrazovky a inverzní funkce barvy pera (konečný pixel = (~ pero) | pixel obrazovky).

  • R2_MASKNOTPEN Pixel je kombinace barev, které jsou společné pro obrazovku i inverzní funkci pera (konečný pixel = (~ pero) & pixel obrazovky).

  • R2_MERGEPEN Pixel je kombinace barvy pera a barvy obrazovky (konečný pixel = pixel obrazovky pera | ).

  • R2_NOTMERGEPEN Pixel je inverzní funkce R2_MERGEPEN barvy (konečný pixel = ~ ( | pixel pera)).

  • R2_MASKPEN Pixel je kombinace barev, které jsou společné pro pero i obrazovku (konečný pixel = pixel obrazovky pera & ).

  • R2_NOTMASKPEN Pixel je inverzní funkce R2_MASKPEN barvy (konečný pixel = ~ ( & pixel pera)).

  • R2_XORPEN Pixel je kombinace barev, které jsou v peru nebo na obrazovce, ale ne v obou (konečný pixel = pixel obrazovky pera ^ ).

  • R2_NOTXORPEN Pixel je inverzní funkce R2_XORPEN barvy (konečný pixel = ~ ( ^ pixel pera)).

Návratová hodnota

Předchozí režim kreslení.

Může to být libovolná hodnota uvedená v sadě Windows SDK.

Poznámky

Režim kreslení určuje, jak se barvy pera a vnitřní části vyplněných objektů kombinují s barvou, která je již na ploše zobrazení.

Režim kreslení je určen pouze pro rastrová zařízení; nevztahuje se na vektorová zařízení. Režimy kreslení jsou binární raster-operace kódy představující všechny možné logické kombinace dvou proměnných, pomocí binárních operátorů , a (exkluzivní |) a unární operace ~.^ |&

CDC::SetStretchBltMode

Nastaví režim rastrového roztažení pro členovou StretchBlt funkci.

int SetStretchBltMode(int nStretchMode);

Parametry

nStretchMode
Určuje režim roztažení. Může to být libovolná z následujících hodnot:

Hodnota Popis
BLACKONWHITE Provede logickou & operaci pomocí hodnot barev pro eliminované a existující pixely. Pokud je rastrový obrázek monochromatický rastrový obrázek, zachová tento režim černé pixely na úkor bílých pixelů.
COLORONCOLOR Odstraní pixely. Tento režim odstraní všechny odstraněné čáry pixelů, aniž by se pokusil zachovat jejich informace.
HALFTONE Mapuje pixely ze zdrojového obdélníku do bloků pixelů v cílovém obdélníku. Průměrná barva nad cílovým blokem pixelů je přibližná barva zdrojových pixelů.
Po nastavení HALFTONE režimu roztažení musí aplikace volat funkci SetBrushOrgEx Win32 pro nastavení původu štětce. Pokud se to nepodaří, dojde k chybnému zarovnání kartáče.
STRETCH_ANDSCANS Windows 95/98: Stejné jako BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98: Stejné jako COLORONCOLOR
STRETCH_HALFTONE Windows 95/98: Stejné jako HALFTONE.
STRETCH_ORSCANS Windows 95/98: Stejné jako WHITEONBLACK
WHITEONBLACK Provede logickou | operaci pomocí hodnot barev pro eliminované a existující pixely. Pokud je rastrový obrázek monochromatický rastrový obrázek, zachová tento režim bílé pixely na úkor černých pixelů.

Návratová hodnota

Předchozí režim roztažení. Může to být STRETCH_ANDSCANS, STRETCH_DELETESCANSnebo STRETCH_ORSCANS.

Poznámky

Režim rastrového roztažení definuje, jak se informace z rastrových obrázků komprimují pomocí funkce.

Režimy BLACKONWHITE(STRETCH_ANDSCANS) a WHITEONBLACK(STRETCH_ORSCANS) se obvykle používají k zachování pixelů popředí v monochromatických bitmapách. Režim COLORONCOLOR(STRETCH_DELETESCANS) se obvykle používá k zachování barvy v barevných bitmapách.

Režim HALFTONE vyžaduje větší zpracování zdrojové image než ostatní tři režimy; je pomalejší než ostatní, ale vytváří obrázky s vyšší kvalitou. Je také nutné volat po nastavení HALFTONE režimu, SetBrushOrgEx aby nedošlo k nesprávnému zarovnání štětce.

V závislosti na možnostech ovladače zařízení může být k dispozici i více režimů roztažení.

CDC::SetTextAlign

Nastaví příznaky zarovnání textu.

UINT SetTextAlign(UINT nFlags);

Parametry

nFlags
Určuje příznaky zarovnání textu. Příznaky určují vztah mezi bodem a obdélníkem, který ohraničuje text. Bod může být buď aktuální pozice, nebo souřadnice určené funkcí textového výstupu. Obdélník, který ohraničuje text, je definován sousedními buňkami znaků v textovém řetězci. Parametr nFlags může být jeden nebo více příznaků z následujících tří kategorií. Zvolte pouze jeden příznak z každé kategorie. První kategorie ovlivňuje zarovnání textu ve směru x:

  • TA_CENTER Zarovná bod do vodorovného středu ohraničujícího obdélníku.

  • TA_LEFT Zarovná bod s levou stranou ohraničujícího obdélníku. Toto je výchozí nastavení.

  • TA_RIGHT Zarovná bod s pravou stranou ohraničujícího obdélníku.

Druhá kategorie má vliv na zarovnání textu ve směru y:

  • TA_BASELINE Zarovná bod se základní čárou vybraného písma.

  • TA_BOTTOM Zarovná bod s dolní částí ohraničujícího obdélníku.

  • TA_TOP Zarovná bod s horní částí ohraničujícího obdélníku. Toto je výchozí nastavení.

Třetí kategorie určuje, zda je aktuální pozice aktualizována při zápisu textu:

  • TA_NOUPDATECP Neaktualizuje aktuální pozici po každém volání funkce textového výstupu. Toto je výchozí nastavení.

  • TA_UPDATECP Aktualizuje aktuální pozici x po každém volání funkce textového výstupu. Nová pozice je na pravé straně ohraničujícího obdélníku textu. Při nastavení tohoto příznaku jsou souřadnice zadané ve volání členské TextOut funkce ignorovány.

Návratová hodnota

Předchozí nastavení zarovnání textu, pokud bylo úspěšné. Bajt s nízkým pořadím obsahuje vodorovné nastavení a bajt s vysokým pořadím obsahuje svislé nastavení; jinak 0.

Poznámky

ExtTextOut Členské TextOut funkce používají tyto příznaky při umístění řetězce textu na displeji nebo zařízení. Příznaky určují vztah mezi konkrétním bodem a obdélníkem, který ohraničuje text. Souřadnice tohoto bodu jsou předány jako parametry TextOut členské funkci. Obdélník, který ohraničuje text, je tvořen sousedními buňkami znaků v textovém řetězci.

CDC::SetTextCharacterExtra

Nastaví velikost mezer mezi znaky.

int SetTextCharacterExtra(int nCharExtra);

Parametry

nCharExtra
Určuje množství nadbytečného místa (v logických jednotkách), které se má přidat ke každému znaku. Pokud aktuální režim mapování není MM_TEXT, nCharExtra transformuje se a zaokrouhlí na nejbližší pixel.

Návratová hodnota

Množství předchozích mezer mezi znaky.

Poznámky

GDI přidá toto řádkování ke každému znaku, včetně znaků zalomení, když zapíše řádek textu do kontextu zařízení. Výchozí hodnota pro množství mezer mezi znaky je 0.

CDC::SetTextColor

Nastaví barvu textu na zadanou barvu.

virtual COLORREF SetTextColor(COLORREF crColor);

Parametry

crColor
Určuje barvu textu jako hodnotu barvy RGB.

Návratová hodnota

Hodnota RGB pro předchozí barvu textu.

Poznámky

Systém používá tuto barvu textu při psaní textu do tohoto kontextu zařízení a také při převodu rastrových obrázků mezi barevnými a monochromatelnými kontexty zařízení.

Pokud zařízení nemůže reprezentovat zadanou barvu, systém nastaví barvu textu na nejbližší fyzickou barvu. Barva pozadí znaku je určena funkcemi SetBkColor a SetBkMode členy.

Příklad

Podívejte se na příklad pro CWnd::OnCtlColor.

CDC::SetTextJustification

Přidá mezeru ke znakům zalomení v řetězci.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

Parametry

nBreakExtra
Určuje celkovou nadbytečnou mezeru, která se má přidat na řádek textu (v logických jednotkách). Pokud aktuální režim mapování není MM_TEXT, hodnota zadaná tímto parametrem se převede na aktuální režim mapování a zaokrouhlí se na nejbližší jednotku zařízení.

nBreakCount
Určuje početznakůch

Návratová hodnota

Jeden, pokud je funkce úspěšná; jinak 0.

Poznámky

Aplikace může pomocí GetTextMetrics členských funkcí načíst znak konce písma.

SetTextJustification Po volání členské funkce volání funkce textového výstupu (například TextOut) rozdělí zadané nadbytečné místo rovnoměrně mezi zadaný počet znaků přerušení. Znak zalomení je obvykle znak mezery (ASCII 32), ale může být definován písmem jako nějaký jiný znak.

Členské funkce GetTextExtent se obvykle používá s SetTextJustification. GetTextExtent vypočítá šířku dané čáry před zarovnáním. Aplikace může určit, kolik místa se má v parametru nBreakExtra zadat, odečtením hodnoty vrácené GetTextExtent šířkou řetězce po zarovnání.

Pomocí SetTextJustification funkce lze zarovnat čáru, která obsahuje více spuštění v různých písmech. V tomto případě musí být řádek vytvořen kusmeální zarovnáním a zápisem každého spuštění samostatně.

Vzhledem k tomu, že během zarovnání může dojít k chybám zaokrouhlení, systém uchovává spuštěný chybový termín, který definuje aktuální chybu. Když zarovnáte řádek, který obsahuje více spuštění, GetTextExtent automaticky použije tento chybový termín při výpočtu rozsahu dalšího spuštění. To umožňuje funkci textového výstupu spojit chybu s novým spuštěním.

Po zarovnání každého řádku musí být tento chybový termín vymazán, aby se zabránilo jeho začlenění do dalšího řádku. Termín lze vymazat voláním SetTextJustification s nastavenou nBreakExtra na hodnotu 0.

CDC::SetViewportExt

Nastaví rozsahy x a y zobrazení kontextu zařízení.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

Parametry

cx
Určuje rozsah zobrazení x (v jednotkách zařízení).

cy
Určuje rozsah zobrazení (v jednotkách zařízení).

size
Určuje rozsahy x a y oblasti zobrazení (v jednotkách zařízení).

Návratová hodnota

Předchozí rozsahy oblasti zobrazení jako objektu CSize . Pokud dojde k chybě, souřadnice x a y vráceného CSize objektu jsou obě nastaveny na hodnotu 0.

Poznámky

Oblast zobrazení spolu s oknem kontextu zařízení definuje, jak GDI mapuje body v logickém souřadnicovém systému na body v souřadnicovém systému skutečného zařízení. Jinými slovy definují, jak GDI převádí logické souřadnice na souřadnice zařízení.

Pokud jsou nastaveny následující režimy mapování, volání a SetWindowExt SetViewportExt jsou ignorována:

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

Při MM_ISOTROPIC nastavení režimu musí aplikace před voláním SetWindowExt volat SetViewportExtčlenovou funkci .

Příklad

Podívejte se na příklad pro CView::OnPrepareDC.

CDC::SetViewportOrg

Nastaví původ oblasti zobrazení kontextu zařízení.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

Parametry

x
Určuje souřadnici x (v jednotkách zařízení) původu oblasti zobrazení. Hodnota musí být v rozsahu souřadnicového systému zařízení.

y
Určuje souřadnici y (v jednotkách zařízení) původu oblasti zobrazení. Hodnota musí být v rozsahu souřadnicového systému zařízení.

point
Určuje původ oblasti zobrazení. Hodnoty musí být v rozsahu souřadnicového systému zařízení. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Předchozí původ oblasti zobrazení (v souřadnicích zařízení) jako CPoint objekt.

Poznámky

Oblast zobrazení spolu s oknem kontextu zařízení definuje, jak GDI mapuje body v logickém souřadnicovém systému na body v souřadnicovém systému skutečného zařízení. Jinými slovy definují, jak GDI převádí logické souřadnice na souřadnice zařízení.

Původ oblasti zobrazení označuje bod v souřadnicovém systému zařízení, na který GDI mapuje původ okna, bod v logickém souřadnicovém systému určeném členovou SetWindowOrg funkcí. GDI mapuje všechny ostatní body podle stejného procesu potřebného k mapování původu okna na zdroj oblasti zobrazení. Například všechny body v kruhu kolem bodu v počátku okna budou v kruhu kolem bodu na počátku oblasti zobrazení. Podobně budou všechny body v čáře, která prochází původem okna, na čáře, která prochází původem oblasti zobrazení.

Příklad

Podívejte se na příklad pro CView::OnPrepareDC.

CDC::SetWindowExt

Nastaví rozsahy x a y okna přidruženého k kontextu zařízení.

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

Parametry

cx
Určuje rozsah x (v logických jednotkách) okna.

cy
Určuje rozsah y (v logických jednotkách) okna.

size
Určuje rozsahy x a y (v logických jednotkách) okna.

Návratová hodnota

Předchozí rozsahy okna (v logických jednotkách) jako CSize objekt. Pokud dojde k chybě, souřadnice x a y vráceného CSize objektu jsou obě nastaveny na hodnotu 0.

Poznámky

Okno spolu se zobrazením kontextu zařízení definuje, jak GDI mapuje body v logickém souřadnicovém systému na body v souřadnicovém systému zařízení.

Při nastavení následujících režimů mapování se volání SetWindowExt a SetViewportExt funkce ignorují:

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

Při MM_ISOTROPIC nastavení režimu musí aplikace před voláním volat SetViewportExtčlenovou SetWindowExt funkci .

Příklad

Podívejte se na příklad pro CView::OnPrepareDC.

CDC::SetWindowOrg

Nastaví původ okna kontextu zařízení.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

Parametry

x
Určuje logickou souřadnici x nového původu okna.

y
Určuje logickou souřadnici y nového původu okna.

point
Určuje logické souřadnice nového původu okna. Pro tento parametr můžete předat POINT strukturu nebo CPoint objekt.

Návratová hodnota

Předchozí původ okna jako objektu CPoint .

Poznámky

Okno spolu se zobrazením kontextu zařízení definuje, jak GDI mapuje body v logickém souřadnicovém systému na body v souřadnicovém systému zařízení.

Počátek okna označuje bod v logickém souřadnicovém systému, ze kterého GDI mapuje původ oblasti zobrazení, bod v souřadnicovém systému zařízení určeném SetWindowOrg funkcí. GDI mapuje všechny ostatní body podle stejného procesu potřebného k mapování původu okna na zdroj oblasti zobrazení. Například všechny body v kruhu kolem bodu v počátku okna budou v kruhu kolem bodu na počátku oblasti zobrazení. Podobně budou všechny body v čáře, která prochází původem okna, na čáře, která prochází původem oblasti zobrazení.

CDC::SetWorldTransform

Nastaví dvojrozměrnou lineární transformaci mezi světovým prostorem a prostorem stránky pro zadaný kontext zařízení. Tuto transformaci lze použít ke škálování, otočení, překládání nebo překladu grafického výstupu.

BOOL SetWorldTransform(const XFORM& rXform);

Parametry

rXform
Odkaz na XFORM strukturu, která obsahuje transformační data.

Návratová hodnota

Vrátí nenulovou hodnotu úspěchu.

Vrátí hodnotu 0 při selhání.

Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError.

Poznámky

Tato metoda zabalí funkci SetWorldTransformGDI systému Windows .

CDC::StartDoc

Informuje ovladač zařízení, že se spouští nová tisková úloha a že všechny následné StartPage a EndPage volání by měly být zařazovány pod stejnou úlohu, dokud EndDoc nedojde k volání.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

Parametry

lpDocInfo
Odkazuje na DOCINFO strukturu obsahující název souboru dokumentu a název výstupního souboru.

lpszDocName
Ukazatel na řetězec obsahující název souboru dokumentu.

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota je větší než nula. Tato hodnota je identifikátor tiskové úlohy pro dokument.

Pokud funkce selže, návratová hodnota je menší nebo rovna nule.

Poznámky

Tím zajistíte, že dokumenty delší než jedna stránka nebudou interspersovány s jinými úlohami.

U systémů Windows verze 3.1 a novějších nahrazuje tato funkce řídicí znak tiskárny STARTDOC . Pomocí této funkce zajistíte, že dokumenty obsahující více než jednu stránku nebudou interspersovány s jinými tiskovými úlohami.

StartDoc nemělo by se používat uvnitř metasouborů.

Příklad

Tento fragment kódu získá výchozí tiskárnu, otevře tiskovou úlohu a zařadí jednu stránku s textem "Hello, World!". Vzhledem k tomu, že text vytištěný tímto kódem není škálován na logické jednotky tiskárny, může být výstupní text v malých písmenech, že výsledek není čitelný. Funkce škálování CDC, například SetMapMode, SetViewportOrga SetWindowExt, lze použít k opravě škálování.

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

Voláním této členské funkce připravte ovladač tiskárny na příjem dat.

int StartPage();

Návratová hodnota

Větší než nebo rovno 0, pokud je funkce úspěšná, nebo záporná hodnota, pokud došlo k chybě.

Poznámky

StartPageNEWFRAME nahrazuje a BANDINFO unikne.

Přehled posloupnosti tiskových volání najdete v StartDoc členské funkci.

Systém zakáže členovou ResetDC funkci mezi voláními a StartPage EndPage.

Příklad

Podívejte se na příklad pro CDC::StartDoc.

CDC::StretchBlt

Zkopíruje bitmapu ze zdrojového obdélníku do cílového obdélníku a roztáhne nebo ji zkomprimuje tak, aby odpovídala rozměrům cílového obdélníku.

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

Parametry

x
Určuje souřadnici x (v logických jednotkách) levého horního rohu cílového obdélníku.

y
Určuje souřadnici y (v logických jednotkách) levého horního rohu cílového obdélníku.

nWidth
Určuje šířku (v logických jednotkách) cílového obdélníku.

nHeight
Určuje výšku (v logických jednotkách) cílového obdélníku.

pSrcDC
Určuje kontext zdrojového zařízení.

xSrc
Určuje souřadnici x (v logických jednotkách) levého horního rohu zdrojového obdélníku.

ySrc
Určuje souřadnici y (v logických jednotkách) levého horního rohu zdrojového obdélníku.

nSrcWidth
Určuje šířku (v logických jednotkách) zdrojového obdélníku.

nSrcHeight
Určuje výšku (v logických jednotkách) zdrojového obdélníku.

dwRop
Určuje rastrovou operaci, která má být provedena. Kódy rastrové operace určují, jak rozhraní GDI kombinuje barvy ve výstupních operacích, které zahrnují aktuální štětec, možnou zdrojovou bitmapu a cílovou bitmapu. Tento parametr může mít jednu z následujících hodnot:

  • BLACKNESS Změní veškerý výstup na černou.

  • DSTINVERT Invertuje cílovou bitmapu.

  • MERGECOPY Kombinuje vzor a zdrojový rastrový obrázek pomocí logického operátoru AND .

  • MERGEPAINT Kombinuje invertovaný zdrojový rastrový obrázek s cílovou bitmapou pomocí logického operátoru OR .

  • NOTSRCCOPY Zkopíruje invertovaný zdrojový rastr do cíle.

  • NOTSRCERASE Invertuje výsledek kombinování cílových a zdrojových rastrových obrázků pomocí logického operátoru OR .

  • PATCOPY Zkopíruje vzor do cílového rastrového obrázku.

  • PATINVERT Kombinuje cílovou bitmapu se vzorem pomocí logického operátoru XOR .

  • PATPAINT Kombinuje invertovaný zdrojový rastrový obrázek se vzorem pomocí logického operátoru OR . Kombinuje výsledek této operace s cílovou bitmapou pomocí logického operátoru OR .

  • SRCAND Kombinuje pixely cílového a zdrojového rastrového obrázku pomocí logického operátoru AND .

  • SRCCOPY Zkopíruje zdrojový rastrový obrázek do cílového rastrového obrázku.

  • SRCERASE Invertuje cílovou bitmapu a kombinuje výsledek se zdrojovým rastrem pomocí logického operátoru AND .

  • SRCINVERT Kombinuje pixely cílového a zdrojového rastrového obrázku pomocí logického operátoru XOR .

  • SRCPAINT Kombinuje pixely cílového a zdrojového rastrového obrázku pomocí logického operátoru OR .

  • WHITENESS Změní veškerý výstup na bílou.

Návratová hodnota

Nenulové, pokud je bitmapa nakreslena; jinak 0.

Poznámky

Funkce používá režim roztažení kontextu cílového zařízení (nastavený ) SetStretchBltModek určení, jak roztáhnout nebo komprimovat rastrový obrázek.

Funkce StretchBlt přesune rastrový obrázek ze zdrojového zařízení zadaného pSrcDC cílovým zařízením reprezentovaným objektem kontextu zařízení, jehož členovou funkci se volá. Parametry xSrc, ySrca nSrcWidthnSrcHeight parametry definují levý horní roh a rozměry zdrojového obdélníku. Parametry xa , nWidthynHeight poskytují levý horní roh a rozměry cílového obdélníku. Rastrová operace určená definováním dwRop způsobu kombinování zdrojového rastrového obrázku a bitů, které jsou již v cílovém zařízení kombinovány.

Funkce StretchBlt vytvoří zrcadlový obrázek rastrového obrázku, pokud se znaménka nSrcWidth a nWidth nebo nSrcHeight a nHeight parametry liší. Pokud nSrcWidth a nWidth mají různé znaménka, funkce vytvoří zrcadlový obrázek rastru podél osy x. Pokud nSrcHeight a nHeight mají různé znaménka, funkce vytvoří zrcadlový obrázek rastrového obrázku podél osy y.

Funkce StretchBlt roztáhne nebo zkomprimuje zdrojový rastrový obrázek v paměti a potom zkopíruje výsledek do cíle. Pokud se má vzor sloučit s výsledkem, nebude sloučen, dokud se roztažený zdrojový rastrový obrázek nezkopíruje do cíle. Pokud se použije štětec, je to vybraný štětec v kontextu cílového zařízení. Cílové souřadnice jsou transformovány podle kontextu cílového zařízení; zdrojové souřadnice jsou transformovány podle kontextu zdrojového zařízení;

Pokud cílové, zdrojové a vzorové rastrové obrázky nemají stejný barevný formát, převede zdrojový a vzorový rastrový obrázek tak, StretchBlt aby odpovídal cílovým rastrovým obrázkům. Během převodu se použijí barvy popředí a pozadí kontextu cílového zařízení.

Pokud StretchBlt je nutné převést monochromatický rastr na barvu, nastaví bílé bity (1) na barvu pozadí a černé bity (0) na barvu popředí. V případě převodu barevného na černobílé zobrazení nastaví pixely, které odpovídají barvě pozadí, na bílé (1) a všechny ostatní pixely nastaví na černé (0). Použijí se barvy popředí a pozadí kontextu cílového zařízení s barvou.

Funkci nepodporují StretchBlt všechna zařízení. Pokud chcete zjistit, jestli zařízení podporuje StretchBlt, zavolejte GetDeviceCaps členovou funkci s indexem RASTERCAPS a zkontrolujte návratovou hodnotu příznaku RC_STRETCHBLT .

CDC::StrokeAndFillPath

Zavře všechny otevřené obrázky v cestě, tahá obrys cesty pomocí aktuálního pera a vyplní jeho interiér pomocí aktuálního štětce.

BOOL StrokeAndFillPath();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Kontext zařízení musí obsahovat uzavřenou cestu. Členová StrokeAndFillPath funkce má stejný účinek jako zavření všech otevřených obrázků v cestě a stroking a vyplňování cesty zvlášť, s tím rozdílem, že vyplněná oblast nepřekrývá oblast tahů, i když je pero široké.

CDC::StrokePath

Vykreslí zadanou cestu pomocí aktuálního pera.

BOOL StrokePath();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Kontext zařízení musí obsahovat uzavřenou cestu.

CDC::TabbedTextOut

Voláním této členské funkce napište řetězec znaků v zadaném umístění a rozbalte tabulátory na hodnoty zadané v poli pozic zarážky tabulátoru.

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);

Parametry

x
Určuje logickou souřadnici x počátečního bodu řetězce.

y
Určuje logickou souřadnici y počátečního bodu řetězce.

lpszString
Odkazuje na řetězec znaků, který se má nakreslit. Pro tento parametr můžete předat ukazatel na pole znaků nebo CString objekt.

nCount
Určuje délku řetězce , na který lpszStringodkazuje .

nTabPositions
Určuje počet hodnot v poli pozic zarážky tabulátoru.

lpnTabStopPositions
Odkazuje na pole obsahující pozice zarážky tabulátoru (v logických jednotkách). Zarážky tabulátoru musí být seřazeny vzestupně; nejmenší hodnota x by měla být první položkou v matici.

nTabOrigin
Určuje souřadnici x počáteční pozice, ze které jsou karty rozbalené (v logických jednotkách).

str
Objekt CString , který obsahuje zadané znaky.

Návratová hodnota

Dimenze řetězce (v logických jednotkách) jako CSize objekt.

Poznámky

Text je napsaný v aktuálně vybraném písmu. Pokud nTabPositions je 0 a lpnTabStopPositions je NULL, tabulátory se rozbalí na osmkrát průměrnou šířku znaků.

Pokud nTabPositions je 1, zarážky tabulátoru jsou odděleny vzdáleností určenou první hodnotou v matici lpnTabStopPositions . Pokud matice lpnTabStopPositions obsahuje více než jednu hodnotu, nastaví se zarážka tabulátoru pro každou hodnotu v matici až do čísla určeného nTabPositionshodnotou . Parametr nTabOrigin umožňuje aplikaci volat TabbedTextOut funkci několikrát pro jeden řádek. Pokud aplikace volá funkci více než jednou se nTabOrigin sadou na stejnou hodnotu pokaždé, funkce rozbalí všechny karty vzhledem k pozici určené nTabOrigin.

Ve výchozím nastavení funkce nepoužívá ani neaktualizuje aktuální pozici. Pokud aplikace potřebuje aktualizovat aktuální pozici při volání funkce, může aplikace volat SetTextAlign členovou funkci s nastavenou nFlags hodnotou TA_UPDATECP. Pokud je tento příznak nastaven, Systém Windows ignoruje x a y parametry při následných voláních TabbedTextOutpomocí aktuální pozice.

CDC::TextOut

Zapíše řetězec znaků v zadaném umístění pomocí aktuálně vybraného písma.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

Parametry

x
Určuje logickou souřadnici x počátečního bodu textu.

y
Určuje logickou souřadnici y počátečního bodu textu.

lpszString
Odkazuje na řetězec znaků, který chcete kreslit.

nCount
Určuje počet znaků v řetězci.

str
Objekt CString obsahující znaky, které se mají nakreslit.

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Počátky znaku jsou v levém horním rohu buňky znaku. Ve výchozím nastavení funkce nepoužívá ani neaktualizuje aktuální pozici.

Pokud aplikace potřebuje aktualizovat aktuální pozici při volání TextOut, může aplikace volat SetTextAlign členovou funkci s nastavenou nFlags hodnotou TA_UPDATECP. Pokud je tento příznak nastaven, Systém Windows ignoruje x a y parametry při následných voláních TextOutpomocí aktuální pozice.

Příklad

Podívejte se na příklad pro CDC::BeginPath.

CDC::TransparentBlt

Voláním této členské funkce přenesete bitový blok barevných dat, který odpovídá obdélníku pixelů ze zadaného kontextu zdrojového zařízení do kontextu cílového zařízení.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

Parametry

xDest
Určuje souřadnici x v logických jednotkách v levém horním rohu cílového obdélníku.

yDest
Určuje souřadnici y v logických jednotkách v levém horním rohu cílového obdélníku.

nDestWidth
Určuje šířku cílového obdélníku v logických jednotkách.

nDestHeight
Určuje výšku cílového obdélníku v logických jednotkách.

pSrcDC
Ukazatel na kontext zdrojového zařízení

xSrc
Určuje souřadnici x v logických jednotkách zdrojového obdélníku.

ySrc
Určuje souřadnici y v logických jednotkách zdrojového obdélníku.

nSrcWidth
Určuje šířku zdrojového obdélníku v logických jednotkách.

nSrcHeight
Určuje výšku zdrojového obdélníku v logických jednotkách.

clrTransparent
Barva RGB ve zdrojovém rastrovém obrázku, která má být považována za průhlednou.

Návratová hodnota

TRUE v případě úspěchu; jinak FALSE.

Poznámky

TransparentBlt umožňuje transparentnost; to znamená, že barva RGB označená indikátorem clrTransparent je pro přenos průhledná.

Další informace najdete TransparentBlt v sadě Windows SDK.

CDC::UpdateColors

Aktualizuje oblast klienta kontextu zařízení tím, že odpovídá aktuálním barvám v klientské oblasti se systémovou paletou na pixel-by-pixel.

void UpdateColors();

Poznámky

Neaktivní okno s realizované logické palety může volat UpdateColors jako alternativu k překreslení jeho klientské oblasti při změně systémové palety.

Další informace o použití palet barev naleznete UpdateColors v sadě Windows SDK.

Členská UpdateColors funkce obvykle aktualizuje klientskou oblast rychleji než překreslení oblasti. Vzhledem k tomu, že funkce provádí překlad barev na základě barvy každého pixelu před změnou systémové palety, každé volání této funkce způsobí ztrátu určité přesnosti barev.

CDC::WidenPath

Předefinuje aktuální cestu jako oblast, která by byla vykreslena, pokud by byla cesta tahována pomocí pera aktuálně vybraného do kontextu zařízení.

BOOL WidenPath();

Návratová hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Tato funkce je úspěšná pouze v případě, že aktuální pero je geometrické pero vytvořené druhou verzí CreatePen členské funkce, nebo pokud je vytvořeno pero s první verzí CreatePen a má šířku v jednotkách zařízení větší než 1. Kontext zařízení musí obsahovat uzavřenou cestu. Všechny křivky Bzier v cestě se převedou na posloupnosti rovných čar, které znázorňují rozšířené křivky. Proto žádné křivky Bzier zůstávají v cestě po WidenPath zavolání.

Viz také

CObject Třída
Graf hierarchie
CPaintDC Třída
CWindowDC Třída
CClientDC Třída
CMetaFileDC Třída