Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Cihaz bağlamı nesnelerinin bir sınıfını tanımlar.
Syntax
class CDC : public CObject
Members
Public Constructors
| Name | Description |
|---|---|
CDC::CDC |
Bir CDC nesne oluşturur. |
Public Methods
| Name | Description |
|---|---|
CDC::AbortDoc |
Üye işlevinin son çağrısından StartDoc sonra uygulamanın cihaza yazdığı her şeyi seçerek geçerli yazdırma işini sonlandırır. |
CDC::AbortPath |
Cihaz bağlamındaki tüm yolları kapatır ve atar. |
CDC::AddMetaFileComment |
Açıklamayı bir arabellekten belirtilen gelişmiş biçimli meta dosyaya kopyalar. |
CDC::AlphaBlend |
Saydam veya yarı saydam piksellere sahip bit eşlemleri görüntüler. |
CDC::AngleArc |
Bir çizgi kesimi ve bir yay çizer ve geçerli konumu yayının bitiş noktasına taşır. |
CDC::Arc |
Eliptik bir yay çizer. |
CDC::ArcTo |
Eliptik bir yay çizer. Bu işlev, geçerli konumun güncelleştirilmiş olması dışında öğesine benzer Arc. |
CDC::Attach |
Bu CDC nesneye bir Windows cihaz bağlamı ekler. |
CDC::BeginPath |
Cihaz bağlamında bir yol ayracı açar. |
CDC::BitBlt |
Belirtilen cihaz bağlamından bit eşlem kopyalar. |
CDC::Chord |
Bir akor çizer (elips ve çizgi kesiminin kesişimiyle sınırlanmış kapalı bir şekil). |
CDC::CloseFigure |
Yoldaki açık bir şekli kapatır. |
CDC::CreateCompatibleDC |
Başka bir cihaz bağlamıyla uyumlu bir bellek-cihaz bağlamı oluşturur. Bellekteki görüntüleri hazırlamak için kullanabilirsiniz. |
CDC::CreateDC |
Belirli bir cihaz için bir cihaz bağlamı oluşturur. |
CDC::CreateIC |
Belirli bir cihaz için bilgi bağlamı oluşturur. Bu, cihaz bağlamı oluşturmadan cihaz hakkında bilgi almak için hızlı bir yol sağlar. |
CDC::DeleteDC |
Bu CDC nesneyle ilişkili Windows cihaz bağlamını siler. |
CDC::DeleteTempMap |
tarafından oluşturulan geçici CWinApp nesneleri silmek için boşta kalma süresi işleyicisi tarafından CDCFromHandleçağrılır. Ayrıca cihaz bağlamını ayırır. |
CDC::Detach |
Windows cihaz bağlamını bu CDC nesneden ayırır. |
CDC::DPtoHIMETRIC |
Cihaz birimlerini birimlere HIMETRIC dönüştürür. |
CDC::DPtoLP |
Cihaz birimlerini mantıksal birimlere dönüştürür. |
CDC::Draw3dRect |
Üç boyutlu bir dikdörtgen çizer. |
CDC::DrawDragRect |
Sürüklendiği dikdörtgeni siler ve yeniden çizer. |
CDC::DrawEdge |
Dikdörtgenin kenarlarını çizer. |
CDC::DrawEscape |
Grafik cihaz arabirimi (GDI) aracılığıyla doğrudan kullanılamamış bir video ekranının çizim özelliklerine erişir. |
CDC::DrawFocusRect |
Odağı göstermek için kullanılan stilde bir dikdörtgen çizer. |
CDC::DrawFrameControl |
Çerçeve denetimi çizin. |
CDC::DrawIcon |
Bir simge çizer. |
CDC::DrawState |
Bir görüntüyü görüntüler ve bir durumu belirtmek için görsel efekt uygular. |
CDC::DrawText |
Belirtilen dikdörtgende biçimlendirilmiş metin çizer. |
CDC::DrawTextEx |
Biçimlendirilmiş metni diğer biçimleri kullanarak belirtilen dikdörtgene çizer. |
CDC::Ellipse |
Üç nokta çizer. |
CDC::EndDoc |
Üye işlevi tarafından başlatılan yazdırma işini sonlandırır StartDoc . |
CDC::EndPage |
Cihaz sürücüsüne bir sayfanın sona erdiğini bildirir. |
CDC::EndPath |
Bir yol ayracı kapatır ve ayraç tarafından cihaz bağlamı içinde tanımlanan yolu seçer. |
CDC::EnumObjects |
Cihaz bağlamında kullanılabilen kalemleri ve fırçaları numaralandırır. |
CDC::Escape |
Uygulamaların GDI aracılığıyla belirli bir cihazdan doğrudan kullanılabilir olmayan tesislere erişmesine izin verir. Ayrıca Windows kaçış işlevlerine erişim sağlar. Bir uygulama tarafından yapılan kaçış çağrıları çevrilir ve cihaz sürücüsüne gönderilir. |
CDC::ExcludeClipRect |
Mevcut kırpma bölgesi eksi belirtilen dikdörtgenden oluşan yeni bir kırpma bölgesi oluşturur. |
CDC::ExcludeUpdateRgn |
Penceredeki güncelleştirilmiş bir bölgeyi kırpma bölgesinden dışlayarak, pencerenin geçersiz alanları içinde çizim yapılmasını engeller. |
CDC::ExtFloodFill |
Bir alanı geçerli fırçayla doldurur. Üye işlevinden CDC::FloodFill daha fazla esneklik sağlar. |
CDC::ExtTextOut |
Seçili durumdaki yazı tipini kullanarak dikdörtgen bir bölge içinde bir karakter dizesi yazar. |
CDC::FillPath |
Geçerli yoldaki açık şekilleri kapatır ve geçerli fırçayı ve çokgen doldurma modunu kullanarak yolun içini doldurur. |
CDC::FillRect |
Belirli bir fırçayı kullanarak belirli bir dikdörtgeni doldurur. |
CDC::FillRgn |
Belirli bir bölgeyi belirtilen fırçayla doldurur. |
CDC::FillSolidRect |
Dikdörtgeni düz bir renkle doldurur. |
CDC::FlattenPath |
Seçilen yoldaki eğrileri geçerli cihaz bağlamı içine dönüştürür ve her eğriyi bir çizgi dizisine dönüştürür. |
CDC::FloodFill |
Bir alanı geçerli fırçayla doldurur. |
CDC::FrameRect |
Dikdörtgenin etrafına kenarlık çizer. |
CDC::FrameRgn |
Fırça kullanarak belirli bir bölgenin çevresine kenarlık çizer. |
CDC::FromHandle |
Cihaz bağlamı için tanıtıcı CDC verildiğinde nesneye bir işaretçi döndürür. Bir CDC nesne tanıtıcıya bağlı değilse, geçici CDC bir nesne oluşturulur ve eklenir. |
CDC::GetArcDirection |
Cihaz bağlamı için geçerli yay yönünü döndürür. |
CDC::GetAspectRatioFilter |
Geçerli en boy oranı filtresinin ayarını alır. |
CDC::GetBkColor |
Geçerli arka plan rengini alır. |
CDC::GetBkMode |
Arka plan modunu alır. |
CDC::GetBoundsRect |
Belirtilen cihaz bağlamı için geçerli birikmiş sınırlayıcı dikdörtgeni döndürür. |
CDC::GetBrushOrg |
Geçerli fırçanın çıkış noktasını alır. |
CDC::GetCharABCWidths |
Geçerli yazı tipinden belirli bir aralıktaki ardışık karakterlerin genişliklerini mantıksal birimler halinde alır. |
CDC::GetCharABCWidthsI |
Geçerli TrueType yazı tipinden belirtilen aralıktaki ardışık glif dizinlerinin genişliklerini mantıksal birimler halinde alır. |
CDC::GetCharacterPlacement |
Bir karakter dizesinde çeşitli bilgi türlerini alır. |
CDC::GetCharWidth |
Belirli bir aralıktaki ardışık karakterlerin kesirli genişliklerini geçerli yazı tipinden alır. |
CDC::GetCharWidthI |
Geçerli yazı tipinden belirtilen aralıktaki ardışık glif dizinlerinin genişliklerini mantıksal koordinatlarda alır. |
CDC::GetClipBox |
Geçerli kırpma sınırının etrafındaki en sıkı sınırlayıcı dikdörtgenin boyutlarını alır. |
CDC::GetColorAdjustment |
Cihaz bağlamı için renk ayarlama değerlerini alır. |
CDC::GetCurrentBitmap |
Seçili CBitmap durumdaki nesneye bir işaretçi döndürür. |
CDC::GetCurrentBrush |
Seçili CBrush durumdaki nesneye bir işaretçi döndürür. |
CDC::GetCurrentFont |
Seçili CFont durumdaki nesneye bir işaretçi döndürür. |
CDC::GetCurrentPalette |
Seçili CPalette durumdaki nesneye bir işaretçi döndürür. |
CDC::GetCurrentPen |
Seçili CPen durumdaki nesneye bir işaretçi döndürür. |
CDC::GetCurrentPosition |
Kalemin geçerli konumunu alır (mantıksal koordinatlarda). |
CDC::GetDCBrushColor |
Geçerli fırça rengini alır. |
CDC::GetDCPenColor |
Geçerli kalem rengini alır. |
CDC::GetDeviceCaps |
Belirli bir görüntüleme cihazının özellikleri hakkında belirli türde cihaza özgü bilgileri alır. |
CDC::GetFontData |
Ölçeklenebilir bir yazı tipi dosyasından yazı tipi ölçüm bilgilerini alır. Alınacak bilgiler, yazı tipi dosyasına uzaklık ve döndürülecek bilgilerin uzunluğu belirtilerek tanımlanır. |
CDC::GetFontLanguageInfo |
Belirtilen görüntüleme bağlamı için seçili durumdaki yazı tipi hakkında bilgi döndürür. |
CDC::GetGlyphOutline |
Geçerli yazı tipindeki bir ana hat karakteri için ana hat eğrisini veya bit eşlemini alır. |
CDC::GetGraphicsMode |
Belirtilen cihaz bağlamı için geçerli grafik modunu alır. |
CDC::GetHalftoneBrush |
Yarım tonlu fırça alır. |
CDC::GetKerningPairs |
Belirtilen cihaz bağlamında seçili olan yazı tipi için karakter aralığı çiftlerini alır. |
CDC::GetLayout |
Cihaz bağlamının (DC) düzenini alır. Düzen soldan sağa (varsayılan) veya sağdan sola (yansıtılmış) olabilir. |
CDC::GetMapMode |
Geçerli eşleme modunu alır. |
CDC::GetMiterLimit |
Cihaz bağlamı için sicim sınırını döndürür. |
CDC::GetNearestColor |
Belirtilen cihazın gösterebileceği belirtilen mantıksal renge en yakın mantıksal rengi alır. |
CDC::GetOutlineTextMetrics |
TrueType yazı tipleri için yazı tipi ölçüm bilgilerini alır. |
CDC::GetOutputCharWidth |
Çıkış cihazı bağlamını kullanarak geçerli yazı tipinden ardışık bir karakter grubundaki tek tek karakterlerin genişliklerini alır. |
CDC::GetOutputTabbedTextExtent |
Çıkış cihazı bağlamında bir karakter dizesinin genişliğini ve yüksekliğini hesaplar. |
CDC::GetOutputTextExtent |
Boyutları belirlemek için geçerli yazı tipini kullanarak çıkış cihazı bağlamındaki bir metin satırının genişliğini ve yüksekliğini hesaplar. |
CDC::GetOutputTextMetrics |
Geçerli yazı tipinin ölçümlerini çıkış cihazı bağlamından alır. |
CDC::GetPath |
Cihaz bağlamında seçilen yolda bulunan çizgilerin uç noktalarını ve eğrilerin denetim noktalarını tanımlayan koordinatları alır. |
CDC::GetPixel |
Belirtilen noktada pikselin RGB renk değerini alır. |
CDC::GetPolyFillMode |
Geçerli çokgen doldurma modunu alır. |
CDC::GetROP2 |
Geçerli çizim modunu alır. |
CDC::GetSafeHdc |
Çıkış cihazı bağlamını döndürür CDC::m_hDC. |
CDC::GetStretchBltMode |
Geçerli bit eşlem esnetme modunu alır. |
CDC::GetTabbedTextExtent |
Öznitelik cihaz bağlamında bir karakter dizesinin genişliğini ve yüksekliğini hesaplar. |
CDC::GetTextAlign |
Metin hizalama bayraklarını alır. |
CDC::GetTextCharacterExtra |
Ara karakter aralığı miktarı için geçerli ayarı alır. |
CDC::GetTextColor |
Geçerli metin rengini alır. |
CDC::GetTextExtent |
Öznitelik cihaz bağlamındaki bir metin satırının genişliğini ve yüksekliğini, boyutları belirlemek için geçerli yazı tipini kullanarak hesaplar. |
CDC::GetTextExtentExPointI |
Belirtilen bir dizede belirtilen bir alana sığacak karakter sayısını alır ve bir diziyi bu karakterlerin her biri için metin kapsamıyla doldurur. |
CDC::GetTextExtentPointI |
Belirtilen karakter dizin dizisinin genişliğini ve yüksekliğini alır. |
CDC::GetTextFace |
Geçerli yazı tipinin yazı tipi adını null ile sonlandırılan dize olarak arabelleğe kopyalar. |
CDC::GetTextMetrics |
Öznitelik cihaz bağlamından geçerli yazı tipinin ölçümlerini alır. |
CDC::GetViewportExt |
Görünüm penceresi x ve y uzantılarını alır. |
CDC::GetViewportOrg |
Görünüm penceresi kaynağının x ve y koordinatlarını alır. |
CDC::GetWindow |
Görüntü cihazı bağlamıyla ilişkili pencereyi döndürür. |
CDC::GetWindowExt |
İlişkili pencerenin x ve y uzantılarını alır. |
CDC::GetWindowOrg |
İlişkili pencerenin kaynağının x ve y koordinatlarını alır. |
CDC::GetWorldTransform |
Geçerli dünya alanını sayfa alanı dönüşümüne alır. |
CDC::GradientFill |
Dikdörtgen ve üçgen yapıları bir renkle doldurur. |
CDC::GrayString |
Verilen konuma soluk (gri) metin çizer. |
CDC::HIMETRICtoDP |
HIMETRIC birimlerini cihaz birimlerine dönüştürür. |
CDC::HIMETRICtoLP |
HIMETRIC birimlerini mantıksal birimlere dönüştürür. |
CDC::IntersectClipRect |
Geçerli bölge ile dikdörtgenin kesişimini oluşturarak yeni bir kırpma bölgesi oluşturur. |
CDC::InvertRect |
Dikdörtgenin içeriğini ters çevirir. |
CDC::InvertRgn |
Bir bölgedeki renkleri tersine çevirir. |
CDC::IsPrinting |
Cihaz bağlamın yazdırma için kullanılıp kullanılmadığını belirler. |
CDC::LineTo |
Geçerli konumdan bir noktaya kadar bir çizgi çizer, ancak bir noktaya kadar çizer. |
CDC::LPtoDP |
Mantıksal birimleri cihaz birimlerine dönüştürür. |
CDC::LPtoHIMETRIC |
Mantıksal birimleri HIMETRIC birimlerine dönüştürür. |
CDC::MaskBlt |
Verilen maske ve tarama işlemini kullanarak kaynak ve hedef bit eşlemler için renk verilerini birleştirir. |
CDC::ModifyWorldTransform |
Belirtilen modu kullanarak cihaz bağlamı için dünya dönüşümlerini değiştirir. |
CDC::MoveTo |
Geçerli konumu taşır. |
CDC::OffsetClipRgn |
Verilen cihazın kırpma bölgesini taşır. |
CDC::OffsetViewportOrg |
Görünüm penceresi kaynağını, geçerli görünüm penceresi kaynağının koordinatlarına göre değiştirir. |
CDC::OffsetWindowOrg |
Geçerli pencere kaynağının koordinatlarına göre pencere kaynağını değiştirir. |
CDC::PaintRgn |
Bir bölgeyi seçili fırçayla doldurur. |
CDC::PatBlt |
Bit deseni oluşturur. |
CDC::Pie |
Pasta şeklinde bir kama çizer. |
CDC::PlayMetaFile |
Belirtilen meta dosyasının içeriğini verilen cihazda çalar. gelişmiş sürümü PlayMetaFile , verilen gelişmiş biçimli meta dosyasında depolanan resmi görüntüler. Meta dosyası istediğiniz sayıda oynatılabilir. |
CDC::PlgBlt |
Kaynak cihaz bağlamında belirtilen dikdörtgenden verilen cihaz bağlamındaki belirtilen paralelograma renk verisi bitlerinin bit blok aktarımını gerçekleştirir. |
CDC::PolyBezier |
Bir veya daha fazla Bzier eğrisi çizer. Geçerli konum kullanılmaz veya güncelleştirilmez. |
CDC::PolyBezierTo |
Bir veya daha fazla Bzier eğrisi çizer ve geçerli konumu son Bzier eğrisinin bitiş noktasına taşır. |
CDC::PolyDraw |
Bir dizi çizgi kesimi ve Bzier eğrisi çizer. Bu işlev geçerli konumu güncelleştirir. |
CDC::Polygon |
Çizgilere bağlı iki veya daha fazla noktadan (köşe) oluşan bir çokgen çizer. |
CDC::Polyline |
Belirtilen noktaları bağlayan bir dizi çizgi kesimi çizer. |
CDC::PolylineTo |
Bir veya daha fazla düz çizgi çizer ve geçerli konumu son satırın bitiş noktasına taşır. |
CDC::PolyPolygon |
Geçerli çokgen doldurma modu kullanılarak doldurulan iki veya daha fazla çokgen oluşturur. Çokgenler kopuk olabilir veya çakışabilir. |
CDC::PolyPolyline |
Birden çok bağlı çizgi kesimi serisi çizer. Geçerli konum bu işlev tarafından kullanılmaz veya güncelleştirilmez. |
CDC::PtVisible |
Verilen noktanın kırpma bölgesi içinde olup olmadığını belirtir. |
CDC::RealizePalette |
Geçerli mantıksal paletteki palet girdilerini sistem paletine eşler. |
CDC::Rectangle |
Geçerli kalemi kullanarak bir dikdörtgen çizer ve geçerli fırçayı kullanarak doldurur. |
CDC::RectVisible |
Verilen dikdörtgenin herhangi bir bölümünün kırpma bölgesinde olup olmadığını belirler. |
CDC::ReleaseAttribDC |
Yayınlar m_hAttribDC, öznitelik cihaz bağlamı. |
CDC::ReleaseOutputDC |
Çıkış cihazı bağlamı olan yayınlar m_hDC. |
CDC::ResetDC |
Cihaz bağlamını m_hAttribDC güncelleştirir. |
CDC::RestoreDC |
Cihaz bağlamını ile SaveDCkaydedilmiş önceki bir duruma geri yükler. |
CDC::RoundRect |
Geçerli kalemi kullanarak yuvarlatılmış köşeleri olan ve geçerli fırça kullanılarak doldurulmuş bir dikdörtgen çizer. |
CDC::SaveDC |
Cihaz bağlamının geçerli durumunu kaydeder. |
CDC::ScaleViewportExt |
Geçerli değerlere göre görünüm penceresi kapsamını değiştirir. |
CDC::ScaleWindowExt |
Geçerli değerlere göre pencere kapsamlarını değiştirir. |
CDC::ScrollDC |
Bitlerden oluşan bir dikdörtgeni yatay ve dikey olarak kaydırıyor. |
CDC::SelectClipPath |
Cihaz bağlamı için kırpma bölgesi olarak geçerli yolu seçer ve belirtilen modu kullanarak yeni bölgeyi mevcut kırpma bölgeleriyle birleştirir. |
CDC::SelectClipRgn |
Belirtilen modu kullanarak verilen bölgeyi geçerli kırpma bölgesiyle birleştirir. |
CDC::SelectObject |
Kalem gibi bir GDI çizim nesnesi seçer. |
CDC::SelectPalette |
Mantıksal paleti seçer. |
CDC::SelectStockObject |
Windows tarafından sağlanan önceden tanımlanmış stok kalemlerden, fırçalardan veya yazı tiplerinden birini seçer. |
CDC::SetAbortProc |
Yazdırma işinin durdurulması gerekiyorsa Windows'un çağıracağı programcı tarafından sağlanan bir geri çağırma işlevini ayarlar. |
CDC::SetArcDirection |
Yay ve dikdörtgen işlevleri için kullanılacak çizim yönünü ayarlar. |
CDC::SetAttribDC |
özniteliği cihaz bağlamını ayarlar m_hAttribDC. |
CDC::SetBkColor |
Geçerli arka plan rengini ayarlar. |
CDC::SetBkMode |
Arka plan modunu ayarlar. |
CDC::SetBoundsRect |
Belirtilen cihaz bağlamı için sınırlayıcı dikdörtgen bilgilerinin birikmesi denetler. |
CDC::SetBrushOrg |
Cihaz bağlamında seçilen sonraki fırçanın çıkış noktasını belirtir. |
CDC::SetColorAdjustment |
Belirtilen değerleri kullanarak cihaz bağlamı için renk ayarlama değerlerini ayarlar. |
CDC::SetDCBrushColor |
Geçerli fırça rengini ayarlar. |
CDC::SetDCPenColor |
Geçerli kalem rengini ayarlar. |
CDC::SetGraphicsMode |
Belirtilen cihaz bağlamı için geçerli grafik modunu ayarlar. |
CDC::SetLayout |
Cihaz bağlamının (DC) düzenini değiştirir. |
CDC::SetMapMode |
Geçerli eşleme modunu ayarlar. |
CDC::SetMapperFlags |
Yazı tipi eşleyicisinin mantıksal yazı tiplerini fiziksel yazı tiplerine eşlerken kullandığı algoritmayı değiştirir. |
CDC::SetMiterLimit |
Cihaz bağlamı için sicim birleşimlerinin uzunluğu sınırını ayarlar. |
CDC::SetOutputDC |
çıkış cihazı bağlamını ayarlar m_hDC. |
CDC::SetPixel |
Belirtilen noktadaki pikseli, belirtilen rengin en yakın yaklaşık değerine ayarlar. |
CDC::SetPixelV |
Belirtilen koordinatlarda pikseli, belirtilen rengin en yakın yaklaşık değerine ayarlar.
SetPixelV daha hızlıdır SetPixel çünkü boyanan noktanın renk değerini döndürmesi gerekmez. |
CDC::SetPolyFillMode |
Çokgen doldurma modunu ayarlar. |
CDC::SetROP2 |
Geçerli çizim modunu ayarlar. |
CDC::SetStretchBltMode |
Bit eşlem esnetme modunu ayarlar. |
CDC::SetTextAlign |
Metin hizalama bayraklarını ayarlar. |
CDC::SetTextCharacterExtra |
Karakter aralığı miktarını ayarlar. |
CDC::SetTextColor |
Metin rengini ayarlar. |
CDC::SetTextJustification |
Dizedeki kesme karakterlerine boşluk ekler. |
CDC::SetViewportExt |
Görünüm penceresi x ve y uzantılarını ayarlar. |
CDC::SetViewportOrg |
Görünüm penceresi kaynağını ayarlar. |
CDC::SetWindowExt |
İlişkili pencerenin x ve y uzantılarını ayarlar. |
CDC::SetWindowOrg |
Cihaz bağlamının pencere kaynağını ayarlar. |
CDC::SetWorldTransform |
Geçerli dünya alanını sayfa alanı dönüşümüne ayarlar. |
CDC::StartDoc |
Cihaz sürücüsüne yeni bir yazdırma işinin başlatıldığını bildirir. |
CDC::StartPage |
Cihaz sürücüsüne yeni bir sayfanın başlatıldığını bildirir. |
CDC::StretchBlt |
Bir bit eşlemi kaynak dikdörtgenden ve cihazdan hedef dikdörtgene taşır ve hedef dikdörtgenin boyutlarına sığması için gerekirse bit eşlemi uzatır veya sıkıştırır. |
CDC::StrokeAndFillPath |
Bir yoldaki açık şekilleri kapatır, geçerli kalemi kullanarak yolun ana hattını çizer ve geçerli fırçayı kullanarak iç kısmını doldurur. |
CDC::StrokePath |
Geçerli kalemi kullanarak belirtilen yolu işler. |
CDC::TabbedTextOut |
Sekmeleri sekme durağı konumları dizisinde belirtilen değerlere genişleterek belirtilen konuma bir karakter dizesi yazar. |
CDC::TextOut |
Seçili durumdaki yazı tipini kullanarak belirtilen konuma bir karakter dizesi yazar. |
CDC::TransparentBlt |
Belirtilen kaynak cihaz bağlamındaki renk verilerinin bit bloğunu hedef cihaz bağlamı içine aktarır ve aktarımda belirtilen rengi saydam hale getirerek. |
CDC::UpdateColors |
İstemci alanındaki geçerli renkleri piksel piksel temelinde sistem paleti ile eşleştirerek cihaz bağlamının istemci alanını güncelleştirir. |
CDC::WidenPath |
Geçerli yolu, cihaz bağlamında seçili durumdaki kalem kullanılarak yol konturlanmışsa boyanacak alan olarak yeniden tanımlar. |
Public Operators
| Name | Description |
|---|---|
CDC::operator HDC |
Cihaz bağlamının tutamacını alır. |
Ortak Veri Üyeleri
| Name | Description |
|---|---|
CDC::m_hAttribDC |
Bu CDC nesne tarafından kullanılan öznitelik-cihaz bağlamı. |
CDC::m_hDC |
Bu CDC nesne tarafından kullanılan output-device bağlamı. |
Remarks
CDC nesnesi, ekran veya yazıcı gibi bir cihaz bağlamı ile çalışmak için üye işlevleri ve pencerenin istemci alanıyla ilişkilendirilmiş bir görüntü bağlamı ile çalışmak için üyeler sağlar.
Bir nesnenin üye işlevleri CDC aracılığıyla tüm çizimleri yapın. sınıfı, cihaz bağlamı işlemleri için üye işlevleri, çizim araçlarıyla çalışma, tür açısından güvenli grafik cihaz arabirimi (GDI) nesne seçimi ve renkler ve paletlerle çalışma sağlar. Ayrıca çizim özniteliklerini almak ve ayarlamak, eşlemek, görünüm penceresiyle çalışmak, pencere kapsamıyla çalışmak, koordinatları dönüştürmek, bölgelerle çalışmak, kırpmak, çizgiler çizmek ve basit şekiller, üç nokta ve çokgenler çizmek için üye işlevleri sağlar. Üye işlevleri ayrıca metin çizmek, yazı tipleriyle çalışmak, yazıcı çıkışlarını kullanmak, kaydırmak ve meta dosyaları oynatmak için de sağlanır.
Bir CDC nesneyi kullanmak için bu nesneyi oluşturup cihaz bağlamlarını kullanan paralel Windows işlevlerine üye işlevlerini çağırabilirsiniz.
Note
Windows 95/98'in altında tüm ekran koordinatları 16 bit ile sınırlıdır. Bu nedenle, int üye işlevine geçirilen bir CDC değer -32768 ile 32767 aralığında yer almalıdır.
Microsoft Foundation Sınıf Kitaplığı, belirli kullanımlar için öğesinden CDC türetilen çeşitli sınıflar sağlar.
CPaintDCve BeginPaintçağrılarını EndPaint kapsüller.
CClientDC pencerenin istemci alanıyla ilişkilendirilmiş bir görüntüleme bağlamını yönetir.
CWindowDC çerçevesi ve denetimleri de dahil olmak üzere tüm pencereyle ilişkilendirilmiş bir görüntüleme bağlamını yönetir.
CMetaFileDC bir cihaz bağlamı bir meta dosyası ile ilişkilendirir.
CDC , GetLayoutSetLayoutbir penceredeki düzenini devralmayan bir cihaz bağlamının düzenini ters çevirmeye yönelik olarak ve olmak üzere iki üye işlevi sağlar. Bu tür sağdan sola yönlendirme, karakter düzeninin Avrupa standardı olmadığı Arapça veya İbranice gibi kültürler için yazılmış uygulamalar için gereklidir.
CDC iki cihaz bağlamı m_hDC içerir ve m_hAttribDCbir CDC nesne oluşturulurken aynı cihaza başvurur.
CDC tüm çıkış GDI çağrılarını ve m_hDC çoğu öznitelik GDI çağrılarını öğesine m_hAttribDCyönlendirir. (Öznitelik çağrısı örneği, bir çıkış çağrısıyken GetTextColor şeklindedirSetTextColor.)
Örneğin, çerçeve, fiziksel bir cihazdan öznitelikleri okurken meta dosyasına çıkış gönderecek bir CMetaFileDC nesne uygulamak için bu iki cihaz bağlamını kullanır. Baskı önizleme, çerçevede benzer şekilde uygulanır. Ayrıca iki cihaz bağlamını uygulamaya özgü kodunuzda da benzer şekilde kullanabilirsiniz.
Hem hem m_hDC de cihaz bağlamlarından metin ölçümü bilgilerine m_hAttribDC ihtiyaç duyabileceğiniz zamanlar olabilir. Aşağıdaki işlev çiftleri bu özelliği sağlar:
| Uses m_hAttribDC | Uses m_hDC |
|---|---|
GetTextExtent |
GetOutputTextExtent |
GetTabbedTextExtent |
GetOutputTabbedTextExtent |
GetTextMetrics |
GetOutputTextMetrics |
GetCharWidth |
GetOutputCharWidth |
hakkında CDCdaha fazla bilgi için bkz . Cihaz Bağlamları.
Inheritance Hierarchy
CDC
Requirements
Header:afxwin.h
CDC::AbortDoc
Geçerli yazdırma işini sonlandırır ve üye işlevine yapılan son çağrıdan StartDoc sonra uygulamanın cihaza yazdığı her şeyi siler.
int AbortDoc();
Return Value
Başarılı olursa 0'dan büyük veya 0'a eşit bir değer veya hata oluştuğunda negatif bir değer. Aşağıdaki listede yaygın hata değerleri ve anlamları gösterilmektedir:
SP_ERRORGenel hata.SP_OUTOFDISKŞu anda biriktirme için yeterli disk alanı yok ve artık kullanılabilir alan olmayacak.SP_OUTOFMEMORYBiriktirme için yeterli bellek yok.SP_USERABORTKullanıcı, Yazdırma Yöneticisi aracılığıyla işi sonlandırmıştı.
Remarks
Bu üye işlevi yazıcı çıkışının ABORTDOC yerini alır.
AbortDoc aşağıdakileri sonlandırmak için kullanılmalıdır:
kullanarak
SetAbortProcbir durdurma işlevi belirtmeyen yazdırma işlemleri.Henüz ilk
NEWFRAMEveyaNEXTBANDkaçış çağrılarına ulaşmamış yazdırma işlemleri.
Bir uygulama yazdırma hatasıyla veya iptal edilmiş yazdırma işlemiyle karşılaşırsa, sınıfının EndDocveya AbortDoc üye işlevlerini kullanarak CDC işlemi sonlandırmayı denememelidir. GDI, hata değerini döndürmeden önce işlemi otomatik olarak sonlandırır.
Uygulama, kullanıcının yazdırma işlemini iptal etmesi için bir iletişim kutusu görüntülerse, iletişim kutusunu yok etmeden önce çağrısı AbortDoc yapmalıdır.
Yazdırma işini başlatmak için Print Manager kullanıldıysa, çağrılması AbortDoc tüm biriktirici işini siler; yazıcı hiçbir şey almaz. Yazdırma işini başlatmak için Yazdırma Yöneticisi kullanılmadıysa, veriler çağrılmadan önce AbortDoc yazıcıya gönderilmiş olabilir. Bu durumda, yazıcı sürücüsü yazıcıyı sıfırlar (mümkün olduğunda) ve yazdırma işini kapatırdı.
Example
örneğine CDC::StartDocbakın.
CDC::AbortPath
Cihaz bağlamındaki tüm yolları kapatır ve atar.
BOOL AbortPath();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Cihaz bağlamında açık bir yol ayracı varsa, yol ayracı kapatılır ve yol atılır. Cihaz bağlamında kapalı bir yol varsa, yol atılır.
CDC::AddMetaFileComment
Açıklamayı bir arabellekten belirtilen gelişmiş biçimli meta dosyaya kopyalar.
BOOL AddMetaFileComment(
UINT nDataSize,
const BYTE* pCommentData);
Parameters
nDataSize
Açıklama arabelleğinin uzunluğunu bayt cinsinden belirtir.
pCommentData
Açıklamayı içeren arabelleğe işaret eden.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Açıklama, resmin kaynağı ve oluşturulduğu tarih gibi özel bilgileri içerebilir. Açıklama bir uygulama imzası ve ardından veriler ile başlamalıdır. Açıklamalar konuma özgü veriler içermemelidir. Konuma özgü veriler bir kaydın konumunu belirtir ve bir meta dosyası başka bir meta dosyaya katıştırılabildiğinden bu veri dahil edilmemelidir. Bu işlev yalnızca gelişmiş meta dosyalarla kullanılabilir.
CDC::AlphaBlend
Saydam veya yarı saydam piksellere sahip bit eşlemleri görüntülemek için bu üye işlevini çağır.
BOOL AlphaBlend(
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
BLENDFUNCTION blend);
Parameters
xDest
Hedef dikdörtgenin sol üst köşesindeki x koordinatını mantıksal birimler halinde belirtir.
yDest
Hedef dikdörtgenin sol üst köşesinin mantıksal birimlerde y koordinatını belirtir.
nDestWidth
Hedef dikdörtgenin genişliğini mantıksal birimler halinde belirtir.
nDestHeight
Hedef dikdörtgenin yüksekliğini mantıksal birimlerde belirtir.
pSrcDC
Kaynak cihaz bağlamı için bir işaretçi.
xSrc
Kaynak dikdörtgenin sol üst köşesindeki x koordinatını mantıksal birimler halinde belirtir.
ySrc
Kaynak dikdörtgenin sol üst köşesinin mantıksal birimlerde y koordinatını belirtir.
nSrcWidth
Kaynak dikdörtgenin genişliğini mantıksal birimler halinde belirtir.
nSrcHeight
Kaynak dikdörtgenin yüksekliğini mantıksal birimler halinde belirtir.
blend
Bir BLENDFUNCTION yapı belirtir.
Return Value
TRUE başarılı olursa; aksi takdirde FALSE.
Remarks
Daha fazla bilgi için Bkz AlphaBlend . Windows SDK'sı.
CDC::AngleArc
Çizgi kesimi ve yay çizer.
BOOL AngleArc(
int x,
int y,
int nRadius,
float fStartAngle,
float fSweepAngle);
Parameters
x
Dairenin merkezinin mantıksal x koordinatını belirtir.
y
Dairenin merkezinin mantıksal y koordinatını belirtir.
nRadius
Dairenin yarıçapını mantıksal birimler halinde belirtir. Bu değer pozitif olmalıdır.
fStartAngle
Başlangıç açısını x eksenine göre derece cinsinden belirtir.
fSweepAngle
Süpürme açısını başlangıç açısına göre derece cinsinden belirtir.
Return Value
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Remarks
Çizgi segmenti geçerli konumdan yay başlangıcına doğru çizilir. Yay, verilen yarıçap ve merkezi olan bir dairenin çevresi boyunca çizilir. Yay uzunluğu, verilen başlangıç ve süpürme açılarıyla tanımlanır.
AngleArc geçerli konumu yayının bitiş noktasına taşır. Bu işlev tarafından çizilen yay, geçerli dönüştürme ve eşleme moduna bağlı olarak eliptik gibi görünebilir. Bu işlev, yayı çizmeden önce çizgi kesimini geçerli konumdan yayının başına doğru çizer. Yay, belirtilen merkez noktasının çevresinde belirtilen yarıçapa sahip sanal bir daire oluşturarak çizilir. Yay başlangıç noktası, dairenin x ekseninden saat yönünün tersine, başlangıç açısındaki derece sayısına göre ölçülerek belirlenir. Bitiş noktası benzer şekilde, başlangıç noktasından saat yönünün tersine süpürme açısındaki derece sayısına göre ölçülerek bulunur.
Süpürme açısı 360 dereceden büyükse yay birden çok kez süpürülür. Bu işlev geçerli kalemi kullanarak çizgileri çizer. Şekil doldurulmuyor.
CDC::Arc
Eliptik bir yay çizer.
BOOL Arc(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4);
BOOL Arc(
LPCRECT lpRect,
POINT ptStart,
POINT ptEnd);
Parameters
x1
Sınırlayıcı dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).
y1
Sınırlayıcı dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).
x2
Sınırlayıcı dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).
y2
Sınırlayıcı dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).
x3
Arkın başlangıç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
y3
Arkın başlangıç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
x4
Arc'ın uç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
y4
Arc'ın uç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir LPRECT veya CRect nesnesi geçirebilirsiniz.
ptStart
Arkın başlangıç noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
ptEnd
Arkın bitiş noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
işlevi kullanılarak çizilen yay, belirtilen sınırlayıcı dikdörtgen tarafından tanımlanan üç noktanın bir kesimidir.
Yayının asıl başlangıç noktası, sınırlayıcı dikdörtgenin ortasından belirtilen başlangıç noktası üzerinden çekilen bir ışının üç noktayla kesiştiği noktadır. Yayının gerçek bitiş noktası, sınırlayıcı dikdörtgenin ortasından belirtilen bitiş noktası üzerinden çekilen bir ışının üç noktayla kesiştiği noktadır. Yay saat yönünün tersine çizilir. Yay kapalı bir şekil olmadığından, doldurulmaz. Dikdörtgenin hem genişliği hem de yüksekliği 2 birimden büyük ve 32.767 birimden az olmalıdır.
Example
void CDCView::DrawArc(CDC *pDC)
{
// Fill the client area with a thin circle. The circle's
// interior is not filled. The circle's perimeter is
// blue from 6 o'clock to 3 o'clock and red from 3
// o'clock to 6 o'clock.
// Get the client area.
CRect rectClient;
GetClientRect(rectClient);
// Make a couple of pens.
CPen penBlue;
CPen penRed;
CPen *pOldPen;
penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));
// Draw from 3 o'clock to 6 o'clock, counterclockwise,
// in a blue pen.
pOldPen = pDC->SelectObject(&penBlue);
pDC->Arc(rectClient,
CPoint(rectClient.right, rectClient.CenterPoint().y),
CPoint(rectClient.CenterPoint().x, rectClient.right));
// Draw from 6 o'clock to 3 o'clock, counterclockwise,
// in a red pen.
pDC->SelectObject(&penRed);
// Keep the same parameters, but reverse start
// and end points.
pDC->Arc(rectClient,
CPoint(rectClient.CenterPoint().x, rectClient.right),
CPoint(rectClient.right, rectClient.CenterPoint().y));
// Restore the previous pen.
pDC->SelectObject(pOldPen);
}
CDC::ArcTo
Eliptik bir yay çizer.
BOOL ArcTo(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4);
BOOL ArcTo(
LPCRECT lpRect,
POINT ptStart,
POINT ptEnd);
Parameters
x1
Sınırlayıcı dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).
y1
Sınırlayıcı dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).
x2
Sınırlayıcı dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).
y2
Sınırlayıcı dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).
x3
Arkın başlangıç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
y3
Arkın başlangıç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
x4
Arc'ın uç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
y4
Arc'ın uç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir veri yapısına veya nesneye RECT işaretçi CRect geçirebilirsiniz.
ptStart
Arkın başlangıç noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT veri yapısı veya CPoint nesnesi geçirebilirsiniz.
ptEnd
Arkın bitiş noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT veri yapısı veya CPoint nesnesi geçirebilirsiniz.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu işlev, geçerli konumun güncelleştirilmiş olması dışında öğesine benzer CDC::Arc. Noktalar ( x1, y1) ve ( x2, y2) sınırlayıcı dikdörtgeni belirtir. Verilen sınırlayıcı dikdörtgen tarafından oluşturulan üç nokta, yay eğrisini tanımlar. Yay, sınırlayıcı dikdörtgenin ortasından radyal çizgiyle kesiştiği noktadan saat yönünün tersine (varsayılan yay yönü) genişletir ( x3, y3). Yay, sınırlayıcı dikdörtgenin ortasından radyal çizgiyle ( x4, y4) kesiştiği yerde sona erer. Başlangıç noktası ve bitiş noktası aynıysa, tam bir üç nokta çizilir.
Geçerli konumdan yayının başlangıç noktasına bir çizgi çizilir. Hata oluşmazsa, geçerli konum yayının bitiş noktasına ayarlanır. Yay geçerli kalem kullanılarak çizilir; doldurulmuyor.
CDC::Attach
Nesnesine bir hDC eklemek için CDC bu üye işlevini kullanın.
BOOL Attach(HDC hDC);
Parameters
hDC
Windows cihaz bağlamı.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
hDC, hem çıkış cihazı bağlamında hem m_hDCde m_hAttribDCözniteliği cihaz bağlamında depolanır.
CDC::BeginPath
Cihaz bağlamında bir yol ayracı açar.
BOOL BeginPath();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bir yol ayracı açıldıktan sonra, bir uygulama yolda bulunan noktaları tanımlamak için GDI çizim işlevlerini çağırmaya başlayabilir. Uygulama, üye işlevini çağırarak açık yol ayraçlarını EndPath kapatabilir. Bir uygulama çağırdığında BeginPath, önceki yollar atılır.
Bir yoldaki noktaları tanımlayan çizim işlevlerinin listesi için Bkz BeginPath . Windows SDK'sı.
Example
// This implementation uses GDI paths to draw the outline of
// some text in a TrueType font. The path is used to record the way
// the TrueType font would be drawn. Then, the function uses the data
// returned from CDC::GetPath() to draw the font--without filling it.
void CDCView::DrawPath(CDC *pDC)
{
// Describe a 24-point truetype font of normal weight
LOGFONT lf;
memset(&lf, 0, sizeof(lf));
lf.lfHeight = -MulDiv(24, pDC->GetDeviceCaps(LOGPIXELSY), 72);
lf.lfWeight = FW_NORMAL;
lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;
// create and select it
CFont newFont;
if (!newFont.CreateFontIndirect(&lf))
return;
CFont *pOldFont = pDC->SelectObject(&newFont);
// use a path to record how the text was drawn
pDC->BeginPath();
pDC->TextOut(10, 10, _T("Outline this!"));
pDC->EndPath();
// Find out how many points are in the path. Note that
// for long strings or complex fonts, this number might be
// gigantic!
int nNumPts = pDC->GetPath(NULL, NULL, 0);
if (nNumPts == 0)
return;
// Allocate memory to hold points and stroke types from
// the path.
LPPOINT lpPoints = NULL;
LPBYTE lpTypes = NULL;
try
{
lpPoints = new POINT[nNumPts];
lpTypes = new BYTE[nNumPts];
}
catch (CException *pe)
{
delete[] lpPoints;
lpPoints = NULL;
delete[] lpTypes;
lpTypes = NULL;
pe->Delete();
}
if (lpPoints == NULL || lpTypes == NULL)
return;
// Now that we have the memory, really get the path data.
nNumPts = pDC->GetPath(lpPoints, lpTypes, nNumPts);
// If it worked, draw the lines. Windows 98 doesn't support
// the PolyDraw API, so we use our own member function to do
// similar work. If you're targeting only later versions of
// Windows, you can use the PolyDraw() API and avoid the
// COutlineView::PolyDraw() member function.
if (nNumPts != -1)
pDC->PolyDraw(lpPoints, lpTypes, nNumPts);
// Release the memory we used
delete[] lpPoints;
delete[] lpTypes;
// Put back the old font
pDC->SelectObject(pOldFont);
return;
}
CDC::BitBlt
Kaynak cihaz bağlamından bu geçerli cihaz bağlamı için bit eşlem kopyalar.
BOOL BitBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
DWORD dwRop);
Parameters
x
Hedef dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.
y
Hedef dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.
nWidth
Hedef dikdörtgenin ve kaynak bit eşleminin genişliğini (mantıksal birimlerde) belirtir.
nHeight
Hedef dikdörtgenin ve kaynak bit eşleminin yüksekliğini (mantıksal birimlerde) belirtir.
pSrcDC
Bit eşlemin kopyalanacağı cihaz bağlamını tanımlayan bir CDC nesnenin işaretçisi. Kaynak içermeyen bir raster işlemi belirtiyorsa NULL olmalıdırdwRop.
xSrc
Kaynak bit eşleminin sol üst köşesinin mantıksal x koordinatını belirtir.
ySrc
Kaynak bit eşleminin sol üst köşesinin mantıksal y koordinatını belirtir.
dwRop
Gerçekleştirilecek ızgara işlemini belirtir. Raster-işlem kodları, GDI'nin geçerli fırça, olası bir kaynak bit eşlem ve hedef bit eşlem içeren çıkış işlemlerinde renkleri nasıl birleştirdiğini tanımlar. için raster-operation kodlarının ve açıklamalarının listesi için BitBlt Windows SDK'sına bakın dwRop
Raster-operation kodlarının tam listesi için bkz . Windows SDK'sında Raster İşlem Kodları Hakkında.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Uygulama, işlemlerin bayt hizalı dikdörtgenlerde gerçekleşmesini sağlamak BitBlt için pencereleri veya istemci alanlarını bayt sınırlarına hizalayabilir. (Pencere sınıflarını kaydederken veya CS_BYTEALIGNWINDOW bayraklarını ayarlayınCS_BYTEALIGNCLIENT.)
BitBlt bayt hizalı dikdörtgenlerdeki işlemler, bayt hizalanmamış dikdörtgenlerdeki işlemlerden çok daha BitBlt hızlıdır. Kendi cihaz bağlamınız için bayt hizalama gibi sınıf stilleri belirtmek istiyorsanız, bunu sizin için yapmak için Microsoft Foundation sınıflarına güvenmek yerine bir pencere sınıfı kaydetmeniz gerekir. genel işlevini AfxRegisterWndClasskullanın.
GDI, hedef cihaz bağlamını kullanarak ve nWidthöğesini bir kez kaynak cihaz bağlamını kullanarak dönüştürürnHeight. Elde edilen kapsamlar eşleşmiyorsa GDI, kaynak bit eşlemi gerektiği şekilde sıkıştırmak veya uzatmak için Windows StretchBlt işlevini kullanır.
Hedef, kaynak ve desen bit eşlemleri aynı renk biçimine sahip değilse, BitBlt işlev kaynak ve desen bit eşlemlerini hedefle eşleşecek şekilde dönüştürür. Dönüştürmede hedef bit eşleminin ön plan ve arka plan renkleri kullanılır.
BitBlt İşlev tek renkli bit eşlemi renge dönüştürdüğünde, beyaz bitleri (1) arka plan rengine, siyah bitleri (0) ön plan rengine ayarlar. Hedef cihaz bağlamının ön plan ve arka plan renkleri kullanılır. Rengi tek renkliye dönüştürmek için arka BitBlt plan rengiyle eşleşen pikselleri beyaza, diğer tüm pikselleri de siyah olarak ayarlar.
BitBlt renkten tek renkliye dönüştürmek için renk cihazı bağlamının ön plan ve arka plan renklerini kullanır.
Tüm cihaz bağlamları öğesini desteklemez BitBlt. Belirli bir cihaz bağlamını BitBlt destekleyip desteklemediğini GetDeviceCapsdenetlemek için üye işlevini kullanın ve RASTERCAPS dizinini belirtin.
Example
örneğine CDC::CreateCompatibleDCbakın.
CDC::CDC
Bir CDC nesne oluşturur.
CDC();
CDC::Chord
Bir akor çizer (elips ve çizgi kesiminin kesişimiyle sınırlanmış kapalı bir şekil).
BOOL Chord(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4);
BOOL Chord(
LPCRECT lpRect,
POINT ptStart,
POINT ptEnd);
Parameters
x1
Akor sınırlayıcı dikdörtgeninin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).
y1
Akor sınırlayıcı dikdörtgeninin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).
x2
Akor sınırlayıcı dikdörtgeninin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).
y2
Akor sınırlayıcı dikdörtgeninin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).
x3
Akor başlangıç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde).
y3
Akor'un başlangıç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde).
x4
Akor uç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde).
y4
Akor uç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde).
lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir LPRECT veya CRect nesnesi geçirebilirsiniz.
ptStart
Akor başlangıç noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu nokta tam olarak akorda uzanmak zorunda değil. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
ptEnd
Akor bitiş noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu nokta tam olarak akorda uzanmak zorunda değil. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
( x1, y1) ve ( , x2y2) parametreleri sırasıyla, akor parçası olan üç noktayı sınırlayan bir dikdörtgenin sol üst ve sağ alt köşelerini belirtir. ( x3, y3) ve ( ( x4, y4) parametreleri, üç noktayla kesişen bir satırın uç noktalarını belirtir. Akor, seçili kalem kullanılarak çizilir ve seçili fırça kullanılarak doldurulur.
İşlev tarafından Chord çizilen şekil sonuna kadar uzanır, ancak sağ ve alt koordinatları içermez. Bu, şeklin yüksekliğinin ve y2 - y1 şeklin genişliğinin olduğu x2 - x1anlamına gelir.
Example
void CDCView::DrawChord(CDC *pDC)
{
// Fill the client area with a circle. The circle is
// blue and filled with blue, but has a chord cut out
// of it from 3 o'clock to 6 o'clock. That chord is
// red and filled with a red diagonal hatch.
// Get the client area.
CRect rectClient;
GetClientRect(rectClient);
// Make a couple of pens and similar brushes.
CPen penBlue, penRed;
CBrush brushBlue, brushRed;
CBrush *pOldBrush;
CPen *pOldPen;
brushBlue.CreateSolidBrush(RGB(0, 0, 255));
brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));
// Draw from 3 o'clock to 6 o'clock, counterclockwise,
// in a blue pen with a solid blue fill.
pOldPen = pDC->SelectObject(&penBlue);
pOldBrush = pDC->SelectObject(&brushBlue);
pDC->Chord(rectClient,
CPoint(rectClient.right, rectClient.CenterPoint().y),
CPoint(rectClient.CenterPoint().x, rectClient.right));
// Draw the remaining quarter chord from 6 o'clock
// to 3 o'clock, counterclockwise, in a red pen
// with the hatched brush.
pDC->SelectObject(&penRed);
pDC->SelectObject(&brushRed);
// Keep the same parameters, but reverse start and
// end points.
pDC->Chord(rectClient,
CPoint(rectClient.CenterPoint().x, rectClient.right),
CPoint(rectClient.right, rectClient.CenterPoint().y));
// Restore the previous pen.
pDC->SelectObject(pOldPen);
}
CDC::CloseFigure
Yoldaki açık bir şekli kapatır.
BOOL CloseFigure();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
İşlev, geçerli konumdan şeklin ilk noktasına (genellikle üye işleve yapılan en son çağrı MoveTo tarafından belirtilen nokta) bir çizgi çizerek şekli kapatır ve çizgi birleştirme stilini kullanarak çizgileri bağlar. Bir şekil yerine üye işlevi LineTokullanılarak CloseFigure kapatılırsa, birleştirme yerine köşeyi oluşturmak için uç büyük harfler kullanılır.
CloseFigure yalnızca cihaz bağlamında açık bir yol ayracı varsa çağrılmalıdır.
Yoldaki bir şekil, bu işlev kullanılarak açıkça kapatılmadığı sürece açıktır. (Bir şekil, geçerli nokta ve şeklin başlangıç noktası aynı olsa bile açık olabilir.) Yeni bir şekil başlatıldıktan sonra CloseFigure yola eklenen herhangi bir çizgi veya eğri.
CDC::CreateCompatibleDC
tarafından pDCbelirtilen cihazla uyumlu bir bellek cihazı bağlamı oluşturur.
BOOL CreateCompatibleDC(CDC* pDC);
Parameters
pDC
Cihaz bağlamı işaretçisi. ise pDCNULL, işlev sistem görüntüsüyle uyumlu bir bellek cihazı bağlamı oluşturur.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bellek cihazı bağlamı, bir ekran yüzeyini temsil eden bir bellek bloğudur. Görüntüleri uyumlu cihazın gerçek cihaz yüzeyine kopyalamadan önce bellekte hazırlamak için kullanılabilir.
Bir bellek cihazı bağlamı oluşturulduğunda GDI otomatik olarak 1'e 1 tek renkli bir bit eşlem seçer. GDI çıkış işlevleri, bellek cihazı bağlamı ile yalnızca bir bit eşlem oluşturulmuş ve bu bağlamda seçilmişse kullanılabilir.
Bu işlev yalnızca tarama işlemlerini destekleyen cihazlar için uyumlu cihaz bağlamları oluşturmak için kullanılabilir. Cihaz bağlamları CDC::BitBlt arasındaki bit bloğu aktarımlarıyla ilgili bilgi için üye işlevine bakın. Cihaz bağlamlarının tarama işlemlerini destekleyip desteklemediğini belirlemek için üye işlevindeki RC_BITBLTraster özelliğine bakınCDC::GetDeviceCaps.
Example
// This handler loads a bitmap from system resources,
// centers it in the view, and uses BitBlt() to paint the bitmap
// bits.
void CDCView::DrawBitmap(CDC *pDC)
{
// load IDB_BITMAP1 from our resources
CBitmap bmp;
if (bmp.LoadBitmap(IDB_BITMAP1))
{
// Get the size of the bitmap
BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);
// Create an in-memory DC compatible with the
// display DC we're using to paint
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
// Select the bitmap into the in-memory DC
CBitmap *pOldBitmap = dcMemory.SelectObject(&bmp);
// Find a centerpoint for the bitmap in the client area
CRect rect;
GetClientRect(&rect);
int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;
// Copy the bits from the in-memory DC into the on-
// screen DC to actually do the painting. Use the centerpoint
// we computed for the target offset.
pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
0, 0, SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
}
else
{
TRACE0("ERROR: Where's IDB_BITMAP1?\n");
}
}
CDC::CreateDC
Belirtilen cihaz için bir cihaz bağlamı oluşturur.
BOOL CreateDC(
LPCTSTR lpszDriverName,
LPCTSTR lpszDeviceName,
LPCTSTR lpszOutput,
const void* lpInitData);
Parameters
lpszDriverName
Cihaz sürücüsünün dosya adını (uzantısız) belirten null olarak sonlandırılan bir dizeye işaret eder (örneğin, "EPSON"). Bu parametre için bir CString nesne de geçirebilirsiniz.
lpszDeviceName
Desteklenecek belirli bir cihazın adını belirten null olarak sonlandırılan bir dizeye işaret eder (örneğin, "EPSON FX-80").
lpszDeviceName modülü birden fazla cihazı destekliyorsa parametresi kullanılır. Bu parametre için bir CString nesne de geçirebilirsiniz.
lpszOutput
Fiziksel çıkış ortamı (dosya veya çıkış bağlantı noktası) için dosya veya cihaz adını belirten null olarak sonlandırılan bir dizeye işaret eder. Bu parametre için bir CString nesne de geçirebilirsiniz.
lpInitData
Cihaz sürücüsü için cihaza özgü başlatma verilerini içeren bir DEVMODE yapıyı gösterir. Windows DocumentProperties işlevi, belirli bir cihaz için bu yapıyı doldurulmuş olarak alır. Parametre, lpInitData cihaz sürücüsünün Denetim Masası aracılığıyla kullanıcı tarafından belirtilen varsayılan başlatmayı (varsa) kullanması durumunda olmalıdırNULL.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Yapı PRINT.H kullanılıyorsa DEVMODE üst bilgi dosyası gereklidir.
Cihaz adları şu kurallara uyar: bir bitiş iki nokta üst üste (:) önerilir, ancak isteğe bağlıdır. Windows, iki nokta üst üste ile biten bir cihaz adının iki nokta üst üste olmadan aynı adla aynı bağlantı noktasına eşlenmesi için sonlandırıcı iki nokta üst üsteyi şeritler. Sürücü ve bağlantı noktası adları baştaki veya sondaki boşlukları içermemelidir. GDI çıkış işlevleri bilgi bağlamlarıyla kullanılamaz.
CDC::CreateIC
Belirtilen cihaz için bir bilgi bağlamı oluşturur.
BOOL CreateIC(
LPCTSTR lpszDriverName,
LPCTSTR lpszDeviceName,
LPCTSTR lpszOutput,
const void* lpInitData);
Parameters
lpszDriverName
Cihaz sürücüsünün dosya adını (uzantısız) belirten null olarak sonlandırılan bir dizeye işaret eder (örneğin, "EPSON"). Bu parametre için bir CString nesne geçirebilirsiniz.
lpszDeviceName
Desteklenecek belirli bir cihazın adını belirten null olarak sonlandırılan bir dizeye işaret eder (örneğin, "EPSON FX-80").
lpszDeviceName modülü birden fazla cihazı destekliyorsa parametresi kullanılır. Bu parametre için bir CString nesne geçirebilirsiniz.
lpszOutput
Fiziksel çıkış ortamı (dosya veya bağlantı noktası) için dosya veya cihaz adını belirten null olarak sonlandırılan bir dizeye işaret eder. Bu parametre için bir CString nesne geçirebilirsiniz.
lpInitData
Cihaz sürücüsü için cihaza özgü başlatma verilerini gösterir. Parametre, lpInitData cihaz sürücüsünün Denetim Masası aracılığıyla kullanıcı tarafından belirtilen varsayılan başlatmayı (varsa) kullanması durumunda olmalıdırNULL. Cihaza özgü başlatma için veri biçimi için bkz CreateDC .
Return Value
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Remarks
Bilgi bağlamı, cihaz bağlamı oluşturmadan cihaz hakkında bilgi almak için hızlı bir yol sağlar.
Cihaz adları şu kurallara uyar: bir bitiş iki nokta üst üste (:) önerilir, ancak isteğe bağlıdır. Windows, iki nokta üst üste ile biten bir cihaz adının iki nokta üst üste olmadan aynı adla aynı bağlantı noktasına eşlenmesi için sonlandırıcı iki nokta üst üsteyi şeritler. Sürücü ve bağlantı noktası adları baştaki veya sondaki boşlukları içermemelidir. GDI çıkış işlevleri bilgi bağlamlarıyla kullanılamaz.
CDC::DeleteDC
Genel olarak, bu işlevi çağırmayın; yok edici bunu sizin için yapacaktır.
BOOL DeleteDC();
Return Value
İşlev başarıyla tamamlandıysa sıfır olmayan; aksi takdirde 0.
Remarks
DeleteDC Üye işlevi, geçerli m_hDC nesnede ile CDC ilişkilendirilmiş Windows cihaz bağlamlarını siler. Bu CDC nesne belirli bir cihazın son etkin cihaz bağlamıysa, cihaz tarafından kullanılan tüm depolama ve sistem kaynakları serbest bırakılır.
Bir uygulama, cihaz bağlamında nesneler seçilmişse çağrı DeleteDC yapmamalıdır. Nesneler silinmeden önce cihaz bağlamından seçilmelidir.
Bir uygulama, tanıtıcısı çağrılarak CWnd::GetDCelde edilen bir cihaz bağlamını silmemelidir. Bunun yerine, cihaz bağlamını boşaltmak için çağrısı CWnd::ReleaseDC yapmalıdır.
CClientDC ve CWindowDC sınıfları bu işlevselliği sarmak için sağlanır.
DeleteDC işlevi genellikle , CreateDCveya CreateICile CreateCompatibleDColuşturulan cihaz bağlamlarını silmek için kullanılır.
Example
örneğine CPrintDialog::GetPrinterDCbakın.
CDC::DeleteTempMap
Boşta kalma zamanı işleyicisi tarafından CWinApp otomatik olarak çağrılır, DeleteTempMap tarafından CDColuşturulan geçici FromHandle nesneleri siler, ancak nesnelerle hDC geçici olarak ilişkili cihaz bağlam tutamaçlarını (CDCtanıtıcılarını) yok etmez.
static void PASCAL DeleteTempMap();
CDC::Detach
Nesneden ayırmak m_hDC (çıkış cihazı bağlamı) ve hem hem de CDCm_hDC olarak ayarlamak için m_hAttribDCbu işlevi çağırınNULL.
HDC Detach();
Return Value
Windows cihaz bağlamı.
CDC::DPtoHIMETRIC
Ole'ye boyut verirseniz HIMETRIC pikselleri HIMETRICdeğerine dönüştürürken bu işlevi kullanın.
void DPtoHIMETRIC(LPSIZE lpSize) const;
Parameters
lpSize
SIZE yapısını veya CSize nesnesini gösterir.
Remarks
Cihaz bağlam nesnesinin MM_LOENGLISHeşleme modu , MM_HIENGLISH, MM_LOMETRICveya MM_HIMETRICise dönüştürme, fiziksel inçteki piksel sayısını temel alır. Eşleme modu diğer kısıtlanmamış modlardan biriyse (örneğin, MM_TEXT), dönüştürme işlemi mantıksal inçteki piksel sayısını temel alır.
CDC::DPtoLP
Cihaz birimlerini mantıksal birimlere dönüştürür.
void DPtoLP(
LPPOINT lpPoints,
int nCount = 1) const;
void DPtoLP(LPRECT lpRect) const;
void DPtoLP(LPSIZE lpSize) const;
Parameters
lpPoints
Bir yapı veya POINT nesne dizisine CPoint işaret eder.
nCount
Dizideki nokta sayısı.
lpRect
Bir RECT yapıyı veya CRect nesneyi gösterir. Bu parametre, bir dikdörtgenin cihaz noktalarından mantıksal noktalara dönüştürülmesi için kullanılır.
lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.
Remarks
İşlev, her noktanın koordinatlarını veya bir boyutun boyutunu cihaz koordinat sisteminden GDI'nın mantıksal koordinat sistemine eşler. Dönüştürme, geçerli eşleme moduna ve cihazın penceresi ve görünüm penceresi için çıkış noktalarının ve kapsamlarının ayarlarına bağlıdır.
CDC::Draw3dRect
Üç boyutlu bir dikdörtgen çizmek için bu üye işlevini çağırın.
void Draw3dRect(
LPCRECT lpRect,
COLORREF clrTopLeft,
COLORREF clrBottomRight);
void Draw3dRect(
int x,
int y,
int cx,
int cy,
COLORREF clrTopLeft,
COLORREF clrBottomRight);
Parameters
lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir RECT yapıya veya nesneye işaretçi CRect geçirebilirsiniz.
clrTopLeft
Üç boyutlu dikdörtgenin üst ve sol kenarlarının rengini belirtir.
clrBottomRight
Üç boyutlu dikdörtgenin alt ve sağ kenarlarının rengini belirtir.
x
Üç boyutlu dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.
y
Üç boyutlu dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.
cx
Üç boyutlu dikdörtgenin genişliğini belirtir.
cy
Üç boyutlu dikdörtgenin yüksekliğini belirtir.
Remarks
Dikdörtgen, tarafından belirtilen renkte üst ve sol kenarlar, ile belirtilen clrTopLeft renkte clrBottomRightise alt ve sağ kenarlar çizilir.
Example
void CDCView::Draw3dRect(CDC *pDC)
{
// get the client area
CRect rect;
GetClientRect(rect);
// shrink our rect 20 pixels on all sides
rect.DeflateRect(20, 20);
// draw a rectangle with red top and left sides, and
// green right and bottom sides.
pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 255, 0));
// This call to the four-integer override would draw
// the same rectangle with a little less convenience:
// pDC->Draw3dRect(rect.left, rect.top, rect.Width(), rect.Height(),
// RGB(255, 0, 0), RGB(0, 255, 0));
}
CDC::DrawDragRect
Sürükleme dikdörtgeni yeniden çizmek için bu üye işlevini art arda çağırın.
void DrawDragRect(
LPCRECT lpRect,
SIZE size,
LPCRECT lpRectLast,
SIZE sizeLast,
CBrush* pBrush = NULL,
CBrush* pBrushLast = NULL);
Parameters
lpRect
Bir RECT yapıya veya dikdörtgenin CRect mantıksal koordinatlarını belirten bir nesneye işaret eder; bu örnekte, yeniden çizilmekte olan dikdörtgenin bitiş konumu.
size
Bir dikdörtgenin dış kenarlarının sol üst köşesinden iç kenarlık (kenarlık kalınlığı) için sol üst köşeye yer değiştirme işlemini belirtir.
lpRectLast
Bir RECT yapıya veya dikdörtgenin CRect konumunun mantıksal koordinatlarını belirten bir nesneye işaret eder; bu örnekte, yeniden çizilmekte olan dikdörtgenin özgün konumu.
sizeLast
Yeniden çizilmekte olan özgün dikdörtgenin dış kenarlık sol üst köşesinden iç kenarlık (yani kenarlık kalınlığı) sol üst köşesine yer değiştirme işlemini belirtir.
pBrush
Fırça nesnesinin işaretçisi.
NULL Varsayılan yarım ton fırçasını kullanmak için olarak ayarlayın.
pBrushLast
Kullanılan son fırça nesnesinin işaretçisi.
NULL Varsayılan yarım ton fırçasını kullanmak için olarak ayarlayın.
Remarks
Görsel geri bildirim sağlamak için fare konumunu örneklediğiniz gibi döngüde çağırabilirsiniz. çağırdığınızda DrawDragRect, önceki dikdörtgen silinir ve yeni bir dikdörtgen çizilir. Örneğin, kullanıcı bir dikdörtgeni ekranda sürüklerken özgün DrawDragRect dikdörtgeni siler ve yeni bir dikdörtgeni yeni konumunda yeniden çizer. Varsayılan olarak, DrawDragRect titremeyi ortadan kaldırmak ve düzgün hareket eden bir dikdörtgenin görünümünü oluşturmak için yarım tonlu fırça kullanarak dikdörtgeni çizer.
öğesini ilk kez çağırdığınızda DrawDragRectlpRectLast parametresi olmalıdırNULL.
CDC::DrawEdge
Belirtilen türde ve stilde bir dikdörtgenin kenarlarını çizmek için bu üye işlevini çağırın.
BOOL DrawEdge(
LPRECT lpRect,
UINT nEdge,
UINT nFlags);
Parameters
lpRect
Dikdörtgenin mantıksal koordinatlarını içeren bir RECT yapıya yönelik işaretçi.
nEdge
Çizecek iç ve dış kenarın türünü belirtir. Bu parametre, bir iç kenarlık bayrağı ve bir dış kenarlık bayrağının birleşimi olmalıdır. Parametre türlerinin tablosu için Bkz DrawEdge . Windows SDK'sı.
nFlags
Çizilecek kenarlık türünü belirten bayraklar. Parametre değerlerinin bir tablosu için Bkz DrawEdge . Windows SDK'sı. Çapraz çizgiler için, BF_RECT bayraklar dikdörtgen parametresiyle sınırlanan vektörünün bitiş noktasını belirtir.
Return Value
Başarılı olursa sıfır olmayan; aksi takdirde 0.
CDC::DrawEscape
Grafik cihaz arabirimi (GDI) aracılığıyla doğrudan kullanılamamış bir video ekranının çizim özelliklerine erişir.
int DrawEscape(
int nEscape,
int nInputSize,
LPCSTR lpszInputData);
Parameters
nEscape
Gerçekleştirilecek kaçış işlevini belirtir.
nInputSize
parametresi tarafından işaret edilen lpszInputData veri bayt sayısını belirtir.
lpszInputData
Belirtilen kaçış için gereken giriş yapısını gösterir.
Return Value
İşlevin sonucunu belirtir. Yalnızca uygulamayı denetleyen çizim kaçışı QUERYESCSUPPORT dışında başarılı olursa sıfırdan büyük; kaçış uygulanmadıysa sıfırdan büyük veya hata oluştuğunda sıfırdan küçük.
Remarks
Bir uygulama tarafından çağrıldığında DrawEscapeve nInputSize tarafından lpszInputData tanımlanan veriler doğrudan belirtilen görüntü sürücüsüne geçirilir.
CDC::DrawFocusRect
Odağın dikdörtgende olduğunu belirtmek için kullanılan stilde bir dikdörtgen çizer.
void DrawFocusRect(LPCRECT lpRect);
Parameters
lpRect
Çizilecek dikdörtgenin mantıksal koordinatlarını belirten bir RECTCRect yapıya veya nesneye işaret eder.
Remarks
Bu bir Boole XOR (^) işlevi olduğundan, bu işlevin aynı dikdörtgenle ikinci kez çağrılması dikdörtgeni ekrandan kaldırır. Bu işlev tarafından çizilen dikdörtgen kaydırılamaz. Bu işlev tarafından çizilen dikdörtgen içeren bir alanı kaydırmak için, önce dikdörtgeni ekrandan kaldırmak için çağırın DrawFocusRect , sonra alanı kaydırın ve sonra dikdörtgeni yeni konuma çizmek için yeniden çağırın DrawFocusRect .
Caution
DrawFocusRect yalnızca modda MM_TEXT çalışır. Diğer modlarda bu işlev odak dikdörtgenini doğru çizmez, ancak hata değerleri döndürmez.
CDC::DrawFrameControl
Belirtilen tür ve stile ait bir çerçeve denetimi çizmek için bu üye işlevini çağırın.
BOOL DrawFrameControl(
LPRECT lpRect,
UINT nType,
UINT nState);
Parameters
lpRect
Dikdörtgenin mantıksal koordinatlarını içeren bir RECT yapıya yönelik işaretçi.
nType
Çizecek çerçeve denetiminin türünü belirtir. Bu parametrenin uTypeDrawFrameControl olası değerlerinin listesi için Windows SDK'sında parametresine bakın.
nState
Çerçeve denetiminin ilk durumunu belirtir. Windows SDK'sında parametresi uState için DrawFrameControl açıklanan değerlerden biri veya daha fazlası olabilir. Sınırlayıcı dikdörtgeni nState , düğmenin çevresindeki kenarı dışlayacak şekilde ayarlamak için değerini DFCS_ADJUSTRECT kullanın.
Return Value
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Remarks
Bazı durumlarda parametresine nStatenType bağlıdır. Aşağıdaki listede dört nType değer ile nStatearasındaki ilişki gösterilmektedir:
DFC_BUTTONDFCS_BUTTON3STATEÜç durumlu düğmeDFCS_BUTTONCHECKOnay kutusuDFCS_BUTTONPUSHDüğmeDFCS_BUTTONRADIOSeçenek düğmesiDFCS_BUTTONRADIOIMAGERadyo düğmesi için görüntü (nonsquare needs image)DFCS_BUTTONRADIOMASKRadyo düğmesi için maske (nonsquare maske gerekiyor)
DFC_CAPTIONDFCS_CAPTIONCLOSEKapat düğmesiDFCS_CAPTIONHELPYardım düğmesiDFCS_CAPTIONMAXEkranı Kapla düğmesiDFCS_CAPTIONMINSimge Durumuna Küçült düğmesiDFCS_CAPTIONRESTOREGeri Yükle düğmesi
DFC_MENUDFCS_MENUARROWAlt menü okuDFCS_MENUBULLETMermiDFCS_MENUCHECKOnay işareti
DFC_SCROLLDFCS_SCROLLCOMBOBOXBirleşik giriş kutusu kaydırma çubuğuDFCS_SCROLLDOWNKaydırma çubuğunun aşağı okuDFCS_SCROLLLEFTKaydırma çubuğunun sol okuDFCS_SCROLLRIGHTKaydırma çubuğunun sağ okuDFCS_SCROLLSIZEGRIPPencerenin sağ alt köşesindeki boyut kavramaDFCS_SCROLLUPKaydırma çubuğunun yukarı oku
Example
Bu kod, pencerenizin sağ alt köşesindeki boyut tutucuyu çizer. Stilleri olmayan ve normalde boyut kavrama özelliği verebilen başka denetimler (durum çubuğu gibi) içermeyen bir iletişim kutusunun işleyicisi için OnPaint uygundur.
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
Geçerli CDC nesne tarafından temsil edilen cihazda bir simge çizer.
BOOL DrawIcon(
int x,
int y,
HICON hIcon);
BOOL DrawIcon(
POINT point,
HICON hIcon);
Parameters
x
Simgenin sol üst köşesinin mantıksal x koordinatını belirtir.
y
Simgenin sol üst köşesinin mantıksal y koordinatını belirtir.
hIcon
Çizilecek simgenin tutamacını tanımlar.
point
Simgenin sol üst köşesinin mantıksal x ve y koordinatlarını belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
İşlev başarıyla tamamlandıysa sıfır olmayan; aksi takdirde 0.
Remarks
işlevi, simgenin sol üst köşesini ve xtarafından y belirtilen konuma yerleştirir. Konum, cihaz bağlamının geçerli eşleme moduna tabidir.
Simge kaynağı daha önce , CWinApp::LoadIconveya CWinApp::LoadStandardIconişlevleri CWinApp::LoadOEMIconkullanılarak yüklenmiş olmalıdır. Bu MM_TEXT işlev kullanmadan önce eşleme modu seçilmelidir.
Example
örneğine CWnd::IsIconicbakın.
CDC::DrawState
Bu üye işlevini çağırarak bir görüntü görüntüleyin ve devre dışı veya varsayılan durum gibi bir durumu göstermek için görsel efekt uygulayın.
Note
dışındaki tüm nFlag durumlar için DSS_NORMAL, görsel efekti uygulanmadan önce görüntü tek renkliye dönüştürülür.
BOOL DrawState(
CPoint pt,
CSize size,
HBITMAP hBitmap,
UINT nFlags,
HBRUSH hBrush = NULL);
BOOL DrawState(
CPoint pt,
CSize size,
CBitmap* pBitmap,
UINT nFlags,
CBrush* pBrush = NULL);
BOOL DrawState(
CPoint pt,
CSize size,
HICON hIcon,
UINT nFlags,
HBRUSH hBrush = NULL);
BOOL DrawState(
CPoint pt,
CSize size,
HICON hIcon,
UINT nFlags,
CBrush* pBrush = NULL);
BOOL DrawState(
CPoint pt,
CSize size,
LPCTSTR lpszText,
UINT nFlags,
BOOL bPrefixText = TRUE,
int nTextLen = 0,
HBRUSH hBrush = NULL);
BOOL DrawState(
CPoint pt,
CSize size,
LPCTSTR lpszText,
UINT nFlags,
BOOL bPrefixText = TRUE,
int nTextLen = 0,
CBrush* pBrush = NULL);
BOOL DrawState(
CPoint pt,
CSize size,
DRAWSTATEPROC lpDrawProc,
LPARAM lData,
UINT nFlags,
HBRUSH hBrush = NULL);
BOOL DrawState(
CPoint pt,
CSize size,
DRAWSTATEPROC lpDrawProc,
LPARAM lData,
UINT nFlags,
CBrush* pBrush = NULL);
Parameters
pt
Görüntünün konumunu belirtir.
size
Görüntünün boyutunu belirtir.
hBitmap
Bit eşlem tutamacı.
nFlags
Görüntü türünü ve durumunu belirten bayraklar. Olası DrawState türleri ve durumları için Bkz. Windows SDK'sı.
hBrush
Fırçanın tutamacı.
pBitmap
Nesne işaretçisi CBitmap .
pBrush
Nesne işaretçisi CBrush .
hIcon
Simgenin tutamacı.
lpszText
Metin işaretçisi.
bPrefixText
Hızlandırıcı anımsatıcısı içerebilen metin.
lData parametresi dizenin adresini, parametresi ise nTextLen uzunluğunu belirtir. 0 ise nTextLen , dizenin null olarak sonlandırıldığı varsayılır.
nTextLen
tarafından lpszTextişaret edilen metin dizesinin uzunluğu. 0 ise nTextLen , dizenin null olarak sonlandırıldığı varsayılır.
lpDrawProc
Bir görüntüyü işlemek için kullanılan geri çağırma işlevinin işaretçisi. içindeki görüntü türü nFlags ise bu DST_COMPLEXparametre gereklidir. İsteğe bağlıdır ve görüntü türü ise NULLolabilirDST_TEXT. Diğer tüm görüntü türleri için bu parametre yoksayılır. Geri çağırma işlevi hakkında daha fazla bilgi için Bkz DrawStateProc . Windows SDK'sında işlev.
lData
Görüntü hakkındaki bilgileri belirtir. Bu parametrenin anlamı görüntü türüne bağlıdır.
Return Value
Başarılı olursa sıfır olmayan; aksi takdirde 0.
CDC::DrawText
Verilen dikdörtgendeki metni biçimlendirmek için bu üye işlevini çağırın. Daha fazla biçimlendirme seçeneği belirtmek için kullanın CDC::DrawTextEx.
virtual int DrawText(
LPCTSTR lpszString,
int nCount,
LPRECT lpRect,
UINT nFormat);
int DrawText(
const CString& str,
LPRECT lpRect,
UINT nFormat);
Parameters
lpszString
Çizilecek dizeyi gösterir. -1 ise nCount , dize null olarak sonlandırılmalıdır.
nCount
Dizedeki karakter sayısını belirtir. -1 ise nCount , lpszString null ile sonlandırılan bir dize için uzun bir işaretçi olduğu varsayılır ve DrawText karakter sayısını otomatik olarak hesaplar.
lpRect
Metnin biçimlendirileceği dikdörtgeni (mantıksal koordinatlarda) içeren bir RECT yapıya veya CRect nesneye işaret eder.
str
CString Çizilecek belirtilen karakterleri içeren bir nesne.
nFormat
Metni biçimlendirme yöntemini belirtir. Windows SDK'sında parametresi uFormat için açıklanan değerlerin DrawText herhangi bir bileşimi olabilir. (bit düzeyinde OR işlecini kullanarak birleştirin):
Note
Bazı uFormat bayrak bileşimleri, geçirilen dizenin değiştirilmesine neden olabilir. veya DT_MODIFYSTRING ile kullanmak DT_END_ELLIPSISDT_PATH_ELLIPSIS dizenin değiştirilmesine neden olabilir ve geçersiz kılmada bir onay işlemine CString neden olabilir. , , DT_CALCRECT, DT_EXTERNALLEADINGDT_INTERNALve DT_NOCLIP değerleri DT_NOPREFIXdeğerle DT_TABSTOP kullanılamaz.
Return Value
İşlev başarılı olursa metnin yüksekliği.
Remarks
Sekmeleri uygun boşluklara genişleterek, metni verilen dikdörtgenin soluna, sağa veya ortasına hizalayarak ve metni verilen dikdörtgene sığan çizgilere bölerek metni biçimlendirir. Biçimlendirme türü tarafından nFormatbelirtilir.
Bu üye işlevi, cihaz bağlamı tarafından seçilen yazı tipini, metin rengini ve arka plan rengini kullanarak metni çizer.
DT_NOCLIP Biçim kullanılmadığı sürece, DrawText metnin verilen dikdörtgenin dışında görünmemesi için metni klipler. Biçim verilmediği sürece tüm biçimlendirmenin birden çok satıra DT_SINGLELINE sahip olduğu varsayılır.
Seçilen yazı tipi belirtilen dikdörtgen için çok büyükse, DrawText üye işlevi daha küçük bir yazı tipinin yerini almaz.
DT_CALCRECT Bayrağı belirtilirse, tarafından lpRect belirtilen dikdörtgen metni çizmek için gereken genişliği ve yüksekliği yansıtacak şekilde güncelleştirilir.
TA_UPDATECP Metin hizalama bayrağı ayarlanmışsa (bkzCDC::SetTextAlign. ), DrawText verilen dikdörtgenin solu yerine geçerli konumdan başlayan metni görüntüler.
DrawText bayrağı ayarlandığında metni TA_UPDATECP kaydırmaz (başka bir ifadeyle bayrağın DT_WORDBREAK hiçbir etkisi olmaz).
Metin rengi tarafından CDC::SetTextColorayarlanabilir.
CDC::DrawTextEx
Verilen dikdörtgendeki metni biçimlendirin.
virtual int DrawTextEx(
LPTSTR lpszString,
int nCount,
LPRECT lpRect,
UINT nFormat,
LPDRAWTEXTPARAMS lpDTParams);
int DrawTextEx(
const CString& str,
LPRECT lpRect,
UINT nFormat,
LPDRAWTEXTPARAMS lpDTParams);
Parameters
lpszString
Çizilecek dizeyi gösterir. -1 ise nCount , dize null olarak sonlandırılmalıdır.
nCount
Dizedeki karakter sayısını belirtir. -1 ise nCount , lpszString null ile sonlandırılan bir dize için uzun bir işaretçi olduğu varsayılır ve DrawText karakter sayısını otomatik olarak hesaplar.
lpRect
Metnin biçimlendirileceği dikdörtgeni (mantıksal koordinatlarda) içeren bir RECT yapıya veya CRect nesneye işaret eder.
str
CString Çizilecek belirtilen karakterleri içeren bir nesne.
nFormat
Metni biçimlendirme yöntemini belirtir. Windows SDK'sında parametresi uFormat için açıklanan değerlerin DrawText herhangi bir bileşimi olabilir. (Bit düzeyinde kullanarak birleştirmeOR işleci:
Note
Bazı uFormat bayrak bileşimleri, geçirilen dizenin değiştirilmesine neden olabilir. veya DT_MODIFYSTRING ile kullanmak DT_END_ELLIPSISDT_PATH_ELLIPSIS dizenin değiştirilmesine neden olabilir ve geçersiz kılmada bir onay işlemine CString neden olabilir. , , DT_CALCRECT, DT_EXTERNALLEADINGDT_INTERNALve DT_NOCLIP değerleri DT_NOPREFIXdeğerle DT_TABSTOP kullanılamaz.
lpDTParams
Daha fazla biçimlendirme seçeneği belirten bir DRAWTEXTPARAMS yapı işaretçisi. Bu parametre olabilir NULL.
Remarks
Sekmeleri uygun boşluklara genişleterek, metni verilen dikdörtgenin soluna, sağa veya ortasına hizalayarak ve metni verilen dikdörtgene sığan çizgilere bölerek metni biçimlendirir. Biçimlendirme türü ve nFormattarafından lpDTParams belirtilir. Daha fazla bilgi için windows SDK'sında ve CDC::DrawText bölümüne bakınDrawTextEx.
Metin rengi tarafından CDC::SetTextColorayarlanabilir.
CDC::Ellipse
Üç nokta çizer.
BOOL Ellipse(
int x1,
int y1,
int x2,
int y2);
BOOL Ellipse(LPCRECT lpRect);
Parameters
x1
Üç noktanın sınırlayıcı dikdörtgeninin sol üst köşesinin mantıksal x koordinatını belirtir.
y1
Üç noktanın sınırlayıcı dikdörtgeninin sol üst köşesinin mantıksal y koordinatını belirtir.
x2
Üç noktanın sınırlayıcı dikdörtgeninin sağ alt köşesinin mantıksal x koordinatını belirtir.
y2
Üç noktanın sınırlayıcı dikdörtgeninin sağ alt köşesinin mantıksal y koordinatını belirtir.
lpRect
Üç noktanın sınırlayıcı dikdörtgenini belirtir. Bu parametre için bir CRect nesne de geçirebilirsiniz.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Üç noktanın merkezi, , , x1y1ve x2veya y2tarafından lpRectbelirtilen sınırlayıcı dikdörtgenin merkezidir. Elips geçerli kalemle çizilir ve iç kısmı geçerli fırçayla doldurulur.
Bu işlev tarafından çizilen şekil, sağ ve alt koordinatlara kadar uzanır ancak bu rakamı içermez. Bu, şeklin yüksekliğinin ve y2 - y1 şeklin genişliğinin olduğu x2 - x1anlamına gelir.
Sınırlayıcı dikdörtgenin genişliği veya yüksekliği 0 ise, elips çizilmemiştir.
CDC::EndDoc
Üye işlevine yapılan bir çağrıyla başlatılan yazdırma işini sonlandırır StartDoc .
int EndDoc();
Return Value
İşlev başarılı olursa 0'dan büyük veya buna eşit veya hata oluşursa negatif bir değer.
Remarks
Bu üye işlevi yazıcı çıkışını ENDDOC değiştirir ve başarılı bir yazdırma işi tamamlandıktan hemen sonra çağrılmalıdır.
Bir uygulama yazdırma hatasıyla veya iptal edilmiş yazdırma işlemiyle karşılaşırsa veya EndDockullanarak AbortDoc işlemi sonlandırmayı denememelidir. GDI, hata değerini döndürmeden önce işlemi otomatik olarak sonlandırır.
Bu işlev meta dosyaları içinde kullanılmamalıdır.
Example
örneğine CDC::StartDocbakın.
CDC::EndPage
Cihaza uygulamanın bir sayfaya yazmayı bitirdiğini bildirir.
int EndPage();
Return Value
İşlev başarılı olursa 0'dan büyük veya buna eşit veya hata oluşursa negatif bir değer.
Remarks
Bu üye işlevi genellikle cihaz sürücüsünü yeni bir sayfaya ilerlemeye yönlendirmek için kullanılır.
Bu üye işlevi yazıcı çıkışının NEWFRAME yerini alır. 'den farklı olarak NEWFRAME, bu işlev her zaman sayfa yazdırıldıktan sonra çağrılır.
Example
örneğine CDC::StartDocbakın.
CDC::EndPath
Bir yol ayracı kapatır ve ayraç tarafından cihaz bağlamı içinde tanımlanan yolu seçer.
BOOL EndPath();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Example
örneğine CDC::BeginPathbakın.
CDC::EnumObjects
Cihaz bağlamında kullanılabilen kalemleri ve fırçaları numaralandırır.
int EnumObjects(
int nObjectType,
int (CALLBACK* lpfn)(
LPVOID,
LPARAM),
LPARAM lpData);
Parameters
nObjectType
Nesne türünü belirtir. veya OBJ_BRUSHdeğerlerine OBJ_PEN sahip olabilir.
lpfn
Uygulama tarafından sağlanan geri çağırma işlevinin yordam örneği adresidir. Aşağıdaki "Açıklamalar" bölümüne bakın.
lpData
Uygulama tarafından sağlanan verileri gösterir. Veriler, nesne bilgileriyle birlikte geri çağırma işlevine geçirilir.
Return Value
Geri çağırma işlevi tarafından döndürülen son değeri belirtir. Anlamı kullanıcı tanımlıdır.
Remarks
Belirli bir türdeki her nesne için geçirdiğiniz geri çağırma işlevi, bu nesnenin bilgileriyle birlikte çağrılır. Sistem, başka nesne kalmayıncaya veya geri çağırma işlevi 0 döndürene kadar geri çağırma işlevini çağırır.
Microsoft Visual C++ uygulamasının yeni özellikleri, işlevi 'ye geçirilirken sıradan bir işlev kullanmanıza EnumObjectsolanak tanır. geçirilen EnumObjects adres, Pascal çağrı kuralıyla ve ile EXPORT dışarı aktarılan bir işlevin işaretçisidir. Koruma modu uygulamalarında bu işlevi Windows işleviyle oluşturmanız veya Windows MakeProcInstance işleviyle FreeProcInstance kullandıktan sonra işlevi serbest bırakmanız gerekmez.
Ayrıca uygulamanızın modül tanımı dosyasındaki bir EXPORTS deyimde işlev adını dışarı aktarmanız gerekmez. Bunun yerine işlev değiştiricisini EXPORT aşağıdaki gibi kullanabilirsiniz:
int CALLBACK EXPORT AFunction (LPSTR, LPSTR);
derleyicinin diğer ad kullanmadan ada göre dışarı aktarma için uygun dışarı aktarma kaydını yaymasına neden olur. Bu, çoğu ihtiyaç için işe yarar. İşlevi sıralı olarak dışarı aktarma veya dışarı aktarmaya diğer ad ekleme gibi bazı özel durumlarda, modül tanımı dosyasında bir deyimi kullanmanız EXPORTS gerekir.
Microsoft Foundation programlarını derlemek için normalde ve /GA derleyici seçeneklerini kullanırsınız/GEs. Derleyici /Gw seçeneği Microsoft Foundation sınıflarıyla kullanılmaz. (Windows işlevini MakeProcInstancekullanıyorsanız, döndürülen işlev işaretçisini FARPROC bu API'de gereken türe açıkça atamanız gerekir.) Geri çağırma kayıt arabirimleri artık tür açısından güvenlidir (belirli bir geri çağırma için doğru işlev türünü gösteren bir işlev işaretçisi geçirmeniz gerekir).
Ayrıca, windows'a dönmeden önce tüm geri çağırma işlevlerinin Microsoft Foundation özel durumlarını yakalaması gerekir çünkü geri çağırma sınırları boyunca özel durumlar oluşturulamaz. Özel durumlar hakkında daha fazla bilgi için Özel durumlar makalesine bakın.
Example
// print some info about a pen we're ready to enumerate
BOOL CALLBACK EnumObjectHandler(LPVOID lpLogObject, LPARAM /* lpData */)
{
LOGPEN *pPen = (LOGPEN *)lpLogObject;
switch (pPen->lopnStyle)
{
case PS_SOLID:
TRACE0("PS_SOLID: ");
break;
case PS_DASH:
TRACE0("PS_DASH: ");
break;
case PS_DOT:
TRACE0("PS_DOT: ");
break;
case PS_DASHDOT:
TRACE0("PS_DASHDOT: ");
break;
case PS_DASHDOTDOT:
TRACE0("PS_DASHDOTDOT: ");
break;
case PS_NULL:
TRACE0("PS_NULL: ");
break;
case PS_INSIDEFRAME:
TRACE0("PS_INSIDEFRAME:");
break;
default:
TRACE0("unk style:");
}
TRACE2("Color: 0x%8.8X, Width: %d\n", pPen->lopnColor, pPen->lopnWidth);
return TRUE;
}
// get the default printer and enumerate the pens it has
void CDCView::OnEnumPens()
{
CPrintDialog dlg(FALSE);
dlg.GetDefaults();
HDC hdc = dlg.GetPrinterDC();
if (hdc != NULL)
{
CDC dc;
dc.Attach(hdc);
VERIFY(dc.EnumObjects(OBJ_PEN, EnumObjectHandler, 0));
}
}
CDC::Escape
Bu üye işlevi Win32 programlaması için pratikte kullanım dışıdır.
virtual int Escape(
int nEscape,
int nCount,
LPCSTR lpszInData,
LPVOID lpOutData);
int Escape(
int nEscape,
int nInputSize,
LPCSTR lpszInputData,
int nOutputSize,
LPSTR lpszOutputData);
Parameters
nEscape
Gerçekleştirilecek kaçış işlevini belirtir.
Kaçış işlevlerinin tam listesi için Bkz Escape . Windows SDK'sında.
nCount
tarafından lpszInDataişaret edilen veri bayt sayısını belirtir.
lpszInData
Bu kaçış için gereken giriş veri yapısını gösterir.
lpOutData
Bu çıkıştan çıkış almak için yapıyı gösterir.
lpOutData parametresi, NULL veri döndürülmediyse olur.
nInputSize
parametresi tarafından işaret edilen lpszInputData veri bayt sayısını belirtir.
lpszInputData
Belirtilen kaçış için gereken giriş yapısını gösterir.
nOutputSize
parametresi tarafından işaret edilen lpszOutputData veri bayt sayısını belirtir.
lpszOutputData
Bu çıkıştan çıkış alan yapıya işaret eder. Veri döndürülmezse bu parametre olmalıdır NULL .
Return Value
İşlev başarılı olursa, yalnızca uygulamayı denetleyen kaçış dışında QUERYESCSUPPORT pozitif bir değer döndürülür. Kaçış uygulanmazsa sıfır döndürülür. Hata oluşursa negatif bir değer döndürülür. Yaygın hata değerleri şunlardır:
SP_ERRORGenel hata.SP_OUTOFDISKŞu anda biriktirme için yeterli disk alanı yok ve artık kullanılabilir alan olmayacak.SP_OUTOFMEMORYBiriktirme için yeterli bellek yok.SP_USERABORTKullanıcı, yazdırma yöneticisi aracılığıyla işi sona erdirdi.
Remarks
Özgün yazıcı kaçışları yalnızca QUERYESCSUPPORT Win32 uygulamaları için desteklenir. Diğer tüm yazıcı çıkışları eskidir ve yalnızca 16 bit uygulamalarla uyumluluk için desteklenir.
Win32 programlaması için artık CDC karşılık gelen yazıcı çıkışlarının yerine geçen altı üye işlevi sağlar:
Ayrıca, CDC::GetDeviceCaps diğer yazıcı çıkışlarının yerini alan Win32 dizinlerini destekler. Daha fazla bilgi için Bkz GetDeviceCaps . Windows SDK'sı.
Bu üye işlevi, uygulamaların belirli bir cihazın GDI üzerinden doğrudan kullanılabilir olmayan tesislerine erişmesine olanak tanır.
Uygulamanız önceden tanımlanmış kaçış değerleri kullanıyorsa ilk sürümü kullanın. Uygulamanız özel kaçış değerlerini tanımlıyorsa ikinci sürümü kullanın. İkinci sürüm hakkında daha fazla bilgi için Bkz ExtEscape . Windows SDK'sı.
CDC::ExcludeClipRect
Mevcut kırpma bölgesi eksi belirtilen dikdörtgenden oluşan yeni bir kırpma bölgesi oluşturur.
int ExcludeClipRect(
int x1,
int y1,
int x2,
int y2);
int ExcludeClipRect(LPCRECT lpRect);
Parameters
x1
Dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.
y1
Dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.
x2
Dikdörtgenin sağ alt köşesinin mantıksal x koordinatını belirtir.
y2
Dikdörtgenin sağ alt köşesinin mantıksal y koordinatını belirtir.
lpRect
Dikdörtgeni belirtir. Bir nesne de olabilir CRect .
Return Value
Yeni kırpma bölgesinin türünü belirtir. Aşağıdaki değerlerden herhangi biri olabilir:
COMPLEXREGIONBölgenin kenarlıkları çakışıyor.ERRORHiçbir bölge oluşturulmadı.NULLREGIONBölge boş.SIMPLEREGIONBölgenin üst üste gelen kenarlıkları yok.
Remarks
mutlak değeriyle x2 - x1belirtilen dikdörtgenin genişliği 32.767 birimi aşmamalıdır. Bu sınır dikdörtgenin yüksekliği için de geçerlidir.
CDC::ExcludeUpdateRgn
Penceredeki güncelleştirilmiş bir bölgeyi nesneyle ilişkilendirilmiş kırpma bölgesinden dışlayarak, pencerenin geçersiz alanları içinde çizim yapılmasını CDC engeller.
int ExcludeUpdateRgn(CWnd* pWnd);
Parameters
pWnd
Penceresi güncelleştirilmekte olan pencere nesnesini gösterir.
Return Value
Dışlanan bölgenin türü. Aşağıdaki değerlerden herhangi biri olabilir:
COMPLEXREGIONBölgenin kenarlıkları çakışıyor.ERRORHiçbir bölge oluşturulmadı.NULLREGIONBölge boş.SIMPLEREGIONBölgenin üst üste gelen kenarlıkları yok.
CDC::ExtFloodFill
Ekran yüzeyinin bir alanını geçerli fırçayla doldurur.
BOOL ExtFloodFill(
int x,
int y,
COLORREF crColor,
UINT nFillType);
Parameters
x
Doldurmanın başladığı noktanın mantıksal x koordinatını belirtir.
y
Doldurmanın başladığı noktanın mantıksal y koordinatını belirtir.
crColor
Sınırın veya doldurulacak alanın rengini belirtir. 'nin yorumlanması crColor değerine nFillTypebağlıdır.
nFillType
Gerçekleştirilecek taşma dolgusu türünü belirtir. Aşağıdaki değerlerden biri olmalıdır:
FLOODFILLBORDERDolgu alanı tarafından belirtilen renklecrColorsınırlanır. Bu stil, tarafındanFloodFillgerçekleştirilen dolgu ile aynıdır.FLOODFILLSURFACEDolgu alanı tarafındancrColorbelirtilen renge göre tanımlanır. Dolgu, renkle karşılaşıldığında tüm yönlerde dışa doğru devam eder. Bu stil, çok renkli sınırları olan alanları doldurmak için kullanışlıdır.
Return Value
İşlev başarılı olursa sıfır olmayan; aksi takdirde 0 dolgu tamamlanamadıysa, verilen nokta tarafından crColor belirtilen sınır rengine sahipse ( FLOODFILLBORDER istendiyse), belirtilen nokta tarafından crColor belirtilen renge sahip değilse (istendiyse FLOODFILLSURFACE ) veya nokta kırpma bölgesinin dışındaysa.
Remarks
Bu üye işlevi, içinde FloodFillbir doldurma türü belirtebileceğinizden daha nFillType fazla esneklik sunar.
olarak ayarlanırsa nFillTypeFLOODFILLBORDER, alanın tarafından crColorbelirtilen renkle tamamen sınırlandığı varsayılır. İşlev, ve x tarafından y belirtilen noktada başlar ve renk sınırına kadar tüm yönleri doldurur.
olarak ayarlanırsa nFillTypeFLOODFILLSURFACE, işlevi tarafından x belirtilen noktada başlar ve y ile belirtilen crColorrengi içeren tüm bitişik alanları doldurarak tüm yönlerde devam eder.
Yalnızca raster-display teknolojisini destekleyen bellek-cihaz bağlamları ve cihazları desteği ExtFloodFill. Daha fazla bilgi için bkz GetDeviceCaps . üye işlevi.
CDC::ExtTextOut
Seçili durumdaki yazı tipini kullanarak dikdörtgen bir bölge içinde bir karakter dizesi yazmak için bu üye işlevini çağırın.
virtual BOOL ExtTextOut(
int x,
int y,
UINT nOptions,
LPCRECT lpRect,
LPCTSTR lpszString,
UINT nCount,
LPINT lpDxWidths);
BOOL ExtTextOut(
int x,
int y,
UINT nOptions,
LPCRECT lpRect,
const CString& str,
LPINT lpDxWidths);
Parameters
x
Belirtilen dizedeki ilk karakter için karakter hücresinin mantıksal x koordinatını belirtir.
y
Belirtilen dizedeki ilk karakter için karakter hücresinin üst kısmındaki mantıksal y koordinatını belirtir.
nOptions
Dikdörtgen türünü belirtir. Bu parametre, aşağıdaki değerlerden biri veya ikisi de olabilir:
ETO_CLIPPEDMetnin dikdörtgene kırpıldığını belirtir.ETO_OPAQUEGeçerli arka plan renginin dikdörtgeni doldurduğunu belirtir. (ve üye işlevleriyleSetBkColorgeçerli arka plan rengini ayarlayabilir veGetBkColorsorgulayabilirsiniz.)
lpRect
Dikdörtgenin boyutlarını belirleyen bir RECT yapıya işaret eder. Bu parametre olabilir NULL. Bu parametre için bir CRect nesne de geçirebilirsiniz.
lpszString
Çizilecek belirtilen karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.
nCount
Dizedeki karakter sayısını belirtir.
lpDxWidths
Bitişik karakter hücrelerinin çıkış noktaları arasındaki uzaklığı gösteren bir değer dizisine işaret eder. Örneğin, lpDxWidths[ i] mantıksal birimleri karakter hücresinin çıkış noktalarını ve karakter hücresi ii + 1'i ayırır. ise lpDxWidthsNULL, ExtTextOut karakterler arasındaki varsayılan aralığı kullanır.
str
CString Çizilecek belirtilen karakterleri içeren bir nesne.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Dikdörtgen bölge opak (geçerli arka plan rengiyle doldurulmuş) ve bir kırpma bölgesi olabilir.
nOptions 0 ve lpRect iseNULL, işlev dikdörtgen bir bölge kullanmadan cihaz bağlamı için metin yazar. Varsayılan olarak, geçerli konum işlev tarafından kullanılmaz veya güncelleştirilmez. Bir uygulamanın çağırdığında ExtTextOutgeçerli konumu güncelleştirmesi gerekiyorsa, uygulama olarak ayarlanmış CDCüye işlevini SetTextAlignnFlags çağırabilirTA_UPDATECP. Bu bayrak ayarlandığında, Windows sonraki çağrıları xyExtTextOut yoksayar ve bunun yerine geçerli konumu kullanır. Bir uygulama geçerli konumu güncelleştirmek için kullandığında TA_UPDATECP , ExtTextOut geçerli konumu önceki metin satırının sonuna veya dizinin son öğesi tarafından lpDxWidthsbelirtilen konumuna (hangisi daha büyükse) ayarlar.
CDC::FillPath
Geçerli yoldaki açık şekilleri kapatır ve geçerli fırçayı ve çokgen doldurma modunu kullanarak yolun içini doldurur.
BOOL FillPath();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
İç alanı doldurulduktan sonra, yol cihaz bağlamından atılır.
CDC::FillRect
Belirtilen fırçayı kullanarak belirli bir dikdörtgeni doldurmak için bu üye işlevini çağırın.
void FillRect(
LPCRECT lpRect,
CBrush* pBrush);
Parameters
lpRect
Doldurulacak dikdörtgenin mantıksal koordinatlarını içeren bir RECT yapıya işaret eder. Bu parametre için bir CRect nesne de geçirebilirsiniz.
pBrush
Dikdörtgeni doldurmak için kullanılan fırçayı tanımlar.
Remarks
İşlev, sol ve üst kenarlıklar da dahil olmak üzere tam dikdörtgeni doldurur, ancak sağ ve alt kenarlıkları doldurmaz.
Fırçanın, , CBrushve CreateHatchBrushüye işlevleri CreatePatternBrushkullanılarak CreateSolidBrush oluşturulması veya Windows işlevi tarafından GetStockObject alınması gerekir.
Belirtilen dikdörtgeni doldururken, FillRect dikdörtgenin sağ ve alt kenarlarını içermez. GDI, geçerli eşleme modundan bağımsız olarak bir dikdörtgeni en fazla doldurur, ancak sağ sütunu ve alt satırı içermez.
FillRect belirtilen dikdörtgenin top, bottom, leftve right üyelerinin değerlerini karşılaştırır.
bottom değerinden küçük veya eşitse topya da değerinden küçük veya eşitse rightleftdikdörtgen çizilir.
FillRect ile benzerdir CDC::FillSolidRect; ancak bir FillRect fırça alır ve bu nedenle dikdörtgeni düz bir renkle, titrek bir renkle, taranmış fırçalarla veya desenle doldurmak için kullanılabilir.
FillSolidRect yalnızca düz renkler kullanır (parametreyle COLORREF gösterilir).
FillRect genellikle değerinden daha FillSolidRectyavaştır.
CDC::FillRgn
tarafından pRgn belirtilen bölgeyi tarafından pBrushbelirtilen fırçayla doldurur.
BOOL FillRgn(
CRgn* pRgn,
CBrush* pBrush);
Parameters
pRgn
Doldurulacak bölgeye ilişkin bir işaretçi. Belirtilen bölgenin koordinatları mantıksal birimlerde belirtilir.
pBrush
Bölgeyi doldurmak için kullanılacak fırçayı tanımlar.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Fırça , CBrushCreateHatchBrushüye işlevleri CreatePatternBrushkullanılarak CreateSolidBrush oluşturulmalı veya tarafından GetStockObjectalınmalıdır.
Example
örneğine CRgn::CreateRoundRectRgnbakın.
CDC::FillSolidRect
Verilen dikdörtgeni belirtilen düz renkle doldurmak için bu üye işlevini çağırın.
void FillSolidRect(
LPCRECT lpRect,
COLORREF clr);
void FillSolidRect(
int x,
int y,
int cx,
int cy,
COLORREF clr);
Parameters
lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir veri yapısına veya nesneye RECT işaretçi CRect geçirebilirsiniz.
clr Dikdörtgeni doldurmak için kullanılacak rengi belirtir.
x
Dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.
y
Hedef dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.
cx
Dikdörtgenin genişliğini belirtir.
cy
Dikdörtgenin yüksekliğini belirtir.
Remarks
FillSolidRect ile çok benzer CDC::FillRect; ancak, FillSolidRect yalnızca düz renkler kullanır (parametresiyle COLORREF gösterilir), FillRect fırçayı alır ve bu nedenle dikdörtgeni düz bir renkle, titrek bir renkle, taranmış fırçalarla veya desenle doldurmak için kullanılabilir.
FillSolidRect genellikle değerinden FillRectdaha hızlıdır.
Note
çağrısı FillSolidRectyaptığınızda, daha önce kullanılarak SetBkColorayarlanan arka plan rengi tarafından clrbelirtilen renge ayarlanır.
CDC::FlattenPath
Seçilen yoldaki eğrileri geçerli cihaz bağlamı içine dönüştürür ve her eğriyi bir çizgi dizisine dönüştürür.
BOOL FlattenPath();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
CDC::FloodFill
Ekran yüzeyinin bir alanını geçerli fırçayla doldurur.
BOOL FloodFill(
int x,
int y,
COLORREF crColor);
Parameters
x
Doldurmanın başladığı noktanın mantıksal x koordinatını belirtir.
y
Doldurmanın başladığı noktanın mantıksal y koordinatını belirtir.
crColor
Sınırın rengini belirtir.
Return Value
İşlev başarılı olursa sıfır olmayan; aksi takdirde, doldurma tamamlanamadıysa 0 döndürülür, belirtilen nokta tarafından crColorbelirtilen sınır rengine sahiptir veya nokta kırpma bölgesinin dışındadır.
Remarks
alanının tarafından crColorbelirtildiği gibi sınırlandığı varsayılır.
FloodFill işlevi tarafından x belirtilen noktada başlar ve y renk sınırına doğru tüm yönlerde devam eder.
Yalnızca raster-display teknolojisini destekleyen bellek-cihaz bağlamları ve cihazlar üye işlevini destekler FloodFill . Yetenek hakkında RC_BITBLT bilgi için bkz GetDeviceCaps . üye işlevi.
işlevi ExtFloodFill benzer bir özellik sağlar ancak daha fazla esneklik sağlar.
CDC::FrameRect
tarafından lpRectbelirtilen dikdörtgenin etrafına bir kenarlık çizer.
void FrameRect(
LPCRECT lpRect,
CBrush* pBrush);
Parameters
lpRect
Dikdörtgenin sol üst ve sağ alt köşelerinin mantıksal koordinatlarını içeren bir RECT yapıya veya CRect nesneye işaret eder. Bu parametre için bir CRect nesne de geçirebilirsiniz.
pBrush
Dikdörtgeni çerçevelendirmek için kullanılacak fırçayı tanımlar.
Remarks
işlevi, kenarlık çizmek için verilen fırçayı kullanır. Kenarlık genişliği ve yüksekliği her zaman 1 mantıksal birimdir.
Dikdörtgenin bottom koordinatı değerinden küçük veya eşitse topya da değerinden küçük veya buna eşitse rightleftdikdörtgen çizilir.
tarafından FrameRect çizilen kenarlık, aynı koordinatları kullanarak üye işlevi tarafından Rectangle çizilen kenarlıkla aynı konumdadır (1 mantıksal birim genişliğinde bir kalem kullanıyorsa Rectangle ). Dikdörtgenin iç kısmı ile FrameRectdoldurulmuyor.
CDC::FrameRgn
tarafından pRgnbelirtilen fırçayı kullanarak belirtilen pBrush bölgenin çevresine bir kenarlık çizer.
BOOL FrameRgn(
CRgn* pRgn,
CBrush* pBrush,
int nWidth,
int nHeight);
Parameters
pRgn
Kenarlık içine CRgn alınacak bölgeyi tanımlayan nesneye işaret eder. Belirtilen bölgenin koordinatları mantıksal birimlerde belirtilir.
pBrush
Kenarlık CBrush çizmek için kullanılacak fırçayı tanımlayan nesneye işaret eder.
nWidth
Cihaz birimlerindeki dikey fırça vuruşlarında kenarlık genişliğini belirtir.
nHeight
Cihaz birimlerindeki yatay fırça vuruşlarında kenarlık yüksekliğini belirtir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Example
örneğine CRgn::CombineRgnbakın.
CDC::FromHandle
Cihaz bağlamı için tanıtıcı CDC verildiğinde nesneye bir işaretçi döndürür.
static CDC* PASCAL FromHandle(HDC hDC);
Parameters
hDC
Windows cihaz bağlamı tutamacını içerir.
Return Value
İşaretçi geçici olabilir ve anında kullanım dışında depolanmamalıdır.
Remarks
Bir CDC nesne tanıtıcıya bağlı değilse, geçici CDC bir nesne oluşturulur ve eklenir.
Example
örneğine CPrintDialog::GetPrinterDCbakın.
CDC::GetArcDirection
Cihaz bağlamı için geçerli yay yönünü döndürür.
int GetArcDirection() const;
Return Value
Başarılı olursa geçerli yay yönünü belirtir. Geçerli dönüş değerleri şunlardır:
AD_COUNTERCLOCKWISESaat yönünün tersine çizilmiş yaylar ve dikdörtgenler.AD_CLOCKWISE Arcsve dikdörtgenler saat yönünde çizilir.
Hata oluşursa, dönüş değeri sıfır olur.
Remarks
Yay ve dikdörtgen işlevleri yay yönünü kullanır.
CDC::GetAspectRatioFilter
Geçerli en boy oranı filtresinin ayarını alır.
CSize GetAspectRatioFilter() const;
Return Value
CSize Geçerli en boy oranı filtresi tarafından kullanılan en boy oranını temsil eden nesne.
Remarks
En boy oranı, bir cihazın piksel genişliği ve yüksekliği tarafından oluşturulan orandır. Bir cihazın en boy oranıyla ilgili bilgiler yazı tiplerinin oluşturulmasında, seçilmesinde ve görüntülenmesinde kullanılır. Windows, tüm kullanılabilir yazı tiplerinden belirli bir en boy oranı için tasarlanmış yazı tiplerini seçmek için en boy oranı filtresi olan özel bir filtre sağlar. Filtre, üye işlevi tarafından SetMapperFlags belirtilen en boy oranını kullanır.
CDC::GetBkColor
Geçerli arka plan rengini döndürür.
COLORREF GetBkColor() const;
Return Value
RGB renk değeri.
Remarks
Arka plan modu ise OPAQUE, sistem stil çizgilerindeki boşlukları, fırçalardaki taranmış çizgiler arasındaki boşlukları ve karakter hücrelerindeki arka planı doldurmak için arka plan rengini kullanır. Sistem, bit eşlemleri renk ve tek renkli cihaz bağlamları arasında dönüştürürken arka plan rengini de kullanır.
CDC::GetBkMode
Arka plan modunu döndürür.
int GetBkMode() const;
Return Value
veya OPAQUEolabilecek TRANSPARENT geçerli arka plan modu.
Remarks
Arka plan modu, sistemin metin çizmeden önce çizim yüzeyindeki mevcut arka plan renklerini mi, taranmış fırçaları mı yoksa düz çizgi olmayan kalem stilini mi kaldırdığını tanımlar.
CDC::GetBoundsRect
Belirtilen cihaz bağlamı için geçerli birikmiş sınırlayıcı dikdörtgeni döndürür.
UINT GetBoundsRect(
LPRECT lpRectBounds,
UINT flags);
Parameters
lpRectBounds
Geçerli sınırlayıcı dikdörtgeni alacak arabelleğe işaret eder. Dikdörtgen mantıksal koordinatlarda döndürülür.
flags
Sınırlayıcı dikdörtgenin döndürüldükten sonra temizlenip temizlenmeyeceğini belirtir. Bu parametre sıfır olmalıdır veya aşağıdaki değere ayarlanmalıdır:
-
DCB_RESETSınırlayıcı dikdörtgen döndürüldükten sonra temizlenecek şekilde zorlar.
Return Value
İşlev başarılı olursa sınırlayıcı dikdörtgenin geçerli durumunu belirtir. Aşağıdaki değerlerin bir bileşimi olabilir:
DCB_ACCUMULATESınırlayıcı dikdörtgen birikimi oluşuyor.DCB_RESETSınırlayıcı dikdörtgen boş.DCB_SETSınırlayıcı dikdörtgen boş değil.DCB_ENABLESınırlayıcı birikmesi açık.DCB_DISABLESınırlayıcı birikmesi kapalı.
CDC::GetBrushOrg
Cihaz bağlamı için seçili olan fırçanın çıkış noktasını (cihaz birimlerinde) alır.
CPoint GetBrushOrg() const;
Return Value
Fırçanın nesne olarak CPoint geçerli kaynağı (cihaz birimlerinde).
Remarks
İlk fırça başlangıcı, istemci alanının (0,0) konumundadır. Dönüş değeri, bu noktayı masaüstü penceresinin başlangıcına göre cihaz birimlerinde belirtir.
CDC::GetCharacterPlacement
Bir karakter dizesinde çeşitli bilgi türlerini alır.
DWORD GetCharacterPlacement(
LPCTSTR lpString,
int nCount,
int nMaxExtent,
LPGCP_RESULTS lpResults,
DWORD dwFlags) const;
DWORD GetCharacterPlacement(
CString& str,
int nMaxExtent,
LPGCP_RESULTS lpResults,
DWORD dwFlags) const;
Parameters
lpString
İşlenmek üzere karakter dizesinin işaretçisi.
nCount
Dizenin uzunluğunu belirtir. ANSI sürümü için bu bir BYTE sayıdır ve Unicode işlevi için bir WORD sayıdır. Daha fazla bilgi için bkz. GetCharacterPlacement.
nMaxExtent
Dizenin işlendiği üst sınırı (mantıksal birimlerde) belirtir. İşlenirse bu kapsamı aşacak karakterler yoksayılır. Gerekli sıralama veya glif dizileri için hesaplamalar yalnızca dahil edilen karakterler için geçerlidir. Bu parametre yalnızca değer parametresinde GCP_MAXEXTENT belirtilmişse dwFlags kullanılır. İşlev giriş dizesini işlerken, her karakter ve kapsamı çıkışa, uzantıya ve diğer dizilere yalnızca toplam kapsam üst sınırı henüz aşmamışsa eklenir. Sınıra ulaşıldıktan sonra işlem durdurulacaktır.
lpResults
İşlevin sonuçlarını alan bir GCP_Results yapı işaretçisi.
dwFlags
Dizenin gerekli dizilere nasıl işlendiği belirtir. Bu parametre, konunun bölümünde dwFlags listelenen GetCharacterPlacement değerlerden biri veya daha fazlası olabilir.
str
İşlenmek üzere bir CString nesnenin işaretçisi.
Return Value
İşlev başarılı olursa, dönüş değeri dizenin mantıksal birimlerdeki genişliği ve yüksekliğidir.
İşlev başarısız olursa, dönüş değeri sıfır olur.
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetCharacterPlacementişlevselliğine öykünmektedir.
CDC::GetCharABCWidths
Geçerli TrueType yazı tipinden belirtilen aralıktaki ardışık karakterlerin genişliklerini alır.
BOOL GetCharABCWidths(
UINT nFirstChar,
UINT nLastChar,
LPABC lpabc) const;
BOOL GetCharABCWidths(
UINT nFirstChar,
UINT nLastChar,
LPABCFLOAT lpABCF) const;
Parameters
nFirstChar
Karakter genişliklerinin döndürüldiği geçerli yazı tipindeki karakter aralığındaki ilk karakteri belirtir.
nLastChar
Karakter genişliklerinin döndürüldiği geçerli yazı tipindeki karakter aralığındaki son karakteri belirtir.
lpabc
İşlev döndürdüğünde karakter genişliklerini alan bir yapı dizisine ABC işaret eder. Bu dizi, ve ABC parametreleri tarafından nFirstChar belirtilen aralıkta karakter sayısı kadar en az nLastChar sayıda yapı içermelidir.
lpABCF
İşlev döndürdüğünde karakter genişliklerini almak için bir dizi ABCFLOAT yapı içeren uygulama tarafından sağlanan arabelleğe işaret eder. Bu işlev tarafından döndürülen genişlikler IEEE kayan nokta biçimindedir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Genişlikler mantıksal birimler halinde döndürülür. Bu işlev yalnızca TrueType yazı tipleri ile başarılı olur.
TrueType rasterizer, belirli bir nokta boyutu seçildikten sonra "ABC" karakter aralığı sağlar. "A" aralığı, karakteri yerleştirmeden önce geçerli konuma eklenen uzaklıktır. "B" aralığı, karakterin siyah bölümünün genişliğidir. Karakterin sağındaki boşluğu hesaba katmak için geçerli konuma "C" aralığı eklenir. Toplam gelişmiş genişlik A + B + C tarafından verilir.
GetCharABCWidths Üye işlevi bir karakter için negatif "A" veya "C" genişlikleri aldığında, bu karakter alt mesafeleri veya kullanma mesafelerini içerir.
ABC genişliklerini yazı tipi tasarım birimlerine dönüştürmek için, uygulamanın yüksekliği (yapı üyesinde belirtildiği gibi) yapı üyesinde lfHeightLOGFONTntmSizeEM depolanan değere eşit olan bir yazı tipi oluşturması NEWTEXTMETRIC gerekir. (Üyenin ntmSizeEM değeri Windows işlevi çağrılarak EnumFontFamilies alınabilir.)
Varsayılan karakterin ABC genişlikleri, seçili durumdaki yazı tipi aralığının dışında kalan karakterler için kullanılır.
TrueType olmayan yazı tiplerindeki karakterlerin genişliklerini almak için uygulamalar Windows işlevini kullanmalıdır GetCharWidth .
CDC::GetCharABCWidthsI
Geçerli TrueType yazı tipinden belirtilen aralıktaki ardışık glif dizinlerinin genişliklerini mantıksal birimler halinde alır.
BOOL GetCharABCWidthsI(
UINT giFirst,
UINT cgi,
LPWORD pgi,
LPABC lpabc) const;
Parameters
giFirst
Geçerli yazı tipindeki ardışık karakter dizinleri grubundaki ilk glif dizinini belirtir. Bu parametre yalnızca parametresi ise pgiNULLkullanılır.
cgi
Glif dizinlerinin sayısını belirtir.
pgi
Karakter dizinleri içeren bir dizi işaretçisi. değer ise NULLparametresi giFirst kullanılır.
cgi parametresi, bu dizideki glif dizinlerinin sayısını belirtir.
lpabc
Karakter genişliklerini alan bir yapı dizisinin ABC işaretçisi. Bu dizi, parametresi tarafından ABC belirtilen glif dizinleri kadar en az sayıda cgi yapı içermelidir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetCharABCWidthsIişlevselliğine öykünmektedir.
CDC::GetCharWidth
Giriş cihazı bağlamını kullanarak m_hAttribDC, geçerli yazı tipinden ardışık bir karakter grubundaki tek tek karakterlerin genişliklerini alır.
BOOL GetCharWidth(
UINT nFirstChar,
UINT nLastChar,
LPINT lpBuffer) const;
BOOL GetCharWidth(
UINT nFirstChar,
UINT nLastChar,
float* lpFloatBuffer) const;
Parameters
nFirstChar
Geçerli yazı tipindeki ardışık bir karakter grubundaki ilk karakteri belirtir.
nLastChar
Geçerli yazı tipindeki ardışık bir karakter grubundaki son karakteri belirtir.
lpBuffer
Geçerli yazı tipindeki ardışık bir karakter grubunun genişlik değerlerini alacak arabelleğe işaret eder.
lpFloatBuffer
Karakter genişliklerini almak için arabelleğe işaret eder. Döndürülen genişlikler 32 bit IEEE kayan nokta biçimindedir. (Genişlikler karakterlerin temel çizgisi boyunca ölçülür.)
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Örneğin, 'a' harfini ve nFirstChar 'z' harfini tanımlarsa nLastChar işlev tüm küçük harflerin genişliklerini alır.
işlevi tarafından işaret edilen lpBufferarabellekteki değerleri depolar. Bu arabellek tüm genişlikleri barındıracak kadar büyük olmalıdır. Başka bir ifadeyle, verilen örnekte en az 26 giriş olmalıdır.
Ardışık karakter grubundaki bir karakter belirli bir yazı tipinde yoksa, varsayılan karakterin genişlik değeri atanır.
CDC::GetCharWidthI
Geçerli yazı tipinden belirtilen aralıktaki ardışık glif dizinlerinin genişliklerini mantıksal koordinatlarda alır.
BOOL GetCharWidthI(
UINT giFirst,
UINT cgi,
LPWORD pgi,
LPINT lpBuffer) const;
Parameters
giFirst
Geçerli yazı tipindeki ardışık karakter dizinleri grubundaki ilk glif dizinini belirtir. Bu parametre yalnızca parametresi ise pgiNULLkullanılır.
cgi
Glif dizinlerinin sayısını belirtir.
pgi
Karakter dizinleri içeren bir dizi işaretçisi. değer ise NULLparametresi giFirst kullanılır.
cgi parametresi, bu dizideki glif dizinlerinin sayısını belirtir.
lpBuffer
Genişlikleri alan arabellek işaretçisi.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetCharWidthIişlevselliğine öykünmektedir.
CDC::GetClipBox
Geçerli kırpma sınırının etrafındaki en sıkı sınırlayıcı dikdörtgenin boyutlarını alır.
virtual int GetClipBox(LPRECT lpRect) const;
Parameters
lpRect
RECT Dikdörtgen boyutlarını alacak yapıya veya CRect nesneye işaret eder.
Return Value
Kırpma bölgesinin türü. Aşağıdaki değerlerden herhangi biri olabilir:
COMPLEXREGIONKırpma bölgesinin kenarlıkları çakışıyor.ERRORCihaz bağlamı geçerli değil.NULLREGIONKırpma bölgesi boş.SIMPLEREGIONKırpma bölgesinin kenarlıkları örtüşmemiştir.
Remarks
Boyutlar tarafından lpRectişaret edilen arabelleğe kopyalanır.
CDC::GetColorAdjustment
Cihaz bağlamı için renk ayarlama değerlerini alır.
BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;
Parameters
lpColorAdjust
Renk ayarlama değerlerini almak için bir COLORADJUSTMENT veri yapısına işaret eder.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
CDC::GetCurrentBitmap
Seçili CBitmap durumdaki nesneye bir işaretçi döndürür.
CBitmap* GetCurrentBitmap() const;
Return Value
Başarılı olursa nesne CBitmap işaretçisi; aksi takdirde NULL.
Remarks
Bu üye işlevi geçici nesneler döndürebilir.
CDC::GetCurrentBrush
Seçili CBrush durumdaki nesneye bir işaretçi döndürür.
CBrush* GetCurrentBrush() const;
Return Value
Başarılı olursa nesne CBrush işaretçisi; aksi takdirde NULL.
Remarks
Bu üye işlevi geçici nesneler döndürebilir.
CDC::GetCurrentFont
Seçili CFont durumdaki nesneye bir işaretçi döndürür.
CFont* GetCurrentFont() const;
Return Value
Başarılı olursa nesne CFont işaretçisi; aksi takdirde NULL.
Remarks
Bu üye işlevi geçici nesneler döndürebilir.
CDC::GetCurrentPalette
Seçili CPalette durumdaki nesneye bir işaretçi döndürür.
CPalette* GetCurrentPalette() const;
Return Value
Başarılı olursa nesne CPalette işaretçisi; aksi takdirde NULL.
Remarks
Bu üye işlevi geçici nesneler döndürebilir.
CDC::GetCurrentPen
Seçili CPen durumdaki nesneye bir işaretçi döndürür.
CPen* GetCurrentPen() const;
Return Value
Başarılı olursa nesne CPen işaretçisi; aksi takdirde NULL.
Remarks
Bu üye işlevi geçici nesneler döndürebilir.
CDC::GetCurrentPosition
Geçerli konumu alır (mantıksal koordinatlarda).
CPoint GetCurrentPosition() const;
Return Value
Nesne olarak CPoint geçerli konum.
Remarks
Geçerli konum üye işleviyle MoveTo ayarlanabilir.
CDC::GetDCBrushColor
Geçerli fırça rengini alır.
COLORREF GetDCBrushColor() const;
Return Value
İşlev başarılı olursa, dönüş değeri geçerli fırça renginin değeridir COLORREF .
İşlev başarısız olursa, dönüş değeri olur CLR_INVALID.
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetDCBrushColorişlevselliğine öykünmektedir.
CDC::GetDCPenColor
Geçerli kalem rengini alır.
COLORREF GetDCPenColor() const;
Return Value
İşlev başarılı olursa, dönüş değeri geçerli kalem renginin değeridir COLORREF .
İşlev başarısız olursa, dönüş değeri olur CLR_INVALID.
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi Win32 işlevini GetDCPenColorkullanır.
CDC::GetDeviceCaps
Görüntüleme cihazı hakkında cihaza özgü çok çeşitli bilgileri alır.
int GetDeviceCaps(int nIndex) const;
Parameters
nIndex
Döndürülecek bilgi türünü belirtir. Değerlerin listesi için Windows SDK'sında bakın GetDeviceCaps .
Return Value
İşlev başarılı olursa istenen özelliğin değeri.
Example
örneğine CPrintDialog::GetDefaultsbakın.
CDC::GetFontData
Ölçeklenebilir bir yazı tipi dosyasından yazı tipi ölçümü bilgilerini alır.
DWORD GetFontData(
DWORD dwTable,
DWORD dwOffset,
LPVOID lpData,
DWORD cbData) const;
Parameters
dwTable
Döndürülecek ölçüm tablosunun adını belirtir. Bu parametre, Microsoft Corporation tarafından yayımlanan TrueType Yazı Tipi Dosyaları belirtiminde belgelenen ölçüm tablolarından biri olabilir. Bu parametre 0 ise, bilgiler yazı tipi dosyasının başlangıcından itibaren alınır.
dwOffset
Bilgilerin alınmaya başlandığı tablonun başından uzaklığı belirtir. Bu parametre 0 ise, bilgiler parametresi tarafından dwTable belirtilen tablonun başlangıcından itibaren alınır. Bu değer tablonun GetFontData boyutundan büyük veya buna eşitse 0 döndürür.
lpData
Yazı tipi bilgilerini alacak arabelleğe işaret eder. Bu değer ise NULL, işlevi parametresinde dwTable belirtilen yazı tipi verileri için gereken arabellek boyutunu döndürür.
cbData
Alınacak bilgilerin uzunluğunu bayt cinsinden belirtir. Bu parametre 0 ise, GetFontData parametresinde dwTable belirtilen verilerin boyutunu döndürür.
Return Value
İşlev başarılı olursa tarafından işaret edilen lpData arabellekte döndürülen bayt sayısını belirtir; aksi takdirde -1.
Remarks
Alınacak bilgiler, yazı tipi dosyasına uzaklık ve döndürülecek bilgilerin uzunluğu belirtilerek tanımlanır.
Bir uygulama bazen bir TrueType yazı tipini belgeyle kaydetmek için üye işlevini kullanabilir GetFontData . Bunu yapmak için uygulama, yazı tipinin eklenip eklenemeyeceğini belirler ve ardından , dwTableve dwOffset parametreleri için 0 belirterek yazı tipi dosyasının cbDatatamamını alır.
Uygulamalar, bir yazı tipinin otmfsType yapı üyesini OUTLINETEXTMETRIC denetleyerek eklenip katıştırılamayacağını belirleyebilir. Bit 1'i otmfsType ayarlandıysa, yazı tipi için eklemeye izin verilmez. Bit 1 temizse, yazı tipi eklenebilir. Bit 2 ayarlanırsa, ekleme salt okunur olur.
Bir uygulama TrueType olmayan bir yazı tipine ilişkin bilgileri almak için bu işlevi kullanmayı denerse, GetFontData üye işlevi -1 döndürür.
CDC::GetFontLanguageInfo
Belirtilen görüntüleme bağlamı için seçili durumdaki yazı tipi hakkında bilgi döndürür.
DWORD GetFontLanguageInfo() const;
Return Value
Dönüş değeri, seçili durumdaki yazı tipinin özelliklerini tanımlar. Olası değerlerin tam listesi için bkz GetFontLanguageInfo. .
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetFontLanguageInfoişlevselliğine öykünmektedir.
CDC::GetGlyphOutline
Geçerli yazı tipindeki bir ana hat karakteri için ana hat eğrisini veya bit eşlemini alır.
DWORD GetGlyphOutline(
UINT nChar,
UINT nFormat,
LPGLYPHMETRICS lpgm,
DWORD cbBuffer,
LPVOID lpBuffer,
const MAT2* lpmat2) const;
Parameters
nChar
Bilgilerin döndürülacağı karakteri belirtir.
nFormat
İşlevin bilgi döndürme biçimini belirtir. Aşağıdaki değerlerden biri veya 0 olabilir:
| Value | Meaning |
|---|---|
GGO_BITMAP |
Glif bit eşlemini döndürür. İşlev döndürdüğünde, tarafından lpBuffer işaret edilen arabellek, satırları çift kelime sınırları üzerinde başlayan 1 bit piksel başına bit eşlem içerir. |
GGO_NATIVE |
Cihaz birimlerini kullanarak rasterleştiricinin yerel biçimindeki eğri veri noktalarını döndürür. Bu değer belirtildiğinde, içinde lpmat2 belirtilen tüm dönüştürmeler yoksayılır. |
değeri nFormat 0 olduğunda işlev bir GLYPHMETRICS yapıyı doldurur ancak glif anahat verilerini döndürmez.
lpgm
Karakter hücresindeki karakterin yerleşimini açıklayan bir GLYPHMETRICS yapıya işaret eder.
cbBuffer
İşlevin ana hat karakteri hakkındaki bilgileri kopyaladığı arabelleğin boyutunu belirtir. Bu değer 0 ise ve nFormat parametre veya GGO_BITMAP değerleriyseGGO_NATIVE, işlev gerekli arabellek boyutunu döndürür.
lpBuffer
İşlevin ana hat karakteri hakkındaki bilgileri kopyaladığı arabelleğe işaret eder. Değeri belirtirse nFormatGGO_NATIVE, bilgiler ve TTPOLYGONHEADER yapıları biçiminde TTPOLYCURVE kopyalanır. Bu değer NULL veya nFormat değeriyse ve GGO_BITMAP iseGGO_NATIVE, işlev gerekli arabellek boyutunu döndürür.
lpmat2
Karakter için dönüştürme MAT2 matrisi içeren bir yapıyı gösterir. değeri için NULLbelirtildiğinde GGO_NATIVE bile bu parametre olamaznFormat.
Return Value
0 veya cbBufferlpBufferiseNULL, alınan bilgiler için gereken arabelleğin bayt cinsinden boyutu. Aksi takdirde, işlev başarılı olursa pozitif bir değer veya hata varsa -1 olur.
Remarks
Bir uygulama, tarafından işaret lpmat2edilen yapıda 2'ye 2 dönüştürme matrisi belirterek bit eşlem biçiminde alınan karakterleri döndürebilir.
Bir karakter ana hattı, kontur dizisi olarak döndürülür. Her dağılım, bir TTPOLYGONHEADER yapı tarafından tanımlanır ve bunu tanımlamak için gereken sayıda TTPOLYCURVE yapı bulunur. Tüm noktalar yapı olarak POINTFX döndürülür ve göreli taşımaları değil mutlak konumları temsil eder. Yapının üyesi pfxStart tarafından TTPOLYGONHEADER verilen başlangıç noktası, konturun ana hattının başladığı noktadır. İzleyen TTPOLYCURVE yapılar, çok çizgili kayıtlar veya spline kayıtları olabilir. Çok çizgili kayıtlar bir dizi noktadır; noktalar arasında çizilen çizgiler, karakterin ana hattını açıklar. Spline kayıtları, TrueType tarafından kullanılan ikinci dereceden eğrileri (ikinci dereceden b-spline'lar) temsil eder.
CDC::GetGraphicsMode
Belirtilen cihaz bağlamı için geçerli grafik modunu alır.
int GetGraphicsMode() const;
Return Value
Başarılı olduğunda geçerli grafik modunu döndürür. Bu yöntemin döndürebileceği değerlerin listesi için bkz GetGraphicsMode. .
Hata durumunda 0 döndürür.
Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.
Remarks
Bu yöntem, Windows GDI işlevini GetGraphicsModesarmalar.
CDC::GetHalftoneBrush
Yarım ton fırçasını almak için bu üye işlevini çağırın.
static CBrush* PASCAL GetHalftoneBrush();
Return Value
Başarılı olursa nesne CBrush işaretçisi; aksi takdirde NULL.
Remarks
Yarım tonlu fırça, titrek desen oluşturmak için alternatif olarak ön plan ve arka plan renkleri olan pikselleri gösterir. Aşağıdaki diyagramda, yarım tonlu fırça tarafından oluşturulan titrek desen örneği gösterilmektedir:
Diyagramda siyah ve sarı ön plan renginin, siyah ve sarı pikselleri birbiriyle değiştirerek bir desen halinde birleştirilerek titrek kalem vuruşu oluşturma işlemi gösterilmektedir.
CDC::GetKerningPairs
Belirtilen cihaz bağlamında seçili olan yazı tipi için karakter aralığı çiftlerini alır.
int GetKerningPairs(
int nPairs,
LPKERNINGPAIR lpkrnpair) const;
Parameters
nPairs
tarafından KERNINGPAIRişaret edilen yapı sayısını lpkrnpair belirtir. işlevi tarafından nPairsbelirtilenden daha fazla aralık çifti kopyalamaz.
lpkrnpair
İşlev döndürdüğünde aralık çiftlerini alan bir yapı dizisine KERNINGPAIR işaret eder. Bu dizi tarafından nPairsbelirtilen en az sayıda yapı içermelidir. Bu parametre ise NULL, işlev yazı tipi için toplam aralık çifti sayısını döndürür.
Return Value
İşlev başarılı olursa, alınan aralık çiftlerinin sayısını veya yazı tipindeki toplam karakter aralığı çiftlerinin sayısını belirtir. İşlev başarısız olursa veya yazı tipi için karakter aralığı çiftleri yoksa sıfır döndürülür.
CDC::GetLayout
Yazıcı veya meta dosyası gibi bir cihaz bağlamı için metin ve grafiklerin düzenini belirlemek için bu üye işlevini çağırın.
DWORD GetLayout() const;
Return Value
Başarılı olursa, düzen geçerli cihaz bağlamı için bayraklar oluşturur. Tersi durumda GDI_ERROR. Genişletilmiş hata bilgileri için çağrısında bulunur GetLastError. Düzen bayraklarının listesi için bkz CDC::SetLayout. .
Remarks
Varsayılan düzen soldan sağadır.
CDC::GetMapMode
Geçerli eşleme modunu alır.
int GetMapMode() const;
Return Value
Eşleme modu.
Remarks
Eşleme modlarının açıklaması için üye işlevine SetMapMode bakın.
Note
DC'yi sağdan sola düzende değiştirmeye çağırırsanız SetLayout , SetLayout eşleme modunu otomatik olarak olarak olarak MM_ISOTROPICdeğiştirir. Sonuç olarak, sonraki çağrılar GetMapMode döndürür MM_ISOTROPIC.
CDC::GetMiterLimit
Cihaz bağlamı için sicim sınırını döndürür.
float GetMiterLimit() const;
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Sönücü sınırı, gıyrıcı birleşimleri olan geometrik çizgiler çizilirken kullanılır.
CDC::GetNearestColor
Belirtilen mantıksal renkle en iyi eşleşen düz rengi döndürür.
COLORREF GetNearestColor(COLORREF crColor) const;
Parameters
crColor
Eşleştirilecek rengi belirtir.
Return Value
Cihazın gösterebileceği değere crColor en yakın düz rengi tanımlayan RGB (kırmızı, yeşil, mavi) renk değeri.
Remarks
Verilen cihazın bu rengi temsil edebilmesi gerekir.
CDC::GetOutlineTextMetrics
TrueType yazı tipleri için ölçüm bilgilerini alır.
UINT GetOutlineTextMetrics(
UINT cbData,
LPOUTLINETEXTMETRIC lpotm) const;
Parameters
lpotm
Bir yapı dizisine OUTLINETEXTMETRIC işaret eder. Bu parametre ise NULLişlevi, alınan ölçüm verileri için gereken arabellek boyutunu döndürür.
cbData
Bilgilerin döndürüldiği arabelleğin boyutunu bayt cinsinden belirtir.
lpotm
Bir OUTLINETEXTMETRIC yapıyı gösterir. Bu parametre ise NULLişlevi, alınan ölçüm bilgileri için gereken arabellek boyutunu döndürür.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Yapı, OUTLINETEXTMETRIC truetype biçimiyle sağlanan yazı tipi ölçüm bilgilerinin çoğunu içerir ve bir TEXTMETRIC yapı içerir. Yapının son dört üyesi OUTLINETEXTMETRIC dize işaretçileridir. Uygulamalar, diğer üyeler için gereken alana ek olarak bu dizeler için alan ayırmalıdır. Dizelerin boyutu için sistem tarafından uygulanan bir sınır olmadığından, bellek ayırmanın en basit yöntemi, işlevine yapılan ilk çağrıda lpotm için GetOutlineTextMetrics NULL belirterek gerekli boyutu almaktır.
CDC::GetOutputCharWidth
çıkış cihazı bağlamını m_hDCkullanır ve geçerli yazı tipinden ardışık bir karakter grubundaki tek tek karakterlerin genişliklerini alır.
BOOL GetOutputCharWidth(
UINT nFirstChar,
UINT nLastChar,
LPINT lpBuffer) const;
Parameters
nFirstChar
Geçerli yazı tipindeki ardışık bir karakter grubundaki ilk karakteri belirtir.
nLastChar
Geçerli yazı tipindeki ardışık bir karakter grubundaki son karakteri belirtir.
lpBuffer
Geçerli yazı tipindeki ardışık bir karakter grubunun genişlik değerlerini alacak arabelleğe işaret eder.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Örneğin, 'a' harfini ve nFirstChar 'z' harfini tanımlarsa nLastChar işlev tüm küçük harflerin genişliklerini alır.
işlevi tarafından işaret edilen lpBufferarabellekteki değerleri depolar. Bu arabellek tüm genişlikleri barındıracak kadar büyük olmalıdır; başka bir ifadeyle, verilen örnekte en az 26 giriş olmalıdır.
Ardışık karakter grubundaki bir karakter belirli bir yazı tipinde yoksa, varsayılan karakterin genişlik değeri atanır.
CDC::GetOutputTabbedTextExtent
Çıkış cihazı bağlamını kullanarak m_hDCbir karakter dizesinin genişliğini ve yüksekliğini hesaplamak için bu üye işlevini çağırın.
CSize GetOutputTabbedTextExtent(
LPCTSTR lpszString,
int nCount,
int nTabPositions,
LPINT lpnTabStopPositions) const;
CSize GetOutputTabbedTextExtent(
const CString& str,
int nTabPositions,
LPINT lpnTabStopPositions) const;
Parameters
lpszString
Ölçülecek karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.
nCount
lpszString uzunluğunu belirtir.
nTabPositions
tarafından işaret edilen lpnTabStopPositionsdizideki sekme durağı konumlarının sayısını belirtir.
lpnTabStopPositions
Mantıksal birimlerdeki sekme durağı konumlarını içeren bir tamsayı dizisine işaret eder. Sekme durakları artan düzende sıralanmalıdır; en küçük x değeri dizideki ilk öğe olmalıdır. Geri sekmelerine izin verilmez.
str
CString Ölçülecek belirtilen karakterleri içeren bir nesne.
Return Value
Nesnedeki dizenin boyutları (mantıksal birimlerde CSize ).
Remarks
Dize bir veya daha fazla sekme karakteri içeriyorsa, dizenin genişliği tarafından lpnTabStopPositionsbelirtilen sekme duraklarını temel alır. İşlev, dizenin boyutlarını hesaplamak için seçili durumdaki yazı tipini kullanır.
Geçerli kırpma bölgesi, işlevin GetOutputTabbedTextExtent döndürdiği genişliği ve yüksekliği kaydırmıyor.
Bazı cihazlar normal hücre dizilerine karakter yerleştirmediğinden (yani karakterleri aralığına dahil ettiğinden), bir dizedeki karakterlerin kapsamlarının toplamı dizenin kapsamına eşit olmayabilir.
nTabPositions 0 ve lpnTabStopPositions iseNULL, sekmeler sekiz ortalama karakter genişliğine genişletilir. 1 ise nTabPositions , sekme durakları, dizinin işaret ettiği lpnTabStopPositions ilk değerle belirtilen uzaklık ile ayrılır. Tek bir değerden fazlasını gösterirse lpnTabStopPositions , dizideki her değer için tarafından nTabPositionsbelirtilen sayıya kadar bir sekme durağı ayarlanır.
CDC::GetOutputTextExtent
Çıkış cihazı bağlamını m_hDCkullanmak için bu üye işlevini çağırın ve geçerli yazı tipini kullanarak metin satırının genişliğini ve yüksekliğini hesaplayın.
CSize GetOutputTextExtent(
LPCTSTR lpszString,
int nCount) const;
CSize GetOutputTextExtent(const CString& str) const;
Parameters
lpszString
Bir karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.
nCount
lpszString uzunluğunu belirtir.
str
CString Ölçülecek belirtilen karakterleri içeren bir nesne.
Return Value
Dizenin boyutları (mantıksal birimlerde) bir CSize nesnede döndürülür.
Remarks
Geçerli kırpma bölgesi tarafından GetOutputTextExtentdöndürülen genişliği ve yüksekliği etkilemez.
Bazı cihazlar normal hücre dizilerine karakter yerleştirmediğinden (yani, karakter aralığı gerçekleştirdiklerinden), dizedeki karakterlerin kapsamlarının toplamı dizenin kapsamına eşit olmayabilir.
CDC::GetOutputTextMetrics
çıkış cihazı bağlamını kullanarak m_hDCgeçerli yazı tipinin ölçümlerini alır.
BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;
Parameters
lpMetrics
TEXTMETRIC Ölçümleri alan yapıya işaret eder.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
CDC::GetPath
Cihaz bağlamında seçilen yolda bulunan çizgilerin uç noktalarını ve eğrilerin denetim noktalarını tanımlayan koordinatları alır.
int GetPath(
LPPOINT lpPoints,
LPBYTE lpTypes,
int nCount) const;
Parameters
lpPoints
Çizgi uç noktalarının ve eğri denetim noktalarının POINT yerleştirildiği bir veri yapıları veya CPoint nesneleri dizisine işaret eder.
lpTypes
Köşe türlerinin yerleştirildiği bayt dizisine işaret eder. Değerler aşağıdakilerden biridir:
PT_MOVETOiçindeki ilgili noktanınlpPointskopuk bir şekil başlattığını belirtir.PT_LINETOönceki noktanın ve buna karşılık gelen noktanınlpPointsbir satırın uç noktaları olduğunu belirtir.PT_BEZIERTOiçindekilpPointsilgili noktanın Bzier eğrisi için bir denetim noktası veya bitiş noktası olduğunu belirtir.
PT_BEZIERTO türleri her zaman üç kümede gerçekleşir. Hemen önündeki yoldaki nokta, Bzier eğrisi için başlangıç noktasını tanımlar. İlk iki PT_BEZIERTO nokta denetim noktaları, üçüncü PT_BEZIERTO nokta ise bitiş noktasıdır (sabit kodlanmışsa).
Bir PT_LINETO veya PT_BEZIERTO türü, ilgili noktanın bir şekildeki son nokta olduğunu ve şeklin kapatılması gerektiğini belirtmek için aşağıdaki bayrakla (bit düzeyinde işleç VEYA kullanılarak) birleştirilebilir:
-
PT_CLOSEFIGUREİlgili çizgi veya eğri çizildikten sonra şeklin otomatik olarak kapatıldığını belirtir. Şekil, çizgi veya eğri uç noktasından sonPT_MOVETOöğesine karşılık gelen noktaya bir çizgi çizilerek kapatılır.
nCount
Diziye yerleştirilebilen POINT veri yapılarının lpPoints toplam sayısını belirtir. Bu değer, diziye yerleştirilebilen bayt sayısıyla lpTypes aynı olmalıdır.
Return Value
nCount Parametre sıfır değilse, numaralandırılmış nokta sayısı. 0 ise nCount , yoldaki toplam nokta sayısı (ve GetPath arabelleklere hiçbir şey yazmaz). Sıfır olmayan ve yoldaki nokta sayısından küçükse nCount , dönüş değeri -1 olur.
Remarks
Cihaz bağlamı kapalı bir yol içermelidir. Yolun noktaları mantıksal koordinatlarda döndürülür. Noktalar yol içinde cihaz koordinatlarında depolanır, bu nedenle GetPath geçerli dönüşümün tersini kullanarak noktaları cihaz koordinatlarından mantıksal koordinatlara değiştirir. Yoldaki FlattenPath tüm eğrileri çizgi segmentlerine dönüştürmek için üye işlevinden önce GetPathçağrılabilir.
Example
örneğine CDC::BeginPathbakın.
CDC::GetPixel
ve ytarafından x belirtilen noktada pikselin RGB renk değerini alır.
COLORREF GetPixel(
int x,
int y) const;
COLORREF GetPixel(POINT point) const;
Parameters
x
İncelenecek noktanın mantıksal x koordinatını belirtir.
y
İncelenecek noktanın mantıksal y koordinatını belirtir.
point
İncelenecek noktanın mantıksal x ve y koordinatlarını belirtir.
Return Value
İşlevin her iki sürümü için de verilen noktanın rengi için bir RGB renk değeri. Koordinatlar kırpma bölgesinde bir nokta belirtmiyorsa -1 olur.
Remarks
Nokta kırpma bölgesinde olmalıdır. Nokta kırpma bölgesinde değilse işlevin etkisi olmaz ve -1 döndürür.
Tüm cihazlar işlevi desteklemez GetPixel . Daha fazla bilgi için üye işlevinin RC_BITBLT altındaki tarama özelliğine GetDeviceCaps bakın.
Üye işlevinin GetPixel iki biçimi vardır. birincisi iki koordinat değeri alır; ikincisi bir POINT yapı veya CPoint nesne alır.
CDC::GetPolyFillMode
Geçerli çokgen doldurma modunu alır.
int GetPolyFillMode() const;
Return Value
İşlev başarılı olursa geçerli çokgen dolgulu mod ALTERNATE veya WINDING.
Remarks
SetPolyFillMode Çokgen doldurma modlarının açıklaması için üye işlevine bakın.
CDC::GetROP2
Geçerli çizim modunu alır.
int GetROP2() const;
Return Value
Çizim modu. Çizim modu değerlerinin listesi için üye işlevine SetROP2 bakın.
Remarks
Çizim modu, kalemin renklerinin ve doldurulmuş nesnelerin iç kısmının zaten ekran yüzeyindeki renkle nasıl birleştirilme şeklini belirtir.
CDC::GetSafeHdc
çıkış cihazı bağlamını almak m_hDCiçin bu üye işlevini çağırın.
HDC GetSafeHdc() const;
Return Value
Cihaz bağlam tutamacı.
Remarks
Bu üye işlevi null işaretçilerle de çalışır.
CDC::GetStretchBltMode
Geçerli bit eşlem esnetme modunu alır.
int GetStretchBltMode() const;
Return Value
dönüş değeri, işlev başarılı olursa geçerli bit eşlem genişletme modunu ( STRETCH_ANDSCANS, STRETCH_DELETESCANSveya STRETCH_ORSCANS ) belirtir.
Remarks
Bit eşlem esnetme modu, üye işlevi tarafından StretchBlt esnetilen veya sıkıştırılan bit eşlemlerden bilgilerin nasıl kaldırıldığını tanımlar.
STRETCH_ANDSCANS ve STRETCH_ORSCANS modları genellikle ön plan piksellerini tek renkli bit eşlemlerde korumak için kullanılır. Mod STRETCH_DELETESCANS genellikle renk bit eşlemlerinde rengi korumak için kullanılır.
CDC::GetTabbedTextExtent
özniteliği cihaz bağlamını kullanarak m_hAttribDCbir karakter dizesinin genişliğini ve yüksekliğini hesaplamak için bu üye işlevini çağırın.
CSize GetTabbedTextExtent(
LPCTSTR lpszString,
int nCount,
int nTabPositions,
LPINT lpnTabStopPositions) const;
CSize GetTabbedTextExtent(
const CString& str,
int nTabPositions,
LPINT lpnTabStopPositions) const;
Parameters
lpszString
Bir karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.
nCount
lpszString uzunluğunu belirtir.
nTabPositions
tarafından işaret edilen lpnTabStopPositionsdizideki sekme durağı konumlarının sayısını belirtir.
lpnTabStopPositions
Mantıksal birimlerdeki sekme durağı konumlarını içeren bir tamsayı dizisine işaret eder. Sekme durakları artan düzende sıralanmalıdır; en küçük x değeri dizideki ilk öğe olmalıdır. Geri sekmelerine izin verilmez.
str
CString Çizilecek belirtilen karakterleri içeren bir nesne.
Return Value
Nesnedeki dizenin boyutları (mantıksal birimlerde CSize ).
Remarks
Dize bir veya daha fazla sekme karakteri içeriyorsa, dizenin genişliği tarafından lpnTabStopPositionsbelirtilen sekme duraklarını temel alır. İşlev, dizenin boyutlarını hesaplamak için seçili durumdaki yazı tipini kullanır.
Geçerli kırpma bölgesi, işlevin GetTabbedTextExtent döndürdiği genişliği ve yüksekliği kaydırmıyor.
Bazı cihazlar normal hücre dizilerine karakter yerleştirmediğinden (yani karakterleri aralığına dahil ettiğinden), bir dizedeki karakterlerin kapsamlarının toplamı dizenin kapsamına eşit olmayabilir.
nTabPositions 0 ve lpnTabStopPositions iseNULL, sekmeler ortalama karakter genişliğinin sekiz katına genişletilir. 1 ise nTabPositions , sekme durakları, dizinin işaret ettiği lpnTabStopPositions ilk değerle belirtilen uzaklık ile ayrılır. Tek bir değerden fazlasını gösterirse lpnTabStopPositions , dizideki her değer için tarafından nTabPositionsbelirtilen sayıya kadar bir sekme durağı ayarlanır.
CDC::GetTextAlign
Cihaz bağlamı için metin hizalama bayraklarının durumunu alır.
UINT GetTextAlign() const;
Return Value
Metin hizalama bayraklarının durumu. Dönüş değeri aşağıdaki değerlerden biri veya daha fazlasıdır:
TA_BASELINESınırlayıcı dikdörtgen içinde x ekseninin hizalamasını ve seçilen yazı tipinin taban çizgisini belirtir.TA_BOTTOMX ekseninin ve sınırlayıcı dikdörtgenin alt kısmının hizalamasını belirtir.TA_CENTERY ekseninin hizalamasını ve sınırlayıcı dikdörtgenin merkezini belirtir.TA_LEFTY ekseninin ve sınırlayıcı dikdörtgenin sol tarafının hizalamasını belirtir.TA_NOUPDATECPGeçerli konumun güncelleştirilmediğini belirtir.TA_RIGHTY ekseninin hizalamasını ve sınırlayıcı dikdörtgenin sağ tarafını belirtir.TA_TOPX ekseninin hizalamasını ve sınırlayıcı dikdörtgenin üst kısmını belirtir.TA_UPDATECPGeçerli konumun güncelleştirildiğini belirtir.
Remarks
Metin hizalama bayrakları, ve TextOut üye işlevlerinin ExtTextOut bir metin dizesini dizenin başlangıç noktasına göre nasıl hizaladığını belirler. Metin hizalama bayrakları tek bit bayrakları olmayabilir ve 0'a eşit olabilir. Bir bayrağın ayarlanıp ayarlanmadığını test etmek için bir uygulamanın şu adımları izlemesi gerekir:
Bit düzeyinde OR (
|) işlecini bayrağına ve ilgili bayraklarına aşağıdaki gibi gruplandırılmış şekilde uygulayın:TA_LEFT,TA_CENTERveTA_RIGHTTA_BASELINE,TA_BOTTOMveTA_TOPTA_NOUPDATECPveTA_UPDATECP
C++ bit düzeyinde AND (
&) işlecini sonucuna ve dönüş değerineGetTextAlignuygulayın.Bu sonucun ve bayrağının eşitliğini test edin.
CDC::GetTextCharacterExtra
Ara karakter aralığı miktarı için geçerli ayarı alır.
int GetTextCharacterExtra() const;
Return Value
Ara karakter aralığı miktarı.
Remarks
GDI, cihaz bağlamı için bir metin satırı yazdığında kesme karakterleri de dahil olmak üzere her karaktere bu aralığı ekler.
Ara karakter aralığı miktarı için varsayılan değer 0'dır.
CDC::GetTextColor
Geçerli metin rengini alır.
COLORREF GetTextColor() const;
Return Value
RGB renk değeri olarak geçerli metin rengi.
Remarks
Metin rengi, GDI metin çıkışı üye işlevleri TextOut, ExtTextOutve TabbedTextOutkullanılarak çizilen karakterlerin ön plan rengidir.
CDC::GetTextExtent
Boyutları belirlemek için geçerli yazı tipini kullanarak metin satırının genişliğini ve yüksekliğini hesaplamak için bu üye işlevini çağırın.
CSize GetTextExtent(
LPCTSTR lpszString,
int nCount) const;
CSize GetTextExtent(const CString& str) const;
Parameters
lpszString
Bir karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.
nCount
Dizedeki karakter sayısını belirtir.
str
CString Belirtilen karakterleri içeren bir nesne.
Return Value
Nesnedeki dizenin boyutları (mantıksal birimlerde CSize ).
Remarks
Bilgiler, özniteliği cihaz bağlamından m_hAttribDCalınır.
Varsayılan olarak, GetTextExtent boyutunu aldığı metnin yatay bir çizgi boyunca ayarlandığını varsayar (yani, kaçış 0'dır). Sıfır olmayan bir kaçış noktası belirten bir yazı tipi oluşturursanız, dizenin boyutlarını almak için metnin açısını açıkça dönüştürmeniz gerekir.
Geçerli kırpma bölgesi tarafından GetTextExtentdöndürülen genişliği ve yüksekliği etkilemez.
Bazı cihazlar normal hücre dizilerine karakter yerleştirmediğinden (yani, karakter aralığı gerçekleştirdiklerinden), dizedeki karakterlerin kapsamlarının toplamı dizenin kapsamına eşit olmayabilir.
CDC::GetTextExtentExPointI
Belirtilen bir dizede belirtilen bir alana sığacak karakter sayısını alır ve bir diziyi bu karakterlerin her biri için metin kapsamıyla doldurur.
BOOL GetTextExtentExPointI(
LPWORD pgiIn,
int cgi,
int nMaxExtent,
LPINT lpnFit,
LPINT alpDx,
LPSIZE lpSize) const;
Parameters
pgiIn
Kapsamların alınacağı bir glif dizin dizisi işaretçisi.
cgi
tarafından pgiInişaret edilen dizideki karakter sayısını belirtir.
nMaxExtent
Biçimlendirilmiş dizenin mantıksal birimlerde izin verilen en büyük genişliğini belirtir.
lpnFit
tarafından nMaxExtentbelirtilen alana sığacak karakter sayısı üst sınırını alan bir tamsayı işaretçisi. olduğunda lpnFitNULLnMaxExtent yoksayılır.
alpDx
Kısmi glif kapsamları alan bir tamsayı dizisi işaretçisi. Dizideki her öğe, karakter dizin dizisinin başlangıcı ile tarafından nMaxExtentbelirtilen alana uyan karakterlerden biri arasındaki uzaklığı mantıksal birimler halinde verir. Bu dizi, tarafından cgibelirtilen glif dizinleri kadar en az sayıda öğeye sahip olmalıdır, ancak işlevi tarafından belirtilen lpnFitsayıda glif dizini için yalnızca uzantılarla diziyi doldurur. ise lpnDxNULL, işlev kısmi dize genişliklerini hesaplamaz.
lpSize
Mantıksal birimlerde, glif dizinleri dizisinin boyutlarını alan bir SIZE yapıya yönelik işaretçi. Bu değer olamaz NULL.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetTextExtentExPointIişlevselliğine öykünmektedir.
CDC::GetTextExtentPointI
Belirtilen karakter dizin dizisinin genişliğini ve yüksekliğini alır.
BOOL GetTextExtentPointI(
LPWORD pgiIn,
int cgi,
LPSIZE lpSize) const;
Parameters
pgiIn
Kapsamların alınacağı bir glif dizin dizisi işaretçisi.
cgi
tarafından pgiInişaret edilen dizideki karakter sayısını belirtir.
lpSize
Mantıksal birimlerde, glif dizinleri dizisinin boyutlarını alan bir SIZE yapıya yönelik işaretçi. Bu değer olamaz NULL.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetTextExtentPointIişlevselliğine öykünmektedir.
CDC::GetTextFace
Geçerli yazı tipinin yazı tipi adını arabelleğe kopyalamak için bu üye işlevini çağırın.
int GetTextFace(
int nCount,
LPTSTR lpszFacename) const;
int GetTextFace(CString& rString) const;
Parameters
nCount
Arabelleğin boyutunu belirtir (bayt cinsinden). Yazı biçimi adı bu parametre tarafından belirtilen bayt sayısından uzunsa, ad kesilir.
lpszFacename
Yazı biçimi adının arabelleğine işaret etti.
rString
Bir nesneye CString başvuru.
Return Value
Sonlandırıcı null karakter dahil olmak üzere arabelleğe kopyalanan bayt sayısı. Hata oluşursa 0 olur.
Remarks
Yazı biçimi adı null olarak sonlandırılan bir dize olarak kopyalanır.
CDC::GetTextMetrics
Öznitelik cihaz bağlamını kullanarak geçerli yazı tipinin ölçümlerini alır.
BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;
Parameters
lpMetrics
TEXTMETRIC Ölçümleri alan yapıya işaret eder.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
CDC::GetViewportExt
Cihaz bağlamının görünüm penceresi x ve y uzantılarını alır.
CSize GetViewportExt() const;
Return Value
Nesne olarak CSize x ve y-extents (cihaz birimlerinde).
CDC::GetViewportOrg
Cihaz bağlamıyla ilişkili görünüm penceresi kaynağının x ve y koordinatlarını alır.
CPoint GetViewportOrg() const;
Return Value
Nesne olarak CPoint görünüm noktasının (cihaz koordinatlarında) kaynağı.
CDC::GetWindow
Görüntü cihazı bağlamıyla ilişkili pencereyi döndürür.
CWnd* GetWindow() const;
Return Value
Başarılı olursa nesne CWnd işaretçisi; aksi takdirde NULL.
Remarks
Bu gelişmiş bir işlevdir. Örneğin, bu üye işlevi yazdırırken veya baskı önizlemede görünüm penceresini döndürmeyebilir. Her zaman çıkışla ilişkilendirilmiş pencereyi döndürür. Verilen DC'yi kullanan çıkış işlevleri bu pencereye çizer.
CDC::GetWindowExt
Cihaz bağlamıyla ilişkili pencerenin x ve y uzantılarını alır.
CSize GetWindowExt() const;
Return Value
Nesne olarak CSize x ve y kapsamları (mantıksal birimlerde).
CDC::GetWindowOrg
Cihaz bağlamıyla ilişkili pencerenin kaynağının x ve y koordinatlarını alır.
CPoint GetWindowOrg() const;
Return Value
Pencerenin çıkış noktası (mantıksal koordinatlarda) bir CPoint nesne olarak.
CDC::GetWorldTransform
Geçerli dünya alanını sayfa alanı dönüşümüne alır.
BOOL GetWorldTransform(XFORM& rXform) const;
Parameters
rXform
Geçerli dünya alanını sayfa alanına dönüştürmeyi alan bir XFORM yapıya başvuru.
Return Value
Başarıda sıfır olmayan bir değer döndürür.
Hata durumunda 0 döndürür.
Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.
Remarks
Bu yöntem, Windows GDI işlevini GetWorldTransformsarmalar.
CDC::GradientFill
Dikdörtgen ve üçgen yapıları bir taraftan diğerine düzgün bir şekilde beliren bir renkle doldurmak için bu üye işlevini çağırın.
BOOL GradientFill(
TRIVERTEX* pVertices,
ULONG nVertices,
void* pMesh,
ULONG nMeshElements,
DWORD dwMode);
Parameters
pVertices
Her biri TRIVERTEX üçgen köşe tanımlayan bir yapı dizisinin işaretçisi.
nVertices
Köşe sayısı.
pMesh
Üçgen modundaki yapıların GRADIENT_TRIANGLE dizisi veya dikdörtgen modundaki bir yapı dizisi GRADIENT_RECT .
nMeshElements
içindeki pMeshöğe sayısı (üçgenler veya dikdörtgenler).
dwMode
Gradyan dolgu modunu belirtir. Olası değerlerin listesi için Bkz GradientFill . Windows SDK'sı.
Return Value
TRUE başarılı olursa; aksi takdirde FALSE.
Remarks
Daha fazla bilgi için bkz GradientFill . Windows SDK'sı.
CDC::GrayString
Metni bir bellek bit eşlemine yazarak, bit eşlemi soluk hale getirmek ve ardından bit eşlemi ekrana kopyalayarak belirli bir konuma soluk (gri) metin çizer.
virtual BOOL GrayString(
CBrush* pBrush,
BOOL (CALLBACK* lpfnOutput)(
HDC,
LPARAM,
int),
LPARAM lpData,
int nCount,
int x,
int y,
int nWidth,
int nHeight);
Parameters
pBrush
Karartma (grileme) için kullanılacak fırçayı tanımlar.
lpfnOutput
Dizeyi çizecek uygulama tarafından sağlanan geri çağırma işlevinin yordam örneği adresini belirtir. Daha fazla bilgi için Windows OutputFuncgeri çağırma işlevinin açıklamasına bakın. Bu parametre ise NULL, sistem dizeyi çizmek için Windows TextOut işlevini kullanır ve lpData çıkış yapılacak karakter dizesine uzun bir işaretçi olduğu varsayılır.
lpData
Çıkış işlevine geçirilecek verilerin uzak işaretçisini belirtir. ise lpfnOutputNULL, lpData çıkışının dizeye uzun bir işaretçi olması gerekir.
nCount
Çıkış yapılacak karakter sayısını belirtir. Bu parametre 0 ise, GrayString dizenin uzunluğunu hesaplar (bunun dizeye yönelik bir işaretçi olduğu lpData varsayılır). 1 ise ve işlevin işaret ettiği nCount işlev 0 döndürürselpfnOutput, görüntü gösterilir ancak soluk değildir.
x
Dizeyi çevreleyen dikdörtgenin başlangıç konumunun mantıksal x koordinatını belirtir.
y
Dizeyi kapsayan dikdörtgenin başlangıç konumunun mantıksal y koordinatını belirtir.
nWidth
Dizeyi çevreleyen dikdörtgenin genişliğini (mantıksal birimlerde) belirtir. 0 ise nWidth , GrayString dizenin işaretçisi olduğunu varsayarak lpData alanın genişliğini hesaplar.
nHeight
Dizeyi çevreleyen dikdörtgenin yüksekliğini (mantıksal birimlerde) belirtir. 0 ise nHeight , GrayString dizenin işaretçisi olduğunu varsayarak lpData alanın yüksekliğini hesaplar.
Return Value
Dize çizilirse sıfır olmayan veya işlev veya uygulama tarafından sağlanan çıkış işlevi 0 TextOut döndürdüyse veya soluklama için bellek bit eşlemi oluşturmak için yetersiz bellek varsa 0.
Remarks
işlevi, seçili fırça ve arka plandan bağımsız olarak metni soluk görüntüler.
GrayString Üye işlevi seçili durumdaki yazı tipini kullanır. Bu MM_TEXT işlev kullanmadan önce eşleme modu seçilmelidir.
Uygulama, üye işlevini çağırmadan GrayString düz gri rengi destekleyen cihazlarda soluk (gri) dizeler çizebilir. Sistem rengi COLOR_GRAYTEXT , devre dışı bırakılmış metin çizmek için kullanılan düz gri sistem rengidir. Uygulama, renk değerini GetSysColoralmak için Windows işlevini çağırabilirCOLOR_GRAYTEXT. Renk 0 (siyah) dışındaysa, uygulama üye işlevini çağırarak SetTextColor metin rengini renk değerine ayarlayabilir ve ardından dizeyi doğrudan çizebilir. Alınan renk siyahsa, uygulamanın metni soluk (gri) olarak çağırması GrayString gerekir.
ise lpfnOutputNULL, GDI Windows TextOut işlevini kullanır ve lpData çıkış karakterine uzak bir işaretçi olduğu varsayılır. Çıkış yapılacak karakterler üye işlevi tarafından TextOut işlenemiyorsa (örneğin, dize bit eşlem olarak depolanır), uygulamanın kendi çıkış işlevini sağlaması gerekir.
Geri çağırma sınırları boyunca özel durumlar oluşturulamadığından, Windows'a dönmeden önce tüm geri çağırma işlevlerinin Microsoft Foundation özel durumlarını yakalaması gerekir. Özel durumlar hakkında daha fazla bilgi için Özel durumlar makalesine bakın.
öğesine geçirilen GrayString geri çağırma işlevinin __stdcall çağırma kuralını kullanması ve ile dışarı __declspecaktarılması gerekir.
Çerçeve önizleme modundayken üye işlevine yapılan GrayString çağrı bir TextOut çağrıya çevrilir ve geri çağırma işlevi çağrılmaz.
CDC::HIMETRICtoDP
Boyutları OLE'den piksele dönüştürürken HIMETRIC bu işlevi kullanın.
void HIMETRICtoDP(LPSIZE lpSize) const;
Parameters
lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.
Remarks
Cihaz bağlam nesnesinin MM_LOENGLISHeşleme modu , MM_HIENGLISHMM_LOMETRIC veya MM_HIMETRICise dönüştürme, fiziksel inçteki piksel sayısını temel alır. Eşleme modu diğer kısıtlanmamış modlardan biriyse (örneğin, MM_TEXT), dönüştürme işlemi mantıksal inçteki piksel sayısını temel alır.
CDC::HIMETRICtoLP
Birimleri mantıksal birimlere dönüştürmek HIMETRIC için bu işlevi çağır.
void HIMETRICtoLP(LPSIZE lpSize) const;
Parameters
lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.
Remarks
OLE'den boyut aldığınızda HIMETRIC ve bunları uygulamanızın doğal eşleme moduna dönüştürmek istediğinizde bu işlevi kullanın.
Dönüştürme, önce birimleri piksellere dönüştürerek HIMETRIC ve ardından cihaz bağlamı geçerli eşleme birimlerini kullanarak bu birimleri mantıksal birimlere dönüştürerek gerçekleştirilir. Cihaz penceresinin ve görünüm penceresinin boyutlarının sonucu etkileyeceğini unutmayın.
CDC::IntersectClipRect
Geçerli bölge ile , x1, y1ve x2tarafından y2belirtilen dikdörtgenin kesişimini oluşturarak yeni bir kırpma bölgesi oluşturur.
int IntersectClipRect(
int x1,
int y1,
int x2,
int y2);
int IntersectClipRect(LPCRECT lpRect);
Parameters
x1
Dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.
y1
Dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.
x2
Dikdörtgenin sağ alt köşesinin mantıksal x koordinatını belirtir.
y2
Dikdörtgenin sağ alt köşesinin mantıksal y koordinatını belirtir.
lpRect
Dikdörtgeni belirtir. Bu parametrenin yapısına CRect bir RECT nesne veya işaretçi geçirebilirsiniz.
Return Value
Yeni kırpma bölgesinin türü. Aşağıdaki değerlerden herhangi biri olabilir:
COMPLEXREGIONYeni kırpma bölgesinin kenarlıkları çakışıyor.ERRORCihaz bağlamı geçerli değil.NULLREGIONYeni kırpma bölgesi boş.SIMPLEREGIONYeni kırpma bölgesinde çakışan kenarlıklar yok.
Remarks
GDI, sonraki tüm çıkışı yeni sınıra sığacak şekilde klipler. Genişlik ve yükseklik 32.767'yi aşmamalıdır.
CDC::InvertRect
Verilen dikdörtgenin içeriğini ters çevirir.
void InvertRect(LPCRECT lpRect);
Parameters
lpRect
Ters çevrilecek dikdörtgenin mantıksal koordinatlarını içeren bir RECT öğesine işaret eder. Bu parametre için bir CRect nesne de geçirebilirsiniz.
Remarks
Ters çevirme mantıksal bir DEĞİl işlemidir ve her pikselin bitlerini çevirir. Tek renkli ekranlarda, işlev beyaz pikselleri siyah ve siyah pikselleri beyaz yapar. Renkli ekranlarda, tersine çevirme, ekran için renklerin nasıl oluşturulduğuna bağlıdır. Aynı dikdörtgenle iki kez çağrılması InvertRect , görüntüyü önceki renklerine geri yükler.
Dikdörtgen boşsa hiçbir şey çizilir.
Example
void CDCView::DoInvertRect(CDC *pDC)
{
// invert rect from 20,20 to 50,50
CRect rect(20, 20, 50, 50);
pDC->InvertRect(rect);
// inverting again restores to normal
::Sleep(1000);
pDC->InvertRect(rect);
}
CDC::InvertRgn
tarafından pRgnbelirtilen bölgedeki renkleri tersine çevirir.
BOOL InvertRgn(CRgn* pRgn);
Parameters
pRgn
Ters çevrilecek bölgeyi tanımlar. Bölgenin koordinatları mantıksal birimlerde belirtilir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Tek renkli ekranlarda, işlev beyaz pikselleri siyah ve siyah pikselleri beyaz yapar. Renkli ekranlarda, tersine çevirme, renklerin ekran için nasıl oluşturulduğuna bağlıdır.
CDC::IsPrinting
Cihaz bağlamın yazdırma için kullanılıp kullanılmadığını belirler.
BOOL IsPrinting() const;
Return Value
Nesne bir yazıcı DC'yse sıfır CDC olmayan; aksi takdirde 0.
CDC::LineTo
geçerli konumdan ve x (veyay) tarafından point belirtilen noktaya kadar bir çizgi çizer, ancak eklemez.
BOOL LineTo(
int x,
int y);
BOOL LineTo(POINT point);
Parameters
x
Çizgi için uç noktanın mantıksal x koordinatını belirtir.
y
Çizgi için uç noktanın mantıksal y koordinatını belirtir.
point
Satırın uç noktasını belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
Çizgi çizilirse sıfır olmayan; aksi takdirde 0.
Remarks
Çizgi seçili kalemle çizilir. Geçerli konum olarak xyveya olarak ayarlanırpoint.
Example
örneğine CRect::CenterPointbakın.
CDC::LPtoDP
Mantıksal birimleri cihaz birimlerine dönüştürür.
void LPtoDP(
LPPOINT lpPoints,
int nCount = 1) const;
void LPtoDP(LPRECT lpRect) const;
void LPtoDP(LPSIZE lpSize) const;
Parameters
lpPoints
Bir nokta dizisine işaret eder. Dizideki her nokta bir POINT yapı veya CPoint nesnedir.
nCount
Dizideki nokta sayısı.
lpRect
Bir RECT yapıyı veya CRect nesneyi gösterir. Bu parametre, mantıksal birimlerden cihaz birimlerine bir dikdörtgen eşlemenin yaygın durumu için kullanılır.
lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.
Remarks
İşlev, GDI'nın mantıksal koordinat sisteminden her bir noktanın koordinatlarını veya bir boyutun boyutlarını bir cihaz koordinat sistemine eşler. Dönüştürme, geçerli eşleme moduna ve cihaz penceresinin ve görünüm penceresinin çıkış noktalarının ve kapsamlarının ayarlarına bağlıdır.
Noktaların x ve y koordinatları-32.768 ile 32.767 aralığındaki 2 bayt işaretli tamsayılardır. Eşleme modunun bu sınırlardan daha büyük değerlere neden olacağı durumlarda sistem, değerleri sırasıyla -32.768 ve 32.767 olarak ayarlar.
CDC::LPtoHIMETRIC
Mantıksal birimleri birimlere HIMETRIC dönüştürmek için bu işlevi çağır.
void LPtoHIMETRIC(LPSIZE lpSize) const;
Parameters
lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.
Remarks
Uygulamanızın doğal eşleme modundan dönüştürerek OLE'ye boyut verdiğinizde HIMETRIC bu işlevi kullanın. Cihaz penceresinin ve görünüm penceresinin kapsamları sonucu etkiler.
Dönüştürme, önce cihaz bağlamı geçerli eşleme birimleri kullanılarak mantıksal birimleri piksellere dönüştürerek ve ardından bu birimleri birimlere HIMETRIC dönüştürerek gerçekleştirilir.
CDC::m_hAttribDC
Bu CDC nesne için öznitelik cihaz bağlamı.
HDC m_hAttribDC;
Remarks
Varsayılan olarak, bu cihaz bağlamı değerine m_hDCeşittir. Genel olarak, CDC cihaz bağlamından bilgi isteyen GDI çağrıları adresine m_hAttribDCyönlendirilir. Bu iki cihaz bağlamının CDC kullanımı hakkında daha fazla bilgi için sınıf açıklamasına bakın.
CDC::m_hDC
Bu CDC nesne için çıkış cihazı bağlamı.
HDC m_hDC;
Remarks
Varsayılan olarak, m_hDC tarafından sarmalanan m_hAttribDCdiğer cihaz bağlamı olan öğesine eşittirCDC. Genel olarak, CDC çıkış oluşturan GDI çağrıları cihaz bağlamlarına m_hDC gider. farklı cihazları başlatabilir m_hDC ve m_hAttribDC işaret edebilirsiniz. Bu iki cihaz bağlamının CDC kullanımı hakkında daha fazla bilgi için sınıf açıklamasına bakın.
CDC::MaskBlt
Verilen maske ve tarama işlemini kullanarak kaynak ve hedef bit eşlemler için renk verilerini birleştirir.
BOOL MaskBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
CBitmap& maskBitmap,
int xMask,
int yMask,
DWORD dwRop);
Parameters
x
Hedef dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.
y
Hedef dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.
nWidth
Hedef dikdörtgenin ve kaynak bit eşleminin genişliğini mantıksal birimler halinde belirtir.
nHeight
Hedef dikdörtgenin ve kaynak bit eşleminin yüksekliğini mantıksal birimler halinde belirtir.
pSrcDC
Bit eşlem kopyalanacak cihaz bağlamını tanımlar. Parametresi kaynak içermeyen bir raster işlemi belirtiyorsa dwRop sıfır olmalıdır.
xSrc
Kaynak bit eşleminin sol üst köşesinin mantıksal x koordinatını belirtir.
ySrc
Kaynak bit eşleminin sol üst köşesinin mantıksal y koordinatını belirtir.
maskBitmap
Kaynak cihaz bağlamındaki renk bit eşlemi ile birleştirilmiş tek renkli maske bit eşlemini tanımlar.
xMask
parametresi tarafından maskBitmap belirtilen maske bit eşlemi için yatay piksel uzaklığını belirtir.
yMask
parametresi tarafından maskBitmap belirtilen maske bit eşlemi için dikey piksel uzaklığını belirtir.
dwRop
İşlevin kaynak ve hedef verilerin birleşimini denetlemek için kullandığı ön plan ve arka plan üçüncül raster işlem kodlarını belirtir. Arka plan tarama işlemi kodu, bu değerin yüksek sözcüğünün yüksek baytında depolanır; ön plan raster işlem kodu, bu değerin yüksek sözcüğünün düşük baytında depolanır; bu değerin düşük sözcüğü yoksayılır ve sıfır olmalıdır. Makro MAKEROP4 , ön plan ve arka plan tarama işlem kodlarının bu tür birleşimlerini oluşturur. Bu işlev bağlamında ön plan ve arka plan tartışması için Açıklamalar bölümüne bakın.
BitBlt Yaygın raster işlem kodlarının listesi için üye işlevine bakın.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
tarafından maskBitmap belirtilen maskede 1 değeri, tarafından dwRop belirtilen ön plan raster işlem kodunun o konuma uygulanması gerektiğini belirtir. Maskedeki 0 değeri, tarafından dwRop belirtilen arka plan tarama işlemi kodunun bu konuma uygulanması gerektiğini gösterir. Tarama işlemleri bir kaynak gerektiriyorsa, maske dikdörtgeni kaynak dikdörtgeni kapsamalıdır. Aksi takdirde işlev başarısız olur. Tarama işlemleri için kaynak gerekmiyorsa maske dikdörtgeninin hedef dikdörtgeni kaplaması gerekir. Aksi takdirde işlev başarısız olur.
Bu işlev çağrıldığında kaynak cihaz bağlamı için döndürme veya kesme dönüştürmesi etkinse bir hata oluşur. Ancak, diğer dönüştürme türlerine izin verilir.
Kaynak, desen ve hedef bit eşlemlerin renk biçimleri farklıysa, bu işlev deseni veya kaynak biçimini ya da her ikisini de hedef biçimle eşleşecek şekilde dönüştürür. Maske bit eşlemi tek renkli bit eşlem değilse bir hata oluşur. Gelişmiş meta dosyası kaydedilirken, kaynak cihaz bağlamı gelişmiş meta dosyası cihaz bağlamını tanımlarsa bir hata oluşur (ve işlev 0 döndürür). Tüm cihazlar 'i desteklemez MaskBlt. Bir cihazın bu işlevi destekleyip desteklemediğini belirlemek için bir uygulama çağırmalıdır GetDeviceCaps . Maske bit eşlemi sağlanmazsa, bu işlev ön plan raster işlem kodunu kullanarak tam olarak gibi BitBltdavranır. Piksel, maske bit eşlemindeki uzaklığı kaynak cihaz bağlamı bit eşlemindeki noktaya (0,0) kaydırıyor. Bu, bir maske bit eşleminin bir maske kümesi içerdiği durumlarda kullanışlıdır; bir uygulama, adresine gönderilen piksel uzaklıklarını ve dikdörtgen boyutlarını ayarlayarak bunlardan herhangi birini maske kesme görevine MaskBltkolayca uygulayabilir.
CDC::ModifyWorldTransform
Belirtilen modu kullanarak cihaz bağlamı için dünya dönüşümlerini değiştirir.
BOOL ModifyWorldTransform(
const XFORM& rXform,
DWORD iMode);
Parameters
rXform
Verilen cihaz bağlamı için dünya dönüşümlerini değiştirmek için kullanılan bir XFORM yapıya başvuru.
iMode
Dönüştürme verilerinin geçerli dünya dönüşümünde nasıl değişiklik yapılacağını belirtir. Bu parametrenin alabildiği değerlerin listesi için bkz ModifyWorldTransform. .
Return Value
Başarıda sıfır olmayan bir değer döndürür.
Hata durumunda 0 döndürür.
Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.
Remarks
Bu yöntem, Windows GDI işlevini ModifyWorldTransformsarmalar.
CDC::MoveTo
Geçerli konumu ve x (veya ytarafından) belirtilen point noktaya taşır.
CPoint MoveTo(
int x,
int y);
CPoint MoveTo(POINT point);
Parameters
x
Yeni konumun mantıksal x koordinatını belirtir.
y
Yeni konumun mantıksal y koordinatını belirtir.
point
Yeni konumu belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
Nesne olarak CPoint önceki konumun x ve y koordinatları.
Example
örneğine CRect::CenterPointbakın.
CDC::OffsetClipRgn
Cihaz bağlamının kırpma bölgesini belirtilen uzaklıklara göre taşır.
int OffsetClipRgn(
int x,
int y);
int OffsetClipRgn(SIZE size);
Parameters
x
Sola veya sağa taşınacak mantıksal birim sayısını belirtir.
y
Yukarı veya aşağı taşınacak mantıksal birim sayısını belirtir.
size
Kaydıracak miktarı belirtir.
Return Value
Yeni bölgenin türü. Aşağıdaki değerlerden herhangi biri olabilir:
COMPLEXREGIONKırpma bölgesinin kenarlıkları çakışıyor.ERRORCihaz bağlamı geçerli değil.NULLREGIONKırpma bölgesi boş.SIMPLEREGIONKırpma bölgesinin kenarlıkları örtüşmemiştir.
Remarks
işlevi, bölge x birimlerini x ekseni boyunca, birimleri ise y y ekseni boyunca taşır.
CDC::OffsetViewportOrg
Görünüm penceresi kaynağının koordinatlarını geçerli görünüm penceresi kaynağının koordinatlarına göre değiştirir.
virtual CPoint OffsetViewportOrg(
int nWidth,
int nHeight);
Parameters
nWidth
Geçerli kaynağın x koordinatlarına eklenecek cihaz birimi sayısını belirtir.
nHeight
Geçerli kaynağın y koordinatlarına eklenecek cihaz birimi sayısını belirtir.
Return Value
Nesne olarak CPoint önceki görünüm penceresi kaynağı (cihaz koordinatlarında).
CDC::OffsetWindowOrg
Geçerli pencere kaynağının koordinatlarına göre pencere kaynağının koordinatlarını değiştirir.
CPoint OffsetWindowOrg(
int nWidth,
int nHeight);
Parameters
nWidth
Geçerli kaynağın x koordinatlarına eklenecek mantıksal birim sayısını belirtir.
nHeight
Geçerli kaynağın y koordinatlarına eklenecek mantıksal birim sayısını belirtir.
Return Value
Nesne olarak CPoint önceki pencere başlangıcı (mantıksal koordinatlarda).
CDC::operator HDC
Nesnenin cihaz bağlam tutamacını CDC almak için bu işleci kullanın.
operator HDC() const;
Return Value
Başarılı olursa, cihaz bağlam nesnesinin tanıtıcısı; aksi takdirde , NULL.
Remarks
Windows API'lerini doğrudan çağırmak için tutamacı kullanabilirsiniz.
CDC::PaintRgn
Geçerli fırçayı kullanarak belirtilen pRgn bölgeyi doldurur.
BOOL PaintRgn(CRgn* pRgn);
Parameters
pRgn
Doldurulacak bölgeyi tanımlar. Belirtilen bölgenin koordinatları mantıksal birimlerde belirtilir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
CDC::PatBlt
Cihazda bir bit deseni oluşturur.
BOOL PatBlt(
int x,
int y,
int nWidth,
int nHeight,
DWORD dwRop);
Parameters
x
Deseni almak için dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.
y
Deseni almak için dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.
nWidth
Deseni alacak dikdörtgenin genişliğini (mantıksal birimlerde) belirtir.
nHeight
Deseni alacak dikdörtgenin yüksekliğini (mantıksal birimlerde) belirtir.
dwRop
raster-operation kodunu belirtir. Raster-operation codes (ROPs), GDI'nin geçerli fırça, olası bir kaynak bit eşlem ve hedef bit eşlem içeren çıkış işlemlerinde renkleri nasıl birleştirdiğini tanımlar. Bu parametre aşağıdaki değerlerden biri olabilir:
PATCOPYDeseni hedef bit eşlem'e kopyalar.PATINVERTBoole XOR (^) işlecini kullanarak hedef bit eşlemini desenle birleştirir.DSTINVERTHedef bit eşlemi tersine çevirir.BLACKNESSTüm çıkışı siyaha çevirir.WHITENESSTüm çıkışı beyaza çevirir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Desen, seçili fırçanın ve cihazda zaten bulunan desenin bir bileşimidir. tarafından dwRop belirtilen raster-operation kodu, desenlerin nasıl birleştirileceği tanımlar. Bu işlev için listelenen raster işlemleri, tam 256 üçüncül raster-operation kodunun sınırlı bir alt kümesidir; özellikle bir kaynağa başvuran bir raster-operation kodu kullanılamaz.
Tüm cihaz bağlamları işlevi desteklemez PatBlt . Bir cihaz bağlamı PatBlt tarafından desteklenip desteklenmediğini GetDeviceCapsbelirlemek için, üye işlevini dizinle birlikte çağırın RASTERCAPS ve bayrağının RC_BITBLT dönüş değerini denetleyin.
CDC::Pie
Merkezi ve iki uç noktası çizgilerle birleştirilen eliptik bir yay çizerek pasta şeklinde bir kama çizer.
BOOL Pie(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4);
BOOL Pie(
LPCRECT lpRect,
POINT ptStart,
POINT ptEnd);
Parameters
x1
Sınırlayıcı dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).
y1
Sınırlayıcı dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).
x2
Sınırlayıcı dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).
y2
Sınırlayıcı dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).
x3
Yay başlangıç noktasının x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
y3
Yay başlangıç noktasının y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
x4
Ark uç noktasının x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
y4
Ark uç noktasının y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.
lpRect
Sınırlayıcı dikdörtgeni belirtir. Bu parametrenin yapısına CRect bir RECT nesne veya işaretçi geçirebilirsiniz.
ptStart
Yayının başlangıç noktasını belirtir. Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
ptEnd
Yay uç noktasını belirtir. Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Yay merkezi, x1y1ve x2 (veya y2tarafından) tarafından lpRectbelirtilen sınırlayıcı dikdörtgenin merkezidir. Yayının başlangıç ve bitiş noktaları , , x3y3ve x4 (veya ve y4) ile ptStartptEnd belirtilir.
Yay, saat yönünün tersine hareket eden seçili kalemle çizilir. Her uç noktadan yay merkezine iki çizgi daha çizilir. Pasta şeklindeki alan geçerli fırça ile doldurulur. eşittir x3 ve eşitse x4y3, sonuç üç noktanın ortasından nokta (, ) veya (y4x3, y3x4) öğesine tek bir çizgi içeren bir üç noktadıry4.
Bu işlev tarafından çizilen şekil yukarı doğru uzanır ancak sağ ve alt koordinatları içermez. Bu, şeklin yüksekliğinin ve y2 - y1 şeklin genişliğinin olduğu x2 - x1anlamına gelir. Sınırlayıcı dikdörtgenin hem genişliği hem de yüksekliği 2 birimden büyük ve 32.767 birimden az olmalıdır.
Example
void CDCView::DrawPie(CDC *pDC)
{
// Fill the client area with a simple pie chart. A
// big blue slice covers 75% of the pie, from
// 6 o'clock to 3 o'clock. This portion is filled
// with blue and has a blue edge. The remaining 25%
// is filled with a red, diagonal hatch and has
// a red edge.
// Get the client area.
CRect rectClient;
GetClientRect(rectClient);
// Make a couple of pens and similar brushes.
CPen penBlue, penRed;
CBrush brushBlue, brushRed;
CBrush *pOldBrush;
CPen *pOldPen;
brushBlue.CreateSolidBrush(RGB(0, 0, 255));
brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));
// Draw from 3 o'clock to 6 o'clock, counterclockwise,
// in a blue pen with a solid blue fill.
pOldPen = pDC->SelectObject(&penBlue);
pOldBrush = pDC->SelectObject(&brushBlue);
pDC->Pie(rectClient,
CPoint(rectClient.right, rectClient.CenterPoint().y),
CPoint(rectClient.CenterPoint().x, rectClient.right));
// Draw the remaining quarter slice from 6 o'clock
// to 3 o'clock, counterclockwise, in a red pen with
// the hatched brush.
pDC->SelectObject(&penRed);
pDC->SelectObject(&brushRed);
// Same parameters, but reverse start and end points.
pDC->Pie(rectClient,
CPoint(rectClient.CenterPoint().x, rectClient.right),
CPoint(rectClient.right, rectClient.CenterPoint().y));
// Restore the previous pen.
pDC->SelectObject(pOldPen);
}
CDC::PlayMetaFile
Belirtilen meta dosyasının içeriğini cihaz bağlamında çalar.
BOOL PlayMetaFile(HMETAFILE hMF);
BOOL PlayMetaFile(
HENHMETAFILE hEnhMetaFile,
LPCRECT lpBounds);
Parameters
hMF
Oynatılacak meta dosyasını tanımlar.
hEnhMetaFile
Gelişmiş meta dosyasını tanımlar.
lpBounds
Resmi görüntülemek için kullanılan sınırlayıcı dikdörtgenin koordinatlarını içeren bir RECTCRect yapıyı veya nesneyi gösterir. Koordinatlar mantıksal birimlerde belirtilir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Meta dosyası istediğiniz sayıda oynatılabilir.
İkinci sürümü PlayMetaFile , verilen gelişmiş biçimli meta dosyasında depolanan resmi görüntüler. Bir uygulama ikinci sürümünü PlayMetaFileçağırdığında Windows, gelişmiş meta dosyası üst bilgisindeki resim çerçevesini kullanarak resmi lpBounds parametresinin işaret ettiği dikdörtgene eşler . (Bu resim, çağırmadan PlayMetaFileönce çıkış cihazında dünya dönüşümü ayarlanarak yamlanabilir veya döndürülebilir.) Dikdörtgenin kenarlarındaki noktalar resme eklenir. Gelişmiş meta dosyası resmi, gelişmiş meta dosyasını yürütmeden önce çıkış cihazında kırpma bölgesi tanımlanarak kırpılabilir.
Gelişmiş meta dosyası isteğe bağlı bir palet içeriyorsa, bir uygulama ikinci sürümünü PlayMetaFileçağırmadan önce çıkış cihazında bir renk paleti ayarlayarak tutarlı renkler elde edebilir. İsteğe bağlı paleti almak için Windows işlevini kullanın GetEnhMetaFilePaletteEntries . Gelişmiş meta dosyası, yeni geliştirilmiş meta dosyası için ikinci sürümü PlayMetaFile çağrılarak ve kaynak gelişmiş meta dosyası cihaz bağlamında yürütülerek yeni oluşturulan gelişmiş meta dosyaya eklenebilir.
Çıkış cihazı bağlamının durumları bu işlev tarafından korunur. Geliştirilmiş meta dosyasında oluşturulan ancak silinmeyen tüm nesneler bu işlev tarafından silinir. Bir uygulama bu işlevi durdurmak için windows işlevini başka bir iş parçacığından çağırarak CancelDC işlemi sonlandırabilir. Bu durumda işlev sıfır döndürür.
CDC::PlgBlt
Kaynak cihaz bağlamında belirtilen dikdörtgenden verilen cihaz bağlamındaki belirtilen paralelograma renk verisi bitlerinin bit blok aktarımını gerçekleştirir.
BOOL PlgBlt(
LPPOINT lpPoint,
CDC* pSrcDC,
int xSrc,
int ySrc,
int nWidth,
int nHeight,
CBitmap& maskBitmap,
int xMask,
int yMask);
Parameters
lpPoint
Hedef paralelkenarının üç köşesini tanımlayan mantıksal alanda üç noktadan oluşan bir diziye işaret eder. Kaynak dikdörtgenin sol üst köşesi bu dizinin ilk noktasına, sağ üst köşesi bu dizinin ikinci noktasına ve sol alt köşeden üçüncü noktaya eşlenir. Kaynak dikdörtgenin sağ alt köşesi paralelkenardaki örtük dördüncü noktaya eşlenir.
pSrcDC
Kaynak cihaz bağlamını tanımlar.
xSrc
Kaynak dikdörtgenin sol üst köşesindeki x koordinatını mantıksal birimler halinde belirtir.
ySrc
Kaynak dikdörtgenin sol üst köşesinin mantıksal birimlerde y koordinatını belirtir.
nWidth
Kaynak dikdörtgenin genişliğini mantıksal birimler halinde belirtir.
nHeight
Kaynak dikdörtgenin yüksekliğini mantıksal birimler halinde belirtir.
maskBitmap
Kaynak dikdörtgenin renklerini maskelerken kullanılan isteğe bağlı bir tek renkli bit eşlem tanımlar.
xMask
Tek renkli bit eşleminin sol üst köşesinin x koordinatını belirtir.
yMask
Tek renkli bit eşleminin sol üst köşesinin y koordinatını belirtir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Verilen bit maskesi tutamacı geçerli bir tek renkli bit eşlem tanımlarsa, işlev kaynak dikdörtgendeki renk verisi bitlerini maske etmek için bu bit eşlemi kullanır.
Paralelogramın dördüncü köşesi (D), ilk üç noktanın (A, B ve C) vektör olarak ele alınması ve D = B + C - A hesaplaması ile tanımlanır.
Bit maskesi varsa, maskedeki 1 değeri kaynak piksel renginin hedefe kopyalanması gerektiğini gösterir. Maskedeki 0 değeri, hedef piksel renginin değiştirilmediğini gösterir.
Maske dikdörtgeni kaynak ve hedef dikdörtgenlerden daha küçükse, işlev maske desenini çoğaltır.
Kaynak cihaz bağlamında ölçeklendirme, çeviri ve yansıma dönüştürmelerine izin verilir; ancak döndürme ve kesme dönüştürmeleri değildir. Maske bit eşlemi tek renkli bit eşlem değilse bir hata oluşur. Hedef cihaz bağlamı için esnetme modu, gerekirse piksellerin nasıl genişletileceğini veya sıkıştırıldığını belirlemek için kullanılır. Gelişmiş meta dosyası kaydedilirken, kaynak cihaz bağlamı gelişmiş meta dosyası cihaz bağlamını tanımlarsa bir hata oluşur.
Hedef koordinatları hedef cihaz bağlamına göre dönüştürülür; kaynak koordinatları kaynak cihaz bağlamına göre dönüştürülür. Kaynak dönüştürmenin döndürme veya kesme işlemi varsa bir hata döndürülür. Hedef ve kaynak dikdörtgenler aynı renk biçimine sahip değilse, PlgBlt kaynak dikdörtgeni hedef dikdörtgenle eşleşecek şekilde dönüştürür. Tüm cihazlar 'i desteklemez PlgBlt. Daha fazla bilgi için üye işlevindeki RC_BITBLT raster özelliğinin açıklamasına CDC::GetDeviceCaps bakın.
Kaynak ve hedef cihaz bağlamları uyumsuz cihazları temsil ederse bir PlgBlt hata döndürür.
CDC::PolyBezier
Bir veya daha fazla Bzier eğrisi çizer.
BOOL PolyBezier(
const POINT* lpPoints,
int nCount);
Parameters
lpPoints
Spline'ların POINT uç noktalarını ve denetim noktalarını içeren bir veri yapıları dizisine işaret eder.
nCount
Dizideki lpPoints nokta sayısını belirtir. Her Bzier spline iki denetim noktası ve bir uç nokta gerektirdiğinden ve ilk spline başka bir başlangıç noktası gerektirdiğinden, bu değer çizilecek eğri sayısının üç katı olmalıdır.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu işlev, parametresi tarafından belirtilen uç noktaları ve denetim noktalarını kullanarak Bzier splines küplerini lpPoints çizer. İlk spline, ikinci ve üçüncü noktalar denetim noktası olarak kullanılarak birinci noktadan dördüncü noktaya çekilir. Dizideki sonraki her spline tam olarak üç noktaya daha ihtiyaç duyar: başlangıç noktası olarak önceki eğrinin bitiş noktası kullanılır, dizideki sonraki iki nokta denetim noktalarıdır ve üçüncüsü bitiş noktasıdır.
Geçerli konum işlev tarafından PolyBezier kullanılmaz veya güncelleştirilmez. Şekil doldurulmuyor. Bu işlev geçerli kalemi kullanarak çizgileri çizer.
CDC::PolyBezierTo
Bir veya daha fazla Bzier eğrisi çizer.
BOOL PolyBezierTo(
const POINT* lpPoints,
int nCount);
Parameters
lpPoints
Uç noktaları ve denetim noktalarını içeren bir veri yapıları dizisine POINT işaret eder.
nCount
Dizideki lpPoints nokta sayısını belirtir. Her Bzier spline için iki denetim noktası ve bir bitiş noktası gerektiğinden, bu değer çizilecek eğri sayısının üç katı olmalıdır.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu işlev, parametresi tarafından lpPoints belirtilen denetim noktalarını kullanarak Bzier kübik splines çizer. İlk eğri geçerli konumdan üçüncü noktaya doğru ilk iki nokta denetim noktası olarak kullanılarak çizilir. Sonraki her spline için işlevin tam olarak üç noktaya daha ihtiyacı vardır ve sonrakinin başlangıç noktası olarak önceki eğrinin bitiş noktasını kullanır.
PolyBezierTo geçerli konumu son Bzier eğrisinin bitiş noktasına taşır. Şekil doldurulmuyor. Bu işlev geçerli kalemi kullanarak çizgileri çizer.
Example
örneğine CDC::BeginPathbakın.
CDC::PolyDraw
Bir dizi çizgi kesimi ve Bzier eğrisi çizer.
BOOL PolyDraw(
const POINT* lpPoints,
const BYTE* lpTypes,
int nCount);
Parameters
lpPoints
Her bir satır kesimi için POINT uç noktaları ve her Bzier spline için uç noktaları ve denetim noktalarını içeren bir veri yapıları dizisine işaret eder.
lpTypes
Dizideki her bir noktanın nasıl kullanıldığını belirten bir diziye lpPoints işaret eder. Değerler aşağıdakilerden biri olabilir:
PT_MOVETOBu noktanın ayrık bir şekil başlattığını belirtir. Bu nokta yeni geçerli konum olur.PT_LINETOBir çizginin geçerli konumdan bu noktaya doğru çekilip yeni geçerli konum haline geldiğini belirtir.PT_BEZIERTOBu noktanın Bzier spline için bir denetim noktası veya bitiş noktası olduğunu belirtir.
PT_BEZIERTO türleri her zaman üç kümede gerçekleşir. Geçerli konum, Bzier spline için başlangıç noktasını tanımlar. İlk iki PT_BEZIERTO nokta denetim noktaları, üçüncü PT_BEZIERTO nokta ise bitiş noktasıdır. Bitiş noktası yeni geçerli konum olur. Ardışık PT_BEZIERTO üç nokta yoksa bir hata sonucu oluşur.
Bir PT_LINETO veya PT_BEZIERTO türü, bit düzeyinde işleç kullanılarak veya ilgili noktanın şekildeki son nokta olduğunu ve şeklin kapatıldığını belirtmek için aşağıdaki sabitle birleştirilebilir:
PT_CLOSEFIGUREBu nokta için veyaPT_LINETOtürü tamamlandıktan sonra şeklinPT_BEZIERTOotomatik olarak kapatıldığını belirtir. Bu noktadan en sonPT_MOVETOnoktaya veyaMoveTonoktaya bir çizgi çizilir.Bu bayrak, bit düzeyinde
PT_LINETOişleci kullanılarak bir çizginin türüyle veya Bzier spline'ın bitiş noktası türüylePT_BEZIERTObirleştirilir. Geçerli konum, kapanış satırının bitiş noktasına ayarlanır.
nCount
Dizideki toplam nokta sayısını, dizideki lpPoints bayt lpTypes sayısıyla aynı şekilde belirtir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu işlev, CDC::MoveTove CDC::LineTo üye işlevlerine ardışık çağrılar yerine kopuk şekiller çizmek için CDC::PolyBezierTokullanılabilir. Çizgiler ve spline'lar geçerli kalem kullanılarak çizilir ve şekiller doldurulmuyor. Üye işlevi çağrılarak CDC::BeginPath başlatılan etkin bir yol varsa, PolyDraw yola ekler. dizisinde ve içinde lpPoints yer alan noktalar, her noktanın lpTypes bir CDC::MoveTo, CDC::LineToveya CDC::BezierTo işleminin parçası olup olmadığını gösterir. Rakamları kapatmak da mümkündür. Bu işlev geçerli konumu güncelleştirir.
Example
örneğine CDC::BeginPathbakın.
CDC::Polygon
Geçerli kalemi kullanarak çizgilere bağlı iki veya daha fazla noktadan (köşe) oluşan bir çokgen çizer.
BOOL Polygon(
LPPOINT lpPoints,
int nCount);
Parameters
lpPoints
Çokgenin köşelerini belirten bir nokta dizisine işaret eder. Dizideki her nokta bir POINT yapı veya CPoint nesnedir.
nCount
Dizideki köşe sayısını belirtir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Sistem, gerekirse son köşeden ilk köşeye bir çizgi çizerek çokgeni otomatik olarak kapatır.
Geçerli çokgen doldurma modu ve GetPolyFillMode üye işlevleri kullanılarak SetPolyFillMode alınabilir veya ayarlanabilir.
Example
void CDCView::DrawPolygon(CDC *pDC)
{
// find the client area
CRect rect;
GetClientRect(rect);
// draw with a thick blue pen
CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
CPen *pOldPen = pDC->SelectObject(&penBlue);
// and a solid red brush
CBrush brushRed(RGB(255, 0, 0));
CBrush *pOldBrush = pDC->SelectObject(&brushRed);
// Find the midpoints of the top, right, left, and bottom
// of the client area. They will be the vertices of our polygon.
CPoint pts[4];
pts[0].x = rect.left + rect.Width() / 2;
pts[0].y = rect.top;
pts[1].x = rect.right;
pts[1].y = rect.top + rect.Height() / 2;
pts[2].x = pts[0].x;
pts[2].y = rect.bottom;
pts[3].x = rect.left;
pts[3].y = pts[1].y;
// Calling Polygon() on that array will draw three lines
// between the points, as well as an additional line to
// close the shape--from the last point to the first point
// we specified.
pDC->Polygon(pts, 4);
// Put back the old objects.
pDC->SelectObject(pOldPen);
pDC->SelectObject(pOldBrush);
}
CDC::Polyline
tarafından lpPointsbelirtilen noktaları bağlayan bir çizgi kesim kümesi çizer.
BOOL Polyline(
LPPOINT lpPoints,
int nCount);
Parameters
lpPoints
Bağlanacak bir yapı veya POINT nesne dizisine CPoint işaret eder.
nCount
Dizideki nokta sayısını belirtir. Bu değer en az 2 olmalıdır.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Çizgiler, geçerli kalem kullanılarak ilk noktadan sonraki noktalara doğru çizilir. Üye işlevinin LineToPolyline aksine işlev geçerli konumu kullanmaz veya güncelleştirmez.
Daha fazla bilgi için bkz PolyLine . Windows SDK'sı.
CDC::PolylineTo
Bir veya daha fazla düz çizgi çizer.
BOOL PolylineTo(
const POINT* lpPoints,
int nCount);
Parameters
lpPoints
Çizginin POINT köşelerini içeren bir veri yapıları dizisine işaret eder.
nCount
Dizideki nokta sayısını belirtir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Geçerli kalem kullanılarak geçerli konumdan parametresi tarafından lpPoints belirtilen ilk noktaya bir çizgi çizilir. Her ek çizgi için işlev, önceki satırın bitiş noktasından tarafından lpPointsbelirtilen bir sonraki noktaya doğru çizer.
PolylineTo geçerli konumu son satırın bitiş noktasına taşır. Bu işlev tarafından çizilen çizgi kesimleri kapalı bir şekil oluşturuyorsa, şekil doldurulmuyor.
CDC::PolyPolygon
Geçerli çokgen doldurma modu kullanılarak doldurulan iki veya daha fazla çokgen oluşturur.
BOOL PolyPolygon(
LPPOINT lpPoints,
LPINT lpPolyCounts,
int nCount);
Parameters
lpPoints
Çokgenlerin POINT köşelerini tanımlayan bir yapı veya CPoint nesne dizisine işaret eder.
lpPolyCounts
Her biri dizideki çokgenlerden birindeki nokta sayısını belirten bir tamsayı dizisine lpPoints işaret eder.
nCount
Dizideki lpPolyCounts girdilerin sayısı. Bu sayı, çizilecek çokgen sayısını belirtir. Bu değer en az 2 olmalıdır.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Çokgenler kopuk veya örtüşüyor olabilir.
İşlev çağrısında PolyPolygon belirtilen her çokgen kapatılmalıdır. Üye işlevi tarafından Polygon oluşturulan çokgenlerin aksine, tarafından PolyPolygon oluşturulan çokgenler otomatik olarak kapatılamaz.
işlevi iki veya daha fazla çokgen oluşturur. Tek bir çokgen oluşturmak için bir uygulamanın üye işlevini kullanması Polygon gerekir.
Geçerli çokgen doldurma modu ve GetPolyFillMode üye işlevleri kullanılarak SetPolyFillMode alınabilir veya ayarlanabilir.
CDC::PolyPolyline
Birden çok bağlı çizgi kesimi serisi çizer.
BOOL PolyPolyline(
const POINT* lpPoints,
const DWORD* lpPolyPoints,
int nCount);
Parameters
lpPoints
Çoklu çizgilerin köşelerini içeren bir yapı dizisine işaret eder. Çoklu çizgiler art arda belirtilir.
lpPolyPoints
Karşılık gelen çokgen için dizideki lpPoints nokta sayısını belirten bir değişken dizisine işaret eder. Her girdi 2'den büyük veya buna eşit olmalıdır.
nCount
Dizideki toplam sayı lpPolyPoints sayısını belirtir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Çizgi kesimleri geçerli kalem kullanılarak çizilir. Segmentler tarafından oluşturulan şekiller doldurulmuyor. Geçerli konum bu işlev tarafından kullanılmaz veya güncelleştirilmez.
CDC::PtVisible
Verilen noktanın cihaz bağlamının kırpma bölgesi içinde olup olmadığını belirler.
virtual BOOL PtVisible(
int x,
int y) const;
BOOL PtVisible(POINT point) const;
Parameters
x
Noktanın mantıksal x koordinatını belirtir.
y
Noktanın mantıksal y koordinatını belirtir.
point
Mantıksal koordinatları iade etmek için noktayı belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
Belirtilen nokta kırpma bölgesi içindeyse sıfır olmayan; aksi takdirde 0.
CDC::QueryAbort
Bir yazdırma uygulaması için üye işlevi tarafından SetAbortProc yüklenen abort işlevini çağırır ve yazdırmanın sonlandırılıp sonlandırılmayacağını sorgular.
BOOL QueryAbort() const;
Return Value
Yazdırmanın devam etmesi gerekiyorsa veya iptal yordamı yoksa, dönüş değeri sıfır değildir. Yazdırma işinin sonlandırılması gerekiyorsa 0 olur. Dönüş değeri abort işlevi tarafından sağlanır.
CDC::RealizePalette
Geçerli mantıksal paletdeki girdileri sistem paletine eşler.
UINT RealizePalette();
Return Value
Mantıksal paletteki kaç girişin sistem paletindeki farklı girişlerle eşlendiğini gösterir. Bu, mantıksal paletin son gerçekleştirildiğinden bu yana sistem paletindeki değişiklikleri karşılamak için bu işlevin yeniden eşlendiği girdi sayısını temsil eder.
Remarks
Mantıksal renk paleti, yoğun renk kullanan uygulamalarla sistem arasında arabellek görevi görerek bir uygulamanın kendi görüntülenen renklerini engellemeden veya diğer pencereler tarafından görüntülenen renklerle gerektiği kadar renk kullanmasını sağlar.
Bir pencere giriş odağına sahip olduğunda ve çağırdığında RealizePaletteWindows, pencerenin ekranda aynı anda kullanılabilen maksimum sayıya kadar istenen tüm renkleri görüntülemesini sağlar. Windows ayrıca pencerenin paletinde bulunmayan renkleri kullanılabilir renklerle eşleştirerek görüntüler.
Buna ek olarak, Windows etkin olmayan pencereler tarafından istenen ve işlevi mümkün olduğunca yakın olarak çağıran renklerle kullanılabilir renklerle eşleşir. Bu, etkin olmayan pencerelerde görüntülenen renklerde istenmeyen değişiklikleri önemli ölçüde azaltır.
CDC::Rectangle
Geçerli kalemi kullanarak bir dikdörtgen çizer.
BOOL Rectangle(
int x1,
int y1,
int x2,
int y2);
BOOL Rectangle(LPCRECT lpRect);
Parameters
x1
Dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).
y1
Dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).
x2
Dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).
y2
Dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).
lpRect
Dikdörtgeni mantıksal birimler halinde belirtir. Bu parametrenin yapısına CRect bir RECT nesne veya işaretçi geçirebilirsiniz.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Dikdörtgenin iç kısmı geçerli fırça kullanılarak doldurulur.
Dikdörtgen, sağ ve alt koordinatlara kadar uzanır ancak bu koordinatları içermez. Bu, dikdörtgenin yüksekliğinin ve dikdörtgenin y2 - y1 genişliğinin olduğu x2 - x1anlamına gelir. Dikdörtgenin hem genişliği hem de yüksekliği 2 birimden büyük ve 32.767 birimden az olmalıdır.
Example
void CDCView::DrawRectangle(CDC *pDC)
{
// create and select a solid blue brush
CBrush brushBlue(RGB(0, 0, 255));
CBrush *pOldBrush = pDC->SelectObject(&brushBlue);
// create and select a thick, black pen
CPen penBlack;
penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
CPen *pOldPen = pDC->SelectObject(&penBlack);
// get our client rectangle
CRect rect;
GetClientRect(rect);
// shrink our rect 20 pixels in each direction
rect.DeflateRect(20, 20);
// draw a thick black rectangle filled with blue
pDC->Rectangle(rect);
// put back the old objects
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);
}
CDC::RectVisible
Verilen dikdörtgenin herhangi bir bölümünün görüntü bağlamının kırpma bölgesinde olup olmadığını belirler.
virtual BOOL RectVisible(LPCRECT lpRect) const;
Parameters
lpRect
Belirtilen dikdörtgenin mantıksal koordinatlarını içeren bir RECTCRect yapıya veya nesneye işaret eder.
Return Value
Verilen dikdörtgenin herhangi bir bölümü kırpma bölgesinde yer alırsa sıfır olmayan; aksi takdirde 0.
CDC::ReleaseAttribDC
NULL olarak ayarlamak m_hAttribDC için bu üye işlevini çağır.
virtual void ReleaseAttribDC();
Remarks
Bu, bir Detach oluşmasına neden olmaz. Nesneye CDC yalnızca çıkış cihazı bağlamı eklenir ve yalnızca çıkarılabilir.
CDC::ReleaseOutputDC
Üyeyi olarak ayarlamak için bu üye m_hDCişlevini çağırınNULL.
virtual void ReleaseOutputDC();
Remarks
Çıkış cihazı bağlamı nesneye CDC eklendiğinde bu üye işlevi çağrılamaz. Çıkış cihazı bağlamını Detach ayırmak için üye işlevini kullanın.
CDC::ResetDC
Nesnesi tarafından sarmalanan cihaz bağlamını güncelleştirmek için bu üye işlevini çağırın CDC .
BOOL ResetDC(const DEVMODE* lpDevMode);
Parameters
lpDevMode
Windows DEVMODE yapısının işaretçisi.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Cihaz bağlamı, Windows DEVMODE yapısında belirtilen bilgilerden güncelleştirilir. Bu üye işlevi yalnızca öznitelik cihaz bağlamını sıfırlar.
Bir pencere bir iletiyi işlediğinde ResetDCWM_DEVMODECHANGE uygulama genellikle üye işlevini kullanır. Belgeyi yazdırırken kağıt yönünü veya kağıt bölmelerini değiştirmek için de bu üye işlevini kullanabilirsiniz.
Sürücü adını, cihaz adını veya çıkış bağlantı noktasını değiştirmek için bu üye işlevini kullanamazsınız. Kullanıcı bağlantı noktası bağlantısını veya cihaz adını değiştirdiğinde, özgün cihaz bağlamını silmeniz ve yeni bilgilerle yeni bir cihaz bağlamı oluşturmanız gerekir.
Bu üye işlevini çağırmadan önce, cihaz bağlamında seçilen tüm nesnelerin (stok nesneleri dışında) seçili olduğundan emin olmanız gerekir.
CDC::RestoreDC
Cihaz bağlamını tarafından nSavedDCtanımlanan önceki duruma geri yükler.
virtual BOOL RestoreDC(int nSavedDC);
Parameters
nSavedDC
Geri yüklenecek cihaz bağlamını belirtir. Önceki SaveDC işlev çağrısı tarafından döndürülen bir değer olabilir. -1 ise nSavedDC , en son kaydedilen cihaz bağlamı geri yüklenir.
Return Value
Belirtilen bağlam geri yüklendiyse sıfır olmayan; aksi takdirde 0.
Remarks
RestoreDC üye işlevine yapılan önceki çağrılar tarafından oluşturulan bir yığında durum bilgilerini çıkararak cihaz bağlamını SaveDC geri yükler.
Yığın, birkaç cihaz bağlamı için durum bilgilerini içerebilir. tarafından nSavedDC belirtilen bağlam yığının en üstünde değilse, RestoreDC tarafından belirtilen nSavedDC cihaz bağlamı ile yığının üst kısmı arasındaki tüm durum bilgilerini siler. Silinen bilgiler kaybolur.
CDC::RoundRect
Geçerli kalemi kullanarak yuvarlatılmış köşeleri olan bir dikdörtgen çizer.
BOOL RoundRect(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3);
BOOL RoundRect(
LPCRECT lpRect,
POINT point);
Parameters
x1
Dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).
y1
Dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).
x2
Dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).
y2
Dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).
x3
Yuvarlatılmış köşeleri çizmek için kullanılan üç noktanın genişliğini belirtir (mantıksal birimlerde).
y3
Yuvarlatılmış köşeleri çizmek için kullanılan üç noktanın yüksekliğini belirtir (mantıksal birimlerde).
lpRect
Sınırlayıcı dikdörtgeni mantıksal birimler halinde belirtir. Bu parametrenin yapısına CRect bir RECT nesne veya işaretçi geçirebilirsiniz.
point
x koordinatı point , yuvarlatılmış köşeleri çizmek için üç noktanın genişliğini belirtir (mantıksal birimlerde). y koordinatı point , yuvarlatılmış köşeleri çizmek için üç noktanın yüksekliğini belirtir (mantıksal birimlerde). Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Dikdörtgenin iç kısmı geçerli fırça kullanılarak doldurulur.
Bu işlevin çizdiği şekil yukarı doğru uzanır ancak sağ ve alt koordinatları içermez. Bu, şeklin yüksekliğinin ve y2 - y1 şeklin genişliğinin olduğu x2 - x1anlamına gelir. Sınırlayıcı dikdörtgenin hem yüksekliği hem de genişliği 2 birimden büyük ve 32.767 birimden az olmalıdır.
Example
void CDCView::DrawRoundRect(CDC *pDC)
{
// create and select a solid blue brush
CBrush brushBlue(RGB(0, 0, 255));
CBrush *pOldBrush = pDC->SelectObject(&brushBlue);
// create and select a thick, black pen
CPen penBlack;
penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
CPen *pOldPen = pDC->SelectObject(&penBlack);
// get our client rectangle
CRect rect;
GetClientRect(rect);
// shrink our rect 20 pixels in each direction
rect.DeflateRect(20, 20);
// Draw a thick black rectangle filled with blue
// corners rounded at a 17-unit radius. Note that
// a radius of three or less is not noticeable because
// the pen is three units wide.
pDC->RoundRect(rect, CPoint(17, 17));
// put back the old objects
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);
}
CDC::SaveDC
Durum bilgilerini (kırpma bölgesi, seçili nesneler ve eşleme modu gibi) Windows tarafından tutulan bir bağlam yığınına kopyalayarak cihaz bağlamının geçerli durumunu kaydeder.
virtual int SaveDC();
Return Value
Kaydedilen cihaz bağlamını tanımlayan bir tamsayı. Hata oluşursa 0 olur. Bu dönüş değeri çağırarak RestoreDCcihaz bağlamını geri yüklemek için kullanılabilir.
Remarks
Kaydedilen cihaz bağlamı daha sonra kullanılarak RestoreDCgeri yüklenebilir.
SaveDC herhangi bir sayıda cihaz bağlamı durumunu kaydetmek için herhangi bir sayıda kullanılabilir.
CDC::ScaleViewportExt
Görünüm penceresi kapsamlarını geçerli değerlere göre değiştirir.
virtual CSize ScaleViewportExt(
int xNum,
int xDenom,
int yNum,
int yDenom);
Parameters
xNum
Geçerli x uzantısının çarpıldığı miktarı belirtir.
xDenom
Geçerli x uzantısını parametresinin değeriyle xNum çarpma sonucunun bölündüğü miktarı belirtir.
yNum
Geçerli y uzantısının çarpıldığı miktarı belirtir.
yDenom
Geçerli y uzantısını parametresinin değeriyle yNum çarpma sonucunun bölündüğü miktarı belirtir.
Return Value
Önceki görünüm penceresi kapsamları (cihaz birimlerinde) bir CSize nesne olarak.
Remarks
Formüller aşağıdaki gibi yazılır:
xNewVE = ( xOldVE * xNum ) / xDenom
yNewVE = ( yOldVE * yNum ) / yDenom
Yeni görünüm penceresi kapsamları, geçerli kapsamlar verilen payda ile çarpılarak ve sonra verilen paydaya bölünerek hesaplanır.
CDC::ScaleWindowExt
Geçerli değerlere göre pencere kapsamlarını değiştirir.
virtual CSize ScaleWindowExt(
int xNum,
int xDenom,
int yNum,
int yDenom);
Parameters
xNum
Geçerli x uzantısının çarpıldığı miktarı belirtir.
xDenom
Geçerli x uzantısını parametresinin değeriyle xNum çarpma sonucunun bölündüğü miktarı belirtir.
yNum
Geçerli y uzantısının çarpıldığı miktarı belirtir.
yDenom
Geçerli y uzantısını parametresinin değeriyle yNum çarpma sonucunun bölündüğü miktarı belirtir.
Return Value
Önceki pencere bir nesne olarak CSize kapsamları (mantıksal birimlerde).
Remarks
Formüller aşağıdaki gibi yazılır:
xNewWE = ( xOldWE * xNum ) / xDenom
yNewWE = ( yOldWE * yNum ) / yDenom
Yeni pencere kapsamları, geçerli kapsamlar verilen payda ile çarpılarak ve sonra verilen paydaya bölünerek hesaplanır.
CDC::ScrollDC
Bitlerden oluşan bir dikdörtgeni yatay ve dikey olarak kaydırıyor.
BOOL ScrollDC(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
CRgn* pRgnUpdate,
LPRECT lpRectUpdate);
Parameters
dx
Yatay kaydırma birimi sayısını belirtir.
dy
Dikey kaydırma birimi sayısını belirtir.
lpRectScroll
Kayan dikdörtgenin RECT koordinatlarını içeren yapıya veya CRect nesneye işaret eder.
lpRectClip
Kırpma dikdörtgeninin RECT koordinatlarını içeren yapıya veya CRect nesneye işaret eder. Bu dikdörtgen tarafından işaret edilen lpRectScrollözgün dikdörtgenden küçük olduğunda kaydırma yalnızca küçük dikdörtgende gerçekleşir.
pRgnUpdate
Kaydırma işlemi tarafından ortaya çıkarılan bölgeyi tanımlar.
ScrollDC işlevi bu bölgeyi tanımlar; dikdörtgen olması gerekmez.
lpRectUpdate
RECT Kaydırma güncelleştirme bölgesini sınırlayan dikdörtgenin koordinatlarını alan yapıya veya CRect nesneye işaret eder. Bu, yeniden boyama gerektiren en büyük dikdörtgen alandır. İşlev döndürdüğünde yapı veya nesnedeki değerler, verilen cihaz bağlamı için eşleme modundan bağımsız olarak istemci koordinatlarındadır.
Return Value
Kaydırma yürütülürse sıfır olmayan; aksi takdirde 0.
Remarks
ise lpRectUpdateNULL, Windows güncelleştirme dikdörtgenini hesaplamaz. Hem pRgnUpdate hem de lpRectUpdate iseNULL, Windows güncelleştirme bölgesini hesaplamaz.
pRgnUpdatedeğilseNULL, Windows kaydırma işlemi tarafından ortaya çıkarılan bölgeye yönelik geçerli bir işaretçi içerdiğini varsayar (üye işlevi tarafından ScrollDC tanımlanır). 'de lpRectUpdate döndürülen güncelleştirme bölgesi gerekirse'ye CWnd::InvalidateRgn geçirilebilir.
Bir uygulama, bir pencerenin istemci alanının tamamını kaydırmak gerektiğinde sınıfın ScrollWindow üye işlevini kullanmalıdırCWnd. Aksi takdirde kullanmalıdır ScrollDC.
CDC::SelectClipPath
Cihaz bağlamı için kırpma bölgesi olarak geçerli yolu seçer ve belirtilen modu kullanarak yeni bölgeyi mevcut kırpma bölgeleriyle birleştirir.
BOOL SelectClipPath(int nMode);
Parameters
nMode
Yolu kullanmanın yolunu belirtir. Aşağıdaki değerlere izin verilir:
RGN_ANDYeni kırpma bölgesi, geçerli kırpma bölgesinin kesişimini (çakışan alanlar) ve geçerli yolu içerir.RGN_COPYYeni kırpma bölgesi geçerli yoldur.RGN_DIFFYeni kırpma bölgesi geçerli kırpma bölgesinin alanlarını içerir ve geçerli yolun alanları dışlanır.RGN_ORYeni kırpma bölgesi, geçerli kırpma bölgesinin birleşimini (birleşik alanlar) ve geçerli yolu içerir.RGN_XORYeni kırpma bölgesi, geçerli kırpma bölgesinin ve geçerli yolun birleşimini içerir, ancak çakışan alanlar olmadan.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Tanımlanan cihaz bağlamı kapalı bir yol içermelidir.
CDC::SelectClipRgn
Cihaz bağlamı için geçerli kırpma bölgesi olarak verilen bölgeyi seçer.
int SelectClipRgn(CRgn* pRgn);
int SelectClipRgn(
CRgn* pRgn,
int nMode);
Parameters
pRgn
Seçilecek bölgeyi tanımlar.
Bu işlevin ilk sürümü için bu değer ise
NULL, istemci alanının tamamı seçilir ve çıkış yine pencereye kırpılır.Bu işlevin ikinci sürümü için bu tanıtıcı yalnızca mod belirtildiğinde
NULLolabilirRGN_COPY.
nMode
Gerçekleştirilecek işlemi belirtir. Aşağıdaki değerlerden biri olmalıdır:
RGN_ANDYeni kırpma bölgesi, geçerli kırpma bölgesinin çakışan alanlarını ve tarafındanpRgntanımlanan bölgeyi birleştirir.RGN_COPYYeni kırpma bölgesi, tarafındanpRgntanımlanan bölgenin bir kopyasıdır. Bu işlev, ilk sürümüyleSelectClipRgnaynıdır. tarafındanpRgntanımlanan bölge iseNULL, yeni kırpma bölgesi varsayılan kırpma bölgesi (null bölge) olur.RGN_DIFFYeni kırpma bölgesi, geçerli kırpma bölgesinin alanlarını tarafındanpRgntanımlanan bölgeden dışlanan alanlarla birleştirir.RGN_ORYeni kırpma bölgesi, geçerli kırpma bölgesini ve tarafındanpRgntanımlanan bölgeyi birleştirir.RGN_XORYeni kırpma bölgesi geçerli kırpma bölgesini ve tarafındanpRgntanımlanan bölgeyi birleştirir ancak çakışan alanları dışlar.
Return Value
Bölgenin türü. Aşağıdaki değerlerden herhangi biri olabilir:
COMPLEXREGIONYeni kırpma bölgesinin kenarlıkları çakışıyor.ERRORCihaz bağlamı veya bölgesi geçerli değil.NULLREGIONYeni kırpma bölgesi boş.SIMPLEREGIONYeni kırpma bölgesinde çakışan kenarlıklar yok.
Remarks
Seçili bölgenin yalnızca bir kopyası kullanılır. Bölge, herhangi bir sayıda diğer cihaz bağlamı için seçilebilir veya silinebilir.
işlevi, belirtilen bölge için koordinatların cihaz birimlerinde belirtildiğini varsayar. Bazı yazıcı cihazları, metin ölçümlerini ifade etmek için gereken duyarlığı korumak için metin çıkışını grafik çıkışından daha yüksek çözünürlükte destekler. Bu cihazlar, cihaz birimlerini daha yüksek çözünürlükte, yani metin birimlerinde bildirir. Daha sonra bu cihazlar, bildirilen birkaç cihaz biriminin yalnızca 1 grafik birimiyle eşlenebilmesi için grafiklerin koordinatlarını ölçeklendirir. İşlevi SelectClipRgn her zaman metin birimlerini kullanarak çağırmalısınız.
GDI'daki grafik nesnelerinin ölçeklendirmesini alması gereken uygulamalar, ölçeklendirme faktörünü GETSCALINGFACTOR belirlemek için yazıcı kaçışını kullanabilir. Bu ölçeklendirme faktörü kırpmayı etkiler. Grafikleri kırpmak için bir bölge kullanılıyorsa, GDI koordinatları ölçeklendirme faktörüne böler. Bölge metni kırpmak için kullanılıyorsa, GDI ölçeklendirme ayarlaması yapmaz. 1 ölçeklendirme faktörü koordinatların 2'ye bölünmesine neden olur; 2'lik bir ölçeklendirme faktörü koordinatların 4'e bölünmesine neden olur; ve benzeri.
CDC::SelectObject
Cihaz bağlamında bir nesne seçer.
CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);
CGdiObject* SelectObject(CGdiObject* pObject);
Parameters
pPen
Seçilecek nesnenin CPen işaretçisi.
pBrush
Seçilecek nesnenin CBrush işaretçisi.
pFont
Seçilecek nesnenin CFont işaretçisi.
pBitmap
Seçilecek nesnenin CBitmap işaretçisi.
pRgn
Seçilecek nesnenin CRgn işaretçisi.
pObject
Seçilecek nesnenin CGdiObject işaretçisi.
Return Value
Değiştirilen nesnenin işaretçisi. Bu, işlevin hangi sürümünün kullanıldığına bağlı olarakCGdiObject, öğesinden türetilen sınıflardan CPenbirinin nesnesine yönelik bir işaretçidir. Dönüş değeri, bir hata varsa değeridir NULL . Bu işlev geçici bir nesneye işaretçi döndürebilir. Bu geçici nesne yalnızca bir Windows iletisinin işlenmesi sırasında geçerlidir. Daha fazla bilgi için bkz. CGdiObject::FromHandle.
Bölge parametresini alan üye işlevinin sürümü, üye işleviyle SelectClipRgn aynı görevi gerçekleştirir. Dönüş değeri aşağıdakilerden biri olabilir:
COMPLEXREGIONYeni kırpma bölgesinin kenarlıkları çakışıyor.ERRORCihaz bağlamı veya bölgesi geçerli değil.NULLREGIONYeni kırpma bölgesi boş.SIMPLEREGIONYeni kırpma bölgesinde çakışan kenarlıklar yok.
Remarks
Sınıfı CDC kalemler, fırçalar, yazı tipleri, bit eşlemler ve bölgeler dahil olmak üzere belirli GDI nesneleri için özelleştirilmiş beş sürüm sağlar. Yeni seçilen nesne, aynı türdeki önceki nesnenin yerini alır. Örneğin, bir pObject nesneye işaret eden genel sürümdense SelectObjectCPen, işlevi geçerli kalemi tarafından pObjectbelirtilen kalemle değiştirir.
Uygulama bir bit eşlemi yalnızca bellek cihazı bağlamlarına ve aynı anda yalnızca bir bellek cihazı bağlamı olarak seçebilir. Bit eşlem biçiminin tek renkli veya cihaz bağlamıyla uyumlu olması gerekir; değilse bir SelectObject hata döndürür.
Windows 3.1 ve sonraki sürümler için işlev, SelectObject meta dosyada kullanılsa da kullanılmasa da aynı değeri döndürür. Windows'un önceki sürümlerinde başarı SelectObject için sıfır olmayan bir değer ve meta dosyada kullanıldığında hata için 0 döndürdü.
CDC::SelectPalette
tarafından pPalette cihaz bağlamının seçili palet nesnesi olarak belirtilen mantıksal paleti seçer.
CPalette* SelectPalette(
CPalette* pPalette,
BOOL bForceBackground);
Parameters
pPalette
Seçilecek mantıksal paleti tanımlar. Bu palet, üye işleviyle CPaletteCreatePaletteönceden oluşturulmuş olmalıdır.
bForceBackground
Mantıksal paletin arka plan paleti olmaya zorlanıp zorlanmayacağını belirtir. Sıfır olmayan bir değerse bForceBackground , pencerenin giriş odağını kullanıp kullanmadığına bakılmaksızın, seçilen palet her zaman bir arka plan paletidir. 0 ise ve cihaz bağlamı bir pencereye bağlıysa bForceBackground , pencere giriş odağına sahip olduğunda mantıksal palet bir ön plan paletidir.
Return Value
Mantıksal paleti tanımlayan bir CPalette nesnenin işaretçisi, tarafından pPalettebelirtilen paletle değiştirildi. Hata NULL olması gerekir.
Remarks
Yeni palet, cihaz bağlamında görüntülenen renkleri denetlemek için GDI tarafından kullanılan palet nesnesi olur ve önceki paletin yerini alır.
Bir uygulama birden fazla cihaz bağlamında mantıksal palet seçebilir. Ancak mantıksal palette yapılan değişiklikler, seçildiği tüm cihaz bağlamlarını etkiler. Bir uygulama birden fazla cihaz bağlamı için bir palet seçerse, cihaz bağlamlarının tümü aynı fiziksel cihaza ait olmalıdır.
CDC::SelectStockObject
Önceden tanımlanmış stok kalemlerinden, fırçalardan veya yazı tiplerinden birine karşılık gelen bir CGdiObject nesne seçer.
virtual CGdiObject* SelectStockObject(int nIndex);
Parameters
nIndex
İstenen stok nesnesi türünü belirtir. Aşağıdaki değerlerden biri olabilir:
BLACK_BRUSHSiyah fırça.DKGRAY_BRUSHKoyu gri fırça.GRAY_BRUSHGri fırça.HOLLOW_BRUSHBoş fırça.LTGRAY_BRUSHAçık gri fırça.NULL_BRUSHBoş fırça.WHITE_BRUSHBeyaz fırça.BLACK_PENSiyah kalem.NULL_PENBoş kalem.WHITE_PENBeyaz kalem.ANSI_FIXED_FONTANSI sabit sistem yazı tipi.ANSI_VAR_FONTANSI değişken sistem yazı tipi.DEVICE_DEFAULT_FONTCihaza bağımlı yazı tipi.OEM_FIXED_FONTOEM'e bağımlı sabit yazı tipi.SYSTEM_FONTSistem yazı tipi. Varsayılan olarak, Windows menüleri, iletişim kutusu denetimlerini ve diğer metinleri çizmek için sistem yazı tipini kullanır. Ancak, iletişim kutuları ve pencereler tarafından kullanılan yazı tipini elde etmek için güvenmemekSYSTEM_FONTen iyisidir. Bunun yerine, geçerli yazı tipini almak için parametresiyleSystemParametersInfoişlevini kullanınSPI_GETNONCLIENTMETRICS.SystemParametersInfogeçerli temayı dikkate alır ve resim yazıları, menüler ve ileti iletişim kutuları için yazı tipi bilgileri sağlar.SYSTEM_FIXED_FONTWindows'ta 3.0 sürümünden önce kullanılan sabit genişlikli sistem yazı tipi. Bu nesne, Windows'un önceki sürümleriyle uyumluluk için kullanılabilir.DEFAULT_PALETTEVarsayılan renk paleti. Bu palet, sistem paletindeki 20 statik renkten oluşur.
Return Value
İşlev başarılı olursa değiştirilen nesnenin işaretçisi CGdiObject . İşaret edilen gerçek nesne bir CPen, CBrushveya CFont nesnesidir. Çağrı başarısız olursa, dönüş değeri NULL olur.
CDC::SetAbortProc
Yazdırma işi için iptal yordamını yükler.
int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));
Parameters
lpfn
Abort yordamı olarak yüklenecek abort işlevinin işaretçisi. Geri çağırma işlevi hakkında daha fazla bilgi için bkz . için CDC::SetAbortProcGeri Çağırma İşlevi.
Return Value
İşlevin SetAbortProc sonucunu belirtir. Aşağıdaki değerlerden bazıları diğerlerinden daha olasıdır, ancak tümü mümkündür.
SP_ERRORGenel hata.SP_OUTOFDISKŞu anda biriktirme için yeterli disk alanı yok ve artık kullanılabilir alan olmayacak.SP_OUTOFMEMORYBiriktirme için yeterli bellek yok.SP_USERABORTKullanıcı, yazdırma yöneticisi aracılığıyla işi sona erdirdi.
Remarks
Bir uygulama yazdırma işinin biriktirme sırasında iptal edilmesine izin verecekse, yazdırma işi üye işleviyle StartDoc başlatılmadan önce iptal işlevini ayarlamalıdır. Yazdırma Yöneticisi, uygulamanın yazdırma işini iptal etmesine veya yetersiz disk alanı koşullarını işlemesine izin vermek için biriktirme sırasında abort işlevini çağırır. Hiçbir durdurma işlevi ayarlanmadıysa, yazdırma işi biriktirilecek yeterli disk alanı yoksa başarısız olur.
Microsoft Visual C++ özellikleri, öğesine geçirilen geri çağırma işlevinin oluşturulmasını SetAbortProcbasitleştirir. Üye işlevine EnumObjects geçirilen adres, çağrı kuralıyla ve ile __declspec(dllexport) dışarı aktarılan bir işlevin işaretçisidir __stdcall .
Ayrıca uygulamanızın modül tanımı dosyasındaki bir EXPORTS deyimde işlev adını dışarı aktarmanız gerekmez. Bunun yerine işlev değiştiricisini EXPORT aşağıdaki gibi kullanabilirsiniz:
BOOL CALLBACK EXPORT AFunction( HDC, int );
derleyicinin diğer ad kullanmadan ada göre dışarı aktarma için uygun dışarı aktarma kaydını yaymasına neden olur. Bu, çoğu ihtiyaç için işe yarar. İşlevi sıralı olarak dışarı aktarma veya dışarı aktarmaya diğer ad ekleme gibi bazı özel durumlarda, modül tanımı dosyasında bir deyimi kullanmanız EXPORTS gerekir.
Geri çağırma kayıt arabirimleri artık tür açısından güvenlidir (belirli bir geri çağırma için doğru işlev türünü gösteren bir işlev işaretçisi geçirmeniz gerekir).
Geri çağırma sınırları boyunca özel durumlar oluşturulamadığından, Windows'a dönmeden önce tüm geri çağırma işlevlerinin Microsoft Foundation özel durumlarını yakalaması gerekir. Özel durumlar hakkında daha fazla bilgi için Özel durumlar makalesine bakın.
CDC::SetArcDirection
Yay ve dikdörtgen işlevleri için kullanılacak çizim yönünü ayarlar.
int SetArcDirection(int nArcDirection);
Parameters
nArcDirection
Yeni yay yönünü belirtir. Bu parametre aşağıdaki değerlerden biri olabilir:
AD_COUNTERCLOCKWISESaat yönünün tersine çizilmiş şekiller.AD_CLOCKWISEŞekiller saat yönünde çizilir.
Return Value
Başarılı olursa eski yay yönünü belirtir; aksi takdirde 0.
Remarks
Varsayılan yön saat yönünün tersinedir. işlevi, SetArcDirection aşağıdaki işlevlerin çizdiği yönü belirtir:
| Arc | Pie |
|---|---|
ArcTo |
Rectangle |
Chord |
RoundRect |
Ellipse |
CDC::SetAttribDC
Öznitelik cihaz bağlamını ayarlamak için bu işlevi çağırın: m_hAttribDC.
virtual void SetAttribDC(HDC hDC);
Parameters
hDC
Windows cihaz bağlamı.
Remarks
Bu üye işlevi, cihaz bağlamını nesneye CDC eklemez. Nesneye yalnızca çıkış cihazı bağlamı eklenir CDC .
CDC::SetBkColor
Geçerli arka plan rengini belirtilen renge ayarlar.
virtual COLORREF SetBkColor(COLORREF crColor);
Parameters
crColor
Yeni arka plan rengini belirtir.
Return Value
RGB renk değeri olarak önceki arka plan rengi. Hata oluşursa, dönüş değeri 0x80000000.
Remarks
Arka plan modu ise OPAQUE, sistem stil çizgilerindeki boşlukları, fırçalardaki taranmış çizgiler arasındaki boşlukları ve karakter hücrelerindeki arka planı doldurmak için arka plan rengini kullanır. Sistem, bit eşlemleri renk ve tek renkli cihaz bağlamları arasında dönüştürürken arka plan rengini de kullanır.
Cihaz belirtilen rengi görüntüleyemiyorsa, sistem arka plan rengini en yakın fiziksel renge ayarlar.
CDC::SetBkMode
Arka plan modunu ayarlar.
int SetBkMode(int nBkMode);
Parameters
nBkMode
Ayarlanacak modu belirtir. Bu parametre aşağıdaki değerlerden biri olabilir:
OPAQUEMetin, taranmış fırça veya kalem çizilmeden önce arka plan geçerli arka plan rengiyle doldurulur. Bu varsayılan arka plan modudur.TRANSPARENTÇizimden önce arka plan değiştirilmez.
Return Value
Önceki arka plan modu.
Remarks
Arka plan modu, sistemin metin çizmeden önce çizim yüzeyindeki mevcut arka plan renklerini mi, taranmış fırçaları mı yoksa düz çizgi olmayan kalem stilini mi kaldırdığını tanımlar.
Example
örneğine CWnd::OnCtlColorbakın.
CDC::SetBoundsRect
Belirtilen cihaz bağlamı için sınırlayıcı dikdörtgen bilgilerinin birikmesi denetler.
UINT SetBoundsRect(
LPCRECT lpRectBounds,
UINT flags);
Parameters
lpRectBounds
Sınırlayıcı dikdörtgeni ayarlamak için kullanılan bir RECT yapıyı veya CRect nesneyi gösterir. Dikdörtgen boyutları mantıksal koordinatlarda verilir. Bu parametre olabilir NULL.
flags
Yeni dikdörtgenin birikmiş dikdörtgenle nasıl birleştirileceğini belirtir. Bu parametre aşağıdaki değerlerin bir bileşimi olabilir:
DCB_ACCUMULATEtarafındanlpRectBoundsbelirtilen dikdörtgeni sınırlayıcı dikdörtgene ekleyin (dikdörtgen birleşim işlemi kullanarak).DCB_DISABLESınır birikimini kapatın.DCB_ENABLESınır birikimini açın. (Sınır birikimi için varsayılan ayar devre dışıdır.)
Return Value
İşlev başarılı olursa sınırlayıcı dikdörtgenin geçerli durumu. gibi flags, dönüş değeri değerlerin DCB_ bir bileşimi olabilir:
DCB_ACCUMULATESınırlayıcı dikdörtgen boş değil. Bu değer her zaman ayarlanır.DCB_DISABLESınır birikimi kapalı.DCB_ENABLESınır birikimi açık.
Remarks
Windows, tüm çizim işlemleri için sınırlayıcı bir dikdörtgen bulundurabilir. Bu dikdörtgen uygulama tarafından sorgulanabilir ve sıfırlanabilir. Çizim sınırları bit eşlem önbelleklerini geçersiz hale getirmede yararlıdır.
CDC::SetBrushOrg
GDI'nin uygulamanın cihaz bağlamında seçtiği bir sonraki fırçaya atayacağı kaynağı belirtir.
CPoint SetBrushOrg(
int x,
int y);
CPoint SetBrushOrg(POINT point);
Parameters
x
Yeni kaynağın x koordinatını (cihaz birimlerinde) belirtir. Bu değer 0-7 aralığında olmalıdır.
y
Yeni kaynağın y koordinatını (cihaz birimlerinde) belirtir. Bu değer 0-7 aralığında olmalıdır.
point
Yeni kaynağın x ve y koordinatlarını belirtir. Her değer 0-7 aralığında olmalıdır. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
Cihaz birimlerindeki fırçanın önceki çıkış noktası.
Remarks
Fırça başlangıcı için varsayılan koordinatlar şunlardır (0, 0). Fırçanın kaynağını değiştirmek için UnrealizeObject nesnenin işlevini çağırınCBrush, öğesini çağırın SetBrushOrgve ardından cihaz bağlamında fırçayı seçmek için üye işlevini çağırınSelectObject.
Stok SetBrushOrg nesneleriyle kullanmayınCBrush.
CDC::SetColorAdjustment
Belirtilen değerleri kullanarak cihaz bağlamı için renk ayarlama değerlerini ayarlar.
BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);
Parameters
lpColorAdjust
Renk ayarlama değerlerini içeren bir COLORADJUSTMENT veri yapısına işaret eder.
Return Value
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Remarks
Renk ayarlama değerleri, mod ayarlandığında üye işlevine CDC::StretchBlt yapılan çağrılar için kaynak bit eşleminin HALFTONE giriş rengini ayarlamak için kullanılır.
CDC::SetDCBrushColor
Geçerli cihaz bağlamı (DC) fırça rengini belirtilen renk değerine ayarlar.
COLORREF SetDCBrushColor(COLORREF crColor);
Parameters
crColor
Yeni fırça rengini belirtir.
Return Value
İşlev başarılı olursa, dönüş değeri önceki DC fırça rengini bir COLORREF değer olarak belirtir.
İşlev başarısız olursa, dönüş değeri olur CLR_INVALID.
Remarks
Bu yöntem, Windows SDK'da açıklandığı gibi işlevinin SetDCBrushColorişlevselliğine öykünmektedir.
CDC::SetDCPenColor
Geçerli cihaz bağlamı (DC) kalem rengini belirtilen renk değerine ayarlar.
COLORREF SetDCPenColor(COLORREF crColor);
Parameters
crColor
Yeni kalem rengini belirtir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu üye işlevi, Windows SDK'da açıklandığı gibi Win32 işlevini SetDCPenColorkullanır.
CDC::SetGraphicsMode
Belirtilen cihaz bağlamı için grafik modunu ayarlar.
int SetGraphicsMode(int iMode);
Parameters
iMode
Grafik modunu belirtir. Bu parametrenin alabildiği değerlerin listesi için bkz SetGraphicsMode. .
Return Value
Başarılı olduğunda eski grafik modunu döndürür.
Hata durumunda 0 döndürür. Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.
Remarks
Bu yöntem, Windows GDI işlevini SetGraphicsModesarmalar.
CDC::SetLayout
Arapça ve İbranice gibi kültürler için standart düzen olan cihaz bağlamının metin ve grafik düzenini sağdan sola değiştirmek için bu üye işlevini çağırın.
DWORD SetLayout(DWORD dwLayout);
Parameters
dwLayout
Cihaz bağlam düzeni ve bit eşlem denetimi bayrakları. Aşağıdaki değerlerin bir bileşimi olabilir.
| Value | Meaning |
|---|---|
LAYOUT_BITMAPORIENTATIONPRESERVED |
ve CDC::BitBltçağrıları için herhangi bir yansımayı CDC::StretchBlt devre dışı bırakır. |
LAYOUT_RTL |
Varsayılan yatay düzeni sağdan sola olacak şekilde ayarlar. |
LAYOUT_LTR |
Varsayılan düzeni soldan sağa olacak şekilde ayarlar. |
Return Value
Başarılı olursa, cihaz bağlamının önceki düzeni.
Başarısız olursa, GDI_ERROR. Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.
Remarks
Normalde pencere çağırmazsınız SetLayout . Bunun yerine, gibi genişletilmiş pencere stilleriniWS_EX_RTLREADINGbir penceredeki sağdan sola düzeni denetleyebilirsiniz. Yazıcı veya meta dosyası gibi bir cihaz bağlamı bu düzeni devralamaz. Sağdan sola düzen için cihaz bağlamını ayarlamanın tek yolu çağrısı SetLayoutyapmaktır.
çağrısı SetLayout(LAYOUT_RTL)yaparsanız, SetLayout eşleme modunu otomatik olarak olarak MM_ISOTROPIColarak değiştirir. Sonuç olarak, yerine sonraki bir çağrısı GetMapMode döndürülecektir MM_ISOTROPICMM_TEXT.
Birçok bit eşlem gibi bazı durumlarda, soldan sağa düzeni korumak isteyebilirsiniz. Böyle durumlarda, veya öğesini çağırarak BitBlt görüntüyü işleyin, ardından için StretchBlt bit eşlem denetim bayrağını olarak dwLayoutayarlayın.LAYOUT_BITMAPORIENTATIONPRESERVED
Düzeni bayrakla LAYOUT_RTL değiştirdiğinizde, normalde sağ veya sol belirten bayraklar ters çevrilir. Karışıklığı önlemek için standart bayraklar için alternatif adlar tanımlamak isteyebilirsiniz. Önerilen alternatif bayrak adlarının listesi için Bkz SetLayout . Windows SDK'sında.
CDC::SetMapMode
Eşleme modunu ayarlar.
virtual int SetMapMode(int nMapMode);
Parameters
nMapMode
Yeni eşleme modunu belirtir. Aşağıdaki değerlerden herhangi biri olabilir:
MM_ANISOTROPICMantıksal birimler rastgele ölçeklendirilmiş eksenlere sahip rastgele birimlere dönüştürülür. Eşleme modunun olarakMM_ANISOTROPICayarlanması geçerli pencere veya görünüm penceresi ayarlarını değiştirmez. Birimleri, yönlendirmeyi ve ölçeklendirmeyi değiştirmek için veSetWindowExtüye işlevlerini çağırınSetViewportExt.MM_HIENGLISHHer mantıksal birim 0,001 inç'e dönüştürülür. Pozitif x sağ taraftadır; pozitif y çalışır durumda.MM_HIMETRICHer mantıksal birim 0,01 milimetreye dönüştürülür. Pozitif x sağ taraftadır; pozitif y çalışır durumda.MM_ISOTROPICMantıksal birimler eşit ölçeklenmiş eksenlere sahip rastgele birimlere dönüştürülür; yani x ekseni boyunca 1 birim, y ekseni boyunca 1 birime eşittir.SetWindowExtİstenen birimleri ve eksenlerin yönlendirmesini belirtmek için veSetViewportExtüye işlevlerini kullanın. GDI, x ve y birimlerinin aynı boyutta kalmasını sağlamak için gerekli ayarlamaları yapar.MM_LOENGLISHHer mantıksal birim 0,01 inç'e dönüştürülür. Pozitif x sağ taraftadır; pozitif y çalışır durumda.MM_LOMETRICHer mantıksal birim 0,1 milimetreye dönüştürülür. Pozitif x sağ taraftadır; pozitif y çalışır durumda.MM_TEXTHer mantıksal birim 1 cihaz pikseline dönüştürülür. Pozitif x sağ taraftadır; Pozitif y düştü.MM_TWIPSHer mantıksal birim bir noktanın 1/20'sine dönüştürülür. (Nokta 72/1/1440 inç olduğundan, bir twip 1/1440 inçtir.) Pozitif x sağ taraftadır; pozitif y çalışır durumda.
Return Value
Önceki eşleme modu.
Remarks
Eşleme modu, mantıksal birimleri cihaz birimlerine dönüştürmek için kullanılan ölçü birimini tanımlar; ayrıca cihazın x ve y eksenlerinin yönlendirmesini de tanımlar. GDI, mantıksal koordinatları uygun cihaz koordinatlarına dönüştürmek için eşleme modunu kullanır. Mod MM_TEXT , uygulamaların 1 birimin 1 piksele eşit olduğu cihaz piksellerinde çalışmasına olanak tanır. Pikselin fiziksel boyutu cihazdan cihaza değişir.
MM_HIENGLISH, MM_HIMETRIC, , MM_LOENGLISH, MM_LOMETRICve MM_TWIPS modları, fiziksel olarak anlamlı birimlerde (inç veya milimetre gibi) çizmesi gereken uygulamalar için kullanışlıdır. Mod MM_ISOTROPIC 1:1 en boy oranını sağlar. Bu, görüntünün tam şeklinin korunması önemli olduğunda kullanışlıdır. Mod, MM_ANISOTROPIC x ve y koordinatlarının bağımsız olarak ayarlanmasını sağlar.
Note
DC'yi (cihaz bağlamı) sağdan sola düzen olarak değiştirmek için çağırırsanız SetLayout , SetLayout eşleme modunu otomatik olarak olarak olarak MM_ISOTROPICdeğiştirir.
Example
örneğine CView::OnPrepareDCbakın.
CDC::SetMapperFlags
Mantıksal yazı tipini fiziksel yazı tipine dönüştürdüğünde yazı tipi eşleyicisi tarafından kullanılan yöntemi değiştirir.
DWORD SetMapperFlags(DWORD dwFlag);
Parameters
dwFlag
Yazı tipi eşleyicisinin bir yazı tipinin en boy yüksekliğiyle ve genişliğiyle cihazla eşleştirmeye çalışıp çalışmayacağını belirtir. Bu değer olduğunda ASPECT_FILTERING, eşleyici yalnızca x ve y yönü belirtilen cihazınkilerle tam olarak eşleşen yazı tiplerini seçer.
Return Value
Font-mapper bayrağının önceki değeri.
Remarks
Bir uygulama, yazı tipi eşleyicisinin yalnızca belirtilen cihazın en boy oranıyla tam olarak eşleşen bir fiziksel yazı tipi seçmeye çalışmasına neden olmak için kullanabilir SetMapperFlags .
Yalnızca raster yazı tipleri kullanan bir uygulama, yazı tipi eşleyicisi tarafından seçilen yazı tipinin belirtilen cihazda çekici ve okunabilir olduğundan emin olmak için işlevini kullanabilir SetMapperFlags . Ölçeklenebilir (TrueType) yazı tipleri kullanan uygulamalar genellikle kullanmaz SetMapperFlags.
Fiziksel yazı tipinin mantıksal yazı tipindeki belirtim ile eşleşen bir en boy oranı yoksa, GDI yeni bir en boy oranı seçer ve bu yeni en boy oranıyla eşleşen bir yazı tipi seçer.
CDC::SetMiterLimit
Cihaz bağlamı için sicim birleşimlerinin uzunluğu sınırını ayarlar.
BOOL SetMiterLimit(float fMiterLimit);
Parameters
fMiterLimit
Cihaz bağlamı için yeni sicim sınırını belirtir.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Sici uzunluğu, birleştirmenin içindeki çizgi duvarlarının kesişiminden, birleştirmenin dışındaki çizgi duvarlarının kesişimine olan uzaklık olarak tanımlanır. Sönücü sınırı, sicim uzunluğunun çizgi genişliğine izin verilen en yüksek oranıdır. Varsayılan sicim sınırı 10,0'dır.
CDC::SetOutputDC
Çıkış cihazı bağlamını ayarlamak için bu üye işlevini çağırın. m_hDC
virtual void SetOutputDC(HDC hDC);
Parameters
hDC
Windows cihaz bağlamı.
Remarks
Bu üye işlevi yalnızca nesneye CDC bir cihaz bağlamı eklenmediğinde çağrılabilir. Bu üye işlevi cihaz bağlamını nesneye m_hDC ayarlar CDC ancak eklemez.
CDC::SetPixel
Belirtilen noktadaki pikseli, tarafından crColorbelirtilen rengin en yakın yaklaşık değerine ayarlar.
COLORREF SetPixel(
int x,
int y,
COLORREF crColor);
COLORREF SetPixel(
POINT point,
COLORREF crColor);
Parameters
x
Ayarlanacak noktanın mantıksal x koordinatını belirtir.
y
Ayarlanacak noktanın mantıksal y koordinatını belirtir.
crColor
Noktayı COLORREF boyamak için kullanılan rengi belirten RGB değeri. Bu değerin açıklaması için Bkz COLORREF . Windows SDK'sı.
point
Ayarlanacak noktanın mantıksal x ve y koordinatlarını belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
Noktanın boyanmış olduğu renk için rgb değeri. Bu değer, bu rengin yaklaşık olarak kullanılması durumunda belirtilen crColor değerden farklı olabilir. İşlev başarısız olursa (nokta kırpma bölgesinin dışındaysa), dönüş değeri -1 olur.
Remarks
Nokta kırpma bölgesinde olmalıdır. Nokta kırpma bölgesinde değilse işlev hiçbir şey yapmaz.
Tüm cihazlar işlevi desteklemez SetPixel . Bir cihazın destekleyip desteklemediğini SetPixelbelirlemek içinGetDeviceCaps, üye işlevini dizinle çağırın RASTERCAPSRC_BITBLT ve bayrağının dönüş değerini denetleyin.
CDC::SetPixelV
Belirtilen koordinatlarda pikseli, belirtilen rengin en yakın yaklaşık değerine ayarlar.
BOOL SetPixelV(
int x,
int y,
COLORREF crColor);
BOOL SetPixelV(
POINT point,
COLORREF crColor);
Parameters
x
Ayarlanacak noktanın mantıksal birimlerinde x koordinatını belirtir.
y
Ayarlanacak noktanın y koordinatını mantıksal birimler halinde belirtir.
crColor
Noktayı boyamak için kullanılacak rengi belirtir.
point
Ayarlanacak noktanın mantıksal x ve y koordinatlarını belirtir. Bu parametre için bir POINT veri yapısı veya CPoint nesnesi geçirebilirsiniz.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Nokta hem kırpma bölgesinde hem de cihaz yüzeyinin görünür bölümünde olmalıdır. Tüm cihazlar üye işlevini desteklemez. Daha fazla bilgi için bkz RC_BITBLT . üye işlevindeki CDC::GetDeviceCaps yetenek.
SetPixelV daha hızlıdır SetPixel çünkü boyanan noktanın renk değerini döndürmesi gerekmez.
CDC::SetPolyFillMode
Çokgen doldurma modunu ayarlar.
int SetPolyFillMode(int nPolyFillMode);
Parameters
nPolyFillMode
Yeni doldurma modunu belirtir. Bu değer veya ALTERNATEWINDINGolabilir. Windows'ta ayarlanan varsayılan mod şeklindedir ALTERNATE.
Return Value
Başarılı olursa önceki doldurma modu; aksi takdirde 0.
Remarks
Çokgen doldurma modu olduğunda ALTERNATE, sistem her tarama satırında tek numaralı ve çift numaralı çokgen kenarlar arasındaki alanı doldurur. Diğer bir ifadeyle, sistem birinci ve ikinci taraf arasındaki, üçüncü ve dördüncü taraf arasındaki alanı doldurur ve bu şekilde devam eder. Bu varsayılan moddur.
Çokgen doldurma modu olduğunda WINDING, sistem bir alanın doldurulup doldurulmayacağını belirlemek için bir şeklin çizildiği yönü kullanır. Çokgendeki her çizgi kesimi saat yönünde veya saat yönünün tersine çizilir. Kapalı bir alandan şeklin dışına doğru çizilen bir sanal çizgi saat yönündeki bir çizgi kesiminden geçtiğinde, bir sayı artırılır. Satır saat yönünün tersine bir çizgi kesiminden geçtiğinde sayı azalmış olur. Çizgi şeklin dışına ulaştığında sayı sıfır değilse alan doldurulur.
CDC::SetROP2
Geçerli çizim modunu ayarlar.
int SetROP2(int nDrawMode);
Parameters
nDrawMode
Yeni çizim modunu belirtir. Aşağıdaki değerlerden herhangi biri olabilir:
R2_BLACKPiksel her zaman siyahtır.R2_WHITEPiksel her zaman beyazdır.R2_NOPPiksel değişmeden kalır.R2_NOTPiksel, ekran renginin tersidir.R2_COPYPENPiksel kalem rengidir.R2_NOTCOPYPENPiksel, kalem renginin tersidir.R2_MERGEPENNOTPiksel, kalem renginin ve ekran renginin tersini (son piksel = (~ekran pikseli)|kalemin birleşimidir.R2_MASKPENNOTPiksel, hem kalem hem de ekranın tersi (son piksel = (~ekran pikseli)&kalemi için ortak olan renklerin bir bileşimidir.R2_MERGENOTPENPiksel, ekran renginin ve kalem renginin tersini (son piksel = (~kalem)|ekran pikselinin birleşimidir.R2_MASKNOTPENPiksel, hem ekranda hem de kalemin tersinde ortak olan renklerin bir bileşimidir (son piksel = (~kalem)&ekran pikseli).R2_MERGEPENPiksel, kalem rengi ile ekran renginin (son piksel = kalem|ekranı pikseli) birleşimidir.R2_NOTMERGEPENPiksel, renginR2_MERGEPENtersidir (son piksel =~(kalem|ekranı pikseli)).R2_MASKPENPiksel, hem kalem hem de ekran için ortak olan renklerin bir bileşimidir (son piksel = kalem&ekranı pikseli).R2_NOTMASKPENPiksel, renginR2_MASKPENtersidir (son piksel =~(kalem&ekranı pikseli)).R2_XORPENPiksel, kalemdeki veya ekrandaki renklerin birleşimidir, ancak her ikisinde de (son piksel = kalem^ekranı pikseli) değildir.R2_NOTXORPENPiksel, renginR2_XORPENtersidir (son piksel =~(kalem^ekranı pikseli)).
Return Value
Önceki çizim modu.
Windows SDK'sında verilen değerlerden herhangi biri olabilir.
Remarks
Çizim modu, kalemin renklerinin ve doldurulmuş nesnelerin iç kısmının zaten ekran yüzeyindeki renkle nasıl birleştirilme şeklini belirtir.
Çizim modu yalnızca raster cihazlar içindir; vektör cihazları için geçerli değildir. Çizim modları, , ve (özel&) ikili işleçlerini |^ve | birli işlemi ~kullanarak iki değişkenin tüm olası Boole birleşimlerini temsil eden ikili raster-işlem kodlarıdır.
CDC::SetStretchBltMode
Üye işlevi için StretchBlt bit eşlem genişletme modunu ayarlar.
int SetStretchBltMode(int nStretchMode);
Parameters
nStretchMode
Esnetme modunu belirtir. Aşağıdaki değerlerden herhangi biri olabilir:
| Value | Description |
|---|---|
BLACKONWHITE |
Ortadan kaldırılan ve var olan piksellerin renk değerlerini kullanarak boole & işlemi gerçekleştirir. Bit eşlem tek renkli bir bit eşlemse, bu mod siyah pikselleri beyaz pikseller pahasına korur. |
COLORONCOLOR |
Pikselleri siler. Bu mod, bilgilerini korumaya çalışmadan ortadan kaldırılan tüm piksel satırlarını siler. |
HALFTONE |
Kaynak dikdörtgendeki pikselleri hedef dikdörtgendeki piksel bloklarına eşler. Piksellerin hedef bloğu üzerindeki ortalama renk, kaynak piksellerin rengine yaklaşık olarak gösterilir. |
Esnetme modunu ayarladıktan HALFTONE sonra, fırça çıkış noktasını ayarlamak için uygulamanın Win32 işlevini SetBrushOrgEx çağırması gerekir. Bunu yapamazsa, fırça yanlış hizalanması oluşur. |
|
STRETCH_ANDSCANS |
Windows 95/98: Aynı BLACKONWHITE |
STRETCH_DELETESCANS |
Windows 95/98: Aynı COLORONCOLOR |
STRETCH_HALFTONE |
Windows 95/98: ile HALFTONEaynıdır. |
STRETCH_ORSCANS |
Windows 95/98: Aynı WHITEONBLACK |
WHITEONBLACK |
Ortadan kaldırılan ve var olan piksellerin renk değerlerini kullanarak boole | işlemi gerçekleştirir. Bit eşlem tek renkli bir bit eşlem ise, bu mod siyah pikseller pahasına beyaz pikselleri korur. |
Return Value
Önceki esnetme modu. , veya STRETCH_ANDSCANSolabilirSTRETCH_DELETESCANSSTRETCH_ORSCANS.
Remarks
Bit eşlem genişletme modu, işlevi kullanılarak sıkıştırılmış bit eşlemlerden bilgilerin nasıl kaldırıldığını tanımlar.
BLACKONWHITE(STRETCH_ANDSCANS) ve WHITEONBLACK(STRETCH_ORSCANS) modları genellikle ön plan piksellerini tek renkli bit eşlemlerde korumak için kullanılır.
COLORONCOLOR(STRETCH_DELETESCANS) modu genellikle renk bit eşlemlerindeki renkleri korumak için kullanılır.
Mod, HALFTONE diğer üç moddan daha fazla kaynak görüntünün işlenmesini gerektirir; diğerlerinden daha yavaştır, ancak daha kaliteli görüntüler üretir. Ayrıca, SetBrushOrgEx fırçanın yanlış hizalanmasından kaçınmak için modu ayarladıktan HALFTONE sonra çağrılmalıdır.
Cihaz sürücüsünün özelliklerine bağlı olarak daha fazla esnetme modu da kullanılabilir.
CDC::SetTextAlign
Metin hizalama bayraklarını ayarlar.
UINT SetTextAlign(UINT nFlags);
Parameters
nFlags
Metin hizalama bayraklarını belirtir. Bayraklar, bir nokta ile metni sınırlayan bir dikdörtgen arasındaki ilişkiyi belirtir. Nokta, metin çıkış işlevi tarafından belirtilen geçerli konum veya koordinatlar olabilir. Metni sınırlayan dikdörtgen, metin dizesindeki bitişik karakter hücreleri tarafından tanımlanır. Parametresi, nFlags aşağıdaki üç kategoriden bir veya daha fazla bayrak olabilir. Her kategoriden yalnızca bir bayrak seçin. İlk kategori, x yönünde metin hizalamasını etkiler:
TA_CENTERNoktayı sınırlayıcı dikdörtgenin yatay ortasıyla hizalar.TA_LEFTNoktayı sınırlayıcı dikdörtgenin sol tarafıyla hizalar. Bu varsayılan ayardır.TA_RIGHTNoktayı sınırlayıcı dikdörtgenin sağ tarafına hizalar.
İkinci kategori, metin hizalamasını y yönünde etkiler:
TA_BASELINENoktayı, seçilen yazı tipinin temel çizgisiyle hizalar.TA_BOTTOMNoktayı sınırlayıcı dikdörtgenin alt kısmıyla hizalar.TA_TOPNoktayı sınırlayıcı dikdörtgenin üst kısmıyla hizalar. Bu varsayılan ayardır.
Üçüncü kategori, metin yazıldığında geçerli konumun güncelleştirilip güncelleştirilmeyeceğini belirler:
TA_NOUPDATECPBir metin çıkış işlevine yapılan her çağrıdan sonra geçerli konumu güncelleştirmez. Bu varsayılan ayardır.TA_UPDATECPBir metin çıkış işlevine yapılan her çağrıdan sonra geçerli x konumunu güncelleştirir. Yeni konum, metin için sınırlayıcı dikdörtgenin sağ tarafındadır. Bu bayrak ayarlandığında, üye işlevineTextOutyapılan çağrılarda belirtilen koordinatlar yoksayılır.
Return Value
Başarılı olursa, önceki metin hizalama ayarı. Düşük sıralı bayt yatay ayarı, yüksek sıralı bayt ise dikey ayarı içerir; aksi takdirde 0.
Remarks
ve TextOut üye işlevleri, ExtTextOut bir metin dizesini bir görüntüye veya cihaza yerleştirirken bu bayrakları kullanır. Bayraklar, belirli bir nokta ile metni sınırlayan bir dikdörtgen arasındaki ilişkiyi belirtir. Bu noktanın koordinatları üye işlevine TextOut parametre olarak geçirilir. Metni sınırlayan dikdörtgen, metin dizesindeki bitişik karakter hücreleri tarafından oluşturulur.
CDC::SetTextCharacterExtra
Karakter aralığı miktarını ayarlar.
int SetTextCharacterExtra(int nCharExtra);
Parameters
nCharExtra
Her karaktere eklenecek fazladan alan miktarını (mantıksal birimlerde) belirtir. Geçerli eşleme modu değilse MM_TEXTnCharExtra dönüştürülür ve en yakın piksele yuvarlanir.
Return Value
Önceki intercharacter aralığının miktarı.
Remarks
GDI, cihaz bağlamı için bir metin satırı yazdığında kesme karakterleri de dahil olmak üzere her karaktere bu aralığı ekler. Ara karakter aralığı miktarı için varsayılan değer 0'dır.
CDC::SetTextColor
Metin rengini belirtilen renge ayarlar.
virtual COLORREF SetTextColor(COLORREF crColor);
Parameters
crColor
Metnin rengini RGB renk değeri olarak belirtir.
Return Value
Önceki metin rengi için bir RGB değeri.
Remarks
Sistem, bu cihaz bağlamı için metin yazarken ve bit eşlemleri renk ve tek renkli cihaz bağlamları arasında dönüştürürken bu metin rengini kullanır.
Cihaz belirtilen rengi gösteremiyorsa, sistem metin rengini en yakın fiziksel renge ayarlar. Bir karakterin arka plan rengi ve SetBkColor üye işlevleri tarafından SetBkMode belirtilir.
Example
örneğine CWnd::OnCtlColorbakın.
CDC::SetTextJustification
Dizedeki kesme karakterlerine boşluk ekler.
int SetTextJustification(
int nBreakExtra,
int nBreakCount);
Parameters
nBreakExtra
Metin satırına eklenecek toplam ek alanı belirtir (mantıksal birimlerde). Geçerli eşleme modu değilse MM_TEXT, bu parametre tarafından verilen değer geçerli eşleme moduna dönüştürülür ve en yakın cihaz birimine yuvarlanir.
nBreakCount
Satırdaki kesme karakterlerinin sayısını belirtir.
Return Value
İşlev başarılı olursa bir; aksi takdirde 0.
Remarks
Bir uygulama, bir yazı tipinin GetTextMetrics kesme karakterini almak için üye işlevlerini kullanabilir.
SetTextJustification Üye işlevi çağrıldıktan sonra, bir metin çıkış işlevine yapılan çağrı (örneğinTextOut), belirtilen fazladan alanı belirtilen kesme karakteri sayısı arasında eşit olarak dağıtır. Kesme karakteri genellikle boşluk karakteridir (ASCII 32), ancak bir yazı tipi tarafından başka bir karakter olarak tanımlanabilir.
Üye işlevi GetTextExtent genellikle ile SetTextJustificationkullanılır.
GetTextExtent hizalamadan önce belirli bir çizginin genişliğini hesaplar. Uygulama, tarafından döndürülen nBreakExtra değeri hizalamadan sonra dizenin genişliğinden çıkararak parametrede ne kadar alan belirtileceğini GetTextExtent belirleyebilir.
işlevi, SetTextJustification farklı yazı tiplerinde birden çok çalıştırma içeren bir satırı hizalamak için kullanılabilir. Bu durumda satır, her çalıştırmayı ayrı ayrı hizalayıp yazarak parça parça oluşturulmalıdır.
Hizalama sırasında yuvarlama hataları oluşabileceğinden sistem, geçerli hatayı tanımlayan çalışan bir hata terimi tutar. Birden çok çalıştırma içeren bir satırı hizalarken, GetTextExtent bir sonraki çalıştırmanın kapsamını hesaplarken otomatik olarak bu hata terimini kullanır. Bu, metin çıkışı işlevinin hatayı yeni çalıştırmayla karıştırmasına olanak tanır.
Her satır hizalandıktan sonra, bir sonraki satıra dahil edilmesini önlemek için bu hata terimi temizlenmelidir. Terim, 0 olarak ayarlanmış olarak çağrılarak SetTextJustificationnBreakExtra temizlenebilir.
CDC::SetViewportExt
Cihaz bağlamının görünüm penceresi x ve y uzantılarını ayarlar.
virtual CSize SetViewportExt(
int cx,
int cy);
CSize SetViewportExt(SIZE size);
Parameters
cx
Görünüm penceresi x kapsamını belirtir (cihaz birimlerinde).
cy
Görünüm penceresi y kapsamını belirtir (cihaz birimlerinde).
size
Görünüm penceresi x ve y uzantılarını belirtir (cihaz birimlerinde).
Return Value
Nesne olarak CSize görünüm penceresi önceki kapsamları. Bir hata oluştuğunda, döndürülen CSize nesnenin x ve y koordinatları 0 olarak ayarlanır.
Remarks
Görünüm penceresi, cihaz bağlamı penceresiyle birlikte GDI'nin mantıksal koordinat sistemindeki noktaları gerçek cihazın koordinat sistemindeki noktalarla nasıl eşleyeni tanımlar. Başka bir deyişle, GDI'nin mantıksal koordinatları cihaz koordinatlarına nasıl dönüştürdüğünü tanımlar.
Aşağıdaki eşleme modları ayarlandığında ve SetWindowExt çağrıları SetViewportExt yoksayılır:
MM_HIENGLISH |
MM_LOMETRIC |
|---|---|
MM_HIMETRIC |
MM_TEXT |
MM_LOENGLISH |
MM_TWIPS |
MM_ISOTROPIC Mod ayarlandığında, bir uygulamanın çağrısından önce üye işlevini çağırması SetWindowExtSetViewportExtgerekir.
Example
örneğine CView::OnPrepareDCbakın.
CDC::SetViewportOrg
Cihaz bağlamının görünüm penceresi kaynağını ayarlar.
virtual CPoint SetViewportOrg(
int x,
int y);
CPoint SetViewportOrg(POINT point);
Parameters
x
Görünüm penceresi kaynağının x koordinatını (cihaz birimlerinde) belirtir. Değer, cihaz koordinat sisteminin aralığında olmalıdır.
y
Görünüm penceresi kaynağının y koordinatını (cihaz birimlerinde) belirtir. Değer, cihaz koordinat sisteminin aralığında olmalıdır.
point
Görünüm penceresi kaynağını belirtir. Değerler, cihaz koordinat sisteminin aralığında olmalıdır. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
Nesne olarak CPoint görünüm noktasının önceki çıkış noktası (cihaz koordinatlarında).
Remarks
Görünüm penceresi, cihaz bağlamı penceresiyle birlikte GDI'nin mantıksal koordinat sistemindeki noktaları gerçek cihazın koordinat sistemindeki noktalarla nasıl eşleyeni tanımlar. Başka bir deyişle, GDI'nin mantıksal koordinatları cihaz koordinatlarına nasıl dönüştürdüğünü tanımlar.
Görünüm penceresi başlangıcı, cihaz koordinat sistemindeki GDI'nin pencere kaynağını eşlediği noktayı, üye işlevi tarafından SetWindowOrg belirtilen mantıksal koordinat sisteminde bir noktayı işaretler. GDI, pencere kaynağını görünüm penceresi kaynağıyla eşlemek için gereken işlemi izleyerek diğer tüm noktaları eşler. Örneğin, pencere kaynağındaki noktanın etrafındaki bir daire içindeki tüm noktalar, görünüm penceresi kaynağındaki noktanın etrafındaki bir daire içinde olur. Benzer şekilde, pencere kaynağından geçen bir satırdaki tüm noktalar, görünüm penceresi kaynağından geçen bir satırda olur.
Example
örneğine CView::OnPrepareDCbakın.
CDC::SetWindowExt
Cihaz bağlamıyla ilişkili pencerenin x ve y uzantılarını ayarlar.
virtual CSize SetWindowExt(
int cx,
int cy);
CSize SetWindowExt(SIZE size);
Parameters
cx
Pencerenin x uzantısını (mantıksal birimlerde) belirtir.
cy
Pencerenin y uzantısını (mantıksal birimlerde) belirtir.
size
Pencerenin x ve y uzantılarını (mantıksal birimlerde) belirtir.
Return Value
Pencerenin nesne olarak CSize önceki uzantıları (mantıksal birimlerde). Hata oluşursa, döndürülen CSize nesnenin x ve y koordinatları 0 olarak ayarlanır.
Remarks
Pencere, cihaz bağlamı görünüm penceresiyle birlikte, GDI'nin mantıksal koordinat sistemindeki noktaları cihaz koordinat sistemindeki noktalarla nasıl eşleyeni tanımlar.
Aşağıdaki eşleme modları ayarlandığında ve SetWindowExt işlevleri çağrıları SetViewportExt yoksayılır:
MM_HIENGLISHMM_HIMETRICMM_LOENGLISHMM_LOMETRICMM_TEXTMM_TWIPS
MM_ISOTROPIC Mod ayarlandığında, bir uygulamanın çağrısından önce üye işlevini çağırması SetWindowExtSetViewportExtgerekir.
Example
örneğine CView::OnPrepareDCbakın.
CDC::SetWindowOrg
Cihaz bağlamının pencere kaynağını ayarlar.
CPoint SetWindowOrg(
int x,
int y);
CPoint SetWindowOrg(POINT point);
Parameters
x
Pencerenin yeni kaynağının mantıksal x koordinatını belirtir.
y
Pencerenin yeni kaynağının mantıksal y koordinatını belirtir.
point
Pencerenin yeni kaynağının mantıksal koordinatlarını belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.
Return Value
Pencerenin nesne olarak CPoint önceki çıkış noktası.
Remarks
Pencere, cihaz bağlamı görünüm penceresiyle birlikte, GDI'nin mantıksal koordinat sistemindeki noktaları cihaz koordinat sistemindeki noktalarla nasıl eşleyeni tanımlar.
Pencere başlangıcı, GDI'nin işlev tarafından SetWindowOrg belirtilen cihaz koordinat sistemindeki bir nokta olan görünüm penceresi kaynağını eşlediği mantıksal koordinat sisteminde noktayı işaretler. GDI, pencere kaynağını görünüm penceresi kaynağıyla eşlemek için gereken işlemi izleyerek diğer tüm noktaları eşler. Örneğin, pencere kaynağındaki noktanın etrafındaki bir daire içindeki tüm noktalar, görünüm penceresi kaynağındaki noktanın etrafındaki bir daire içinde olur. Benzer şekilde, pencere kaynağından geçen bir satırdaki tüm noktalar, görünüm penceresi kaynağından geçen bir satırda olur.
CDC::SetWorldTransform
Belirtilen cihaz bağlamı için dünya alanı ve sayfa alanı arasında iki boyutlu bir doğrusal dönüşüm ayarlar. Bu dönüştürme grafik çıktısını ölçeklendirmek, döndürmek, yamyamak veya çevirmek için kullanılabilir.
BOOL SetWorldTransform(const XFORM& rXform);
Parameters
rXform
Dönüştürme verilerini içeren bir XFORM yapıya başvuru.
Return Value
Başarıda sıfır olmayan bir değer döndürür.
Hata durumunda 0 döndürür.
Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.
Remarks
Bu yöntem, Windows GDI işlevini SetWorldTransformsarmalar.
CDC::StartDoc
Cihaz sürücüsüne yeni bir yazdırma işinin başlatıldığını ve bir çağrı gerçekleşene kadar StartPage tüm izleyen EndPage ve EndDoc çağrıların aynı iş altında biriktirilmesi gerektiğini bildirir.
int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);
Parameters
lpDocInfo
Belge dosyasının adını ve çıkış dosyasının adını içeren bir DOCINFO yapıyı gösterir.
lpszDocName
Belge dosyasının adını içeren bir dize işaretçisi.
Return Value
İşlev başarılı olursa, dönüş değeri sıfırdan büyük olur. Bu değer, belgenin yazdırma işi tanımlayıcısıdır.
İşlev başarısız olursa, dönüş değeri sıfırdan küçük veya sıfıra eşit olur.
Remarks
Bu, birden fazla sayfadan uzun belgelerin diğer işlerle kesişmesini sağlamaz.
Windows 3.1 ve üzeri sürümler için bu işlev yazıcı çıkışının STARTDOC yerini alır. Bu işlevin kullanılması, birden fazla sayfa içeren belgelerin diğer yazdırma işleriyle kesişmesini sağlamaz.
StartDoc meta dosyaları içinde kullanılmamalıdır.
Example
Bu kod parçası varsayılan yazıcıyı alır, bir yazdırma işi açar ve üzerinde "Hello, World!" bulunan bir sayfa biriktirir. Bu kod tarafından yazdırılan metin yazıcının mantıksal birimlerine ölçeklendirilmediğinden, çıkış metni o kadar küçük harflerle olabilir ki sonuç okunamaz. Ölçeklendirmeyi düzeltmek için , SetMapModeve SetViewportOrggibi SetWindowExtCDC ölçeklendirme işlevleri kullanılabilir.
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
Yazıcı sürücüsünü veri almaya hazırlamak için bu üye işlevini çağırın.
int StartPage();
Return Value
İşlev başarılı olursa 0'dan büyük veya buna eşit veya hata oluşursa negatif bir değer.
Remarks
StartPageve NEWFRAME kaçışlarının BANDINFO yerini alır.
Yazdırma çağrıları dizisine genel bakış için üye işlevine StartDoc bakın.
Sistem, ve ResetDCçağrıları StartPageEndPage arasında üye işlevini devre dışı bırakır.
Example
örneğine CDC::StartDocbakın.
CDC::StretchBlt
Bir bit eşlemi kaynak dikdörtgenden hedef dikdörtgene kopyalar ve gerekirse, bit eşlem öğesini hedef dikdörtgenin boyutlarına uyacak şekilde uzatır veya sıkıştırır.
BOOL StretchBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
DWORD dwRop);
Parameters
x
Hedef dikdörtgenin sol üst köşesinin x koordinatını (mantıksal birimler cinsinden) belirtir.
y
Hedef dikdörtgenin sol üst köşesinin y koordinatını (mantıksal birimler cinsinden) belirtir.
nWidth
Hedef dikdörtgenin genişliğini (mantıksal birimler cinsinden) belirtir.
nHeight
Hedef dikdörtgenin yüksekliğini (mantıksal birimler cinsinden) belirtir.
pSrcDC
Kaynak cihaz bağlamını belirtir.
xSrc
Kaynak dikdörtgenin sol üst köşesinin x koordinatını (mantıksal birimler cinsinden) belirtir.
ySrc
Kaynak dikdörtgenin sol üst köşesinin y koordinatını (mantıksal birimler cinsinden) belirtir.
nSrcWidth
Kaynak dikdörtgenin genişliğini (mantıksal birimler cinsinden) belirtir.
nSrcHeight
Kaynak dikdörtgenin yüksekliğini (mantıksal birimler cinsinden) belirtir.
dwRop
Gerçekleştirilecek ızgara işlemini belirtir. Izgara işlemi kodları, GDI'nin geçerli fırça, olası bir kaynak bit eşlem ve hedef bit eşlem içeren çıkış işlemlerinde renkleri nasıl birleştirdiğini tanımlar. Bu parametre aşağıdaki değerlerden biri olabilir:
BLACKNESSTüm çıkışı siyaha çevirir.DSTINVERTHedef bit eşlemi tersine çevirir.MERGECOPYBoolean AND işlecini kullanarak deseni ve kaynak bit eşlemini birleştirir.MERGEPAINTBoolean OR işlecini kullanarak ters çevrilmiş kaynak bit eşlemini hedef bit eşlem ile birleştirir.NOTSRCCOPYTers çevrilmiş kaynak bit eşlemini hedefe kopyalar.NOTSRCERASEBoole or işlecini kullanarak hedef ve kaynak bit eşlemleri birleştirmenin sonucunu tersine çevirir.PATCOPYDeseni hedef bit eşlemine kopyalar.PATINVERTBoole XOR işlecini kullanarak hedef bit eşlemi desenle birleştirir.PATPAINTBoole veya işlecini kullanarak ters çevrilmiş kaynak bit eşlemini desenle birleştirir. Boolean OR işlecini kullanarak bu işlemin sonucunu hedef bit eşlem ile birleştirir.SRCANDBoolean AND işlecini kullanarak hedef ve kaynak bit eşlemlerin piksellerini birleştirir.SRCCOPYKaynak bit eşlemi hedef bit eşlemine kopyalar.SRCERASEHedef bit eşlemi tersine çevirir ve Boolean AND işlecini kullanarak sonucu kaynak bit eşlem ile birleştirir.SRCINVERTBoole XOR işlecini kullanarak hedef ve kaynak bit eşlemlerin piksellerini birleştirir.SRCPAINTBoolean OR işlecini kullanarak hedef ve kaynak bit eşlemlerin piksellerini birleştirir.WHITENESSTüm çıkışı beyaza çevirir.
Return Value
Bit eşlem çizilirse sıfır dışında bir değer, aksi durumda 0.
Remarks
İşlev, bit eşlemi genişletmeyi veya sıkıştırmayı belirlemek için hedef cihaz bağlamının (tarafından SetStretchBltModeayarlanır) esnetme modunu kullanır.
İşlev, StretchBlt bit eşlemi tarafından pSrcDC verilen kaynak cihazdan, üye işlevi çağrılan cihaz bağlamı nesnesi tarafından temsil edilen hedef cihaza taşır.
xSrc, ySrc, nSrcWidthve nSrcHeight parametreleri, sol üst köşeyi ve kaynak dikdörtgenin boyutlarını tanımlar.
x, y, nWidthve nHeight parametreleri, sol üst köşeyi ve hedef dikdörtgenin boyutlarını verir. tarafından dwRop belirtilen raster işlemi, hedef cihazda zaten bulunan kaynak bit eşlem ve bitlerin nasıl birleştirildiği tanımlar.
ve StretchBlt parametrelerinin işaretleri farklıysa işlev bit eşleminin nSrcWidthnWidthnSrcHeightnHeight yansıtma görüntüsünü oluşturur. ve nSrcWidth farklı işaretlere sahipsenWidth, işlev x ekseni boyunca bit eşleminin bir yansıtma görüntüsünü oluşturur. ve nSrcHeight farklı işaretlere sahipsenHeight, işlev y ekseni boyunca bit eşleminin bir yansıtma görüntüsünü oluşturur.
İşlev, StretchBlt kaynak bit eşlemi bellekte genişletir veya sıkıştırır ve ardından sonucu hedefe kopyalar. Bir desen sonuçla birleştirilecekse, esnetilmiş kaynak bit eşlem hedefe kopyalanana kadar birleştirilmeyecektir. Bir fırça kullanılıyorsa, hedef cihaz bağlamında seçili fırçadır. Hedef koordinatları hedef cihaz bağlamına göre dönüştürülür; kaynak koordinatları kaynak cihaz bağlamına göre dönüştürülür.
Hedef, kaynak ve desen bit eşlemleri aynı renk biçimine sahip değilse, StretchBlt kaynak ve desen bit eşlemlerini hedef bit eşlemlerle eşleşecek şekilde dönüştürür. Hedef cihaz bağlamının ön plan ve arka plan renkleri dönüşümde kullanılır.
StretchBlt Tek renkli bit eşlemi renge dönüştürmesi gerekiyorsa, beyaz bitleri (1) arka plan rengine, siyah bitleri (0) ön plan rengine ayarlar. Renkliyi tek renkliye dönüştürmek için, arka plan rengiyle uyuşan pikselleri beyaz (1) olarak ve tüm diğer pikselleri de siyah (0) olarak ayarlar. Renkli cihaz bağlamının ön plan ve arka plan renkleri kullanılır.
Tüm cihazlar işlevi desteklemez StretchBlt . Bir cihazın destekleyip desteklemediğini StretchBltbelirlemek içinGetDeviceCaps, üye işlevini dizinle çağırın RASTERCAPSRC_STRETCHBLT ve bayrağının dönüş değerini denetleyin.
CDC::StrokeAndFillPath
Bir yoldaki açık şekilleri kapatır, geçerli kalemi kullanarak yolun ana hattını konturlar ve geçerli fırçayı kullanarak iç kısmını doldurur.
BOOL StrokeAndFillPath();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Cihaz bağlamı kapalı bir yol içermelidir.
StrokeAndFillPath Üye işlevi, yoldaki tüm açık şekilleri kapatma ve yolu ayrı olarak okşama ve doldurma ile aynı etkiye sahiptir, ancak kalem geniş olsa bile dolgulu bölge konturlu bölgeyle çakışmaz.
CDC::StrokePath
Geçerli kalemi kullanarak belirtilen yolu işler.
BOOL StrokePath();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Cihaz bağlamı kapalı bir yol içermelidir.
CDC::TabbedTextOut
Sekmeleri sekme durağı konumları dizisinde belirtilen değerlere genişleterek belirtilen konuma bir karakter dizesi yazmak için bu üye işlevini çağırın.
virtual CSize TabbedTextOut(
int x,
int y,
LPCTSTR lpszString,
int nCount,
int nTabPositions,
LPINT lpnTabStopPositions,
int nTabOrigin);
CSize TabbedTextOut(
int x,
int y,
const CString& str,
int nTabPositions,
LPINT lpnTabStopPositions,
int nTabOrigin);
Parameters
x
Dizenin başlangıç noktasının mantıksal x koordinatını belirtir.
y
Dizenin başlangıç noktasının mantıksal y koordinatını belirtir.
lpszString
Çizecek karakter dizesini gösterir. Bu parametre için bir karakter dizisine veya nesneye işaretçi CString geçirebilirsiniz.
nCount
lpszString uzunluğunu belirtir.
nTabPositions
Sekme durağı konumları dizisindeki değerlerin sayısını belirtir.
lpnTabStopPositions
Sekme durağı konumlarını içeren bir diziye işaret eder (mantıksal birimlerde). Sekme durakları artan düzende sıralanmalıdır; en küçük x değeri dizideki ilk öğe olmalıdır.
nTabOrigin
Sekmelerin genişletildiği başlangıç konumunun x koordinatını belirtir (mantıksal birimlerde).
str
CString Belirtilen karakterleri içeren bir nesne.
Return Value
Dizenin (mantıksal birimlerde) bir CSize nesne olarak boyutları.
Remarks
Metin, seçili durumdaki yazı tipinde yazılır.
nTabPositions 0 ve lpnTabStopPositions iseNULL, sekmeler ortalama karakter genişliğinin sekiz katına genişletilir.
1 ise nTabPositions , sekme durakları dizideki ilk değerle lpnTabStopPositions belirtilen uzaklık ile ayrılır.
lpnTabStopPositions Dizi birden fazla değer içeriyorsa, dizideki her değer için tarafından nTabPositionsbelirtilen sayıya kadar bir sekme durağı ayarlanır. parametresi, nTabOrigin bir uygulamanın işlevi tek bir satır için birkaç kez çağırmasına TabbedTextOut olanak tanır. Uygulama, işlevi her seferinde aynı değere ayarlanmış şekilde birden çok kez nTabOrigin çağırırsa, işlevi tarafından nTabOriginbelirtilen konuma göre tüm sekmeleri genişletir.
Varsayılan olarak, geçerli konum işlev tarafından kullanılmaz veya güncelleştirilmez. Bir uygulamanın işlevi çağırdığında geçerli konumu güncelleştirmesi gerekiyorsa, uygulama olarak ayarlanmış SetTextAlignüye işlevini nFlags çağırabilirTA_UPDATECP. Bu bayrak ayarlandığında, Windows bunun yerine geçerli konumu kullanarak sonraki çağrısında xve y parametrelerini yoksayarTabbedTextOut.
CDC::TextOut
O anda seçili yazı tipini kullanarak belirtilen konumda bir karakter dizesi yazar.
virtual BOOL TextOut(
int x,
int y,
LPCTSTR lpszString,
int nCount);
BOOL TextOut(
int x,
int y,
const CString& str);
Parameters
x
Metnin başlangıç noktasının mantıksal x koordinatını belirtir.
y
Metnin başlangıç noktasının mantıksal y koordinatını belirtir.
lpszString
Çizilecek karakter dizesine işaret eder.
nCount
Dizedeki karakter sayısını belirtir.
str
CString Çizilecek karakterleri içeren bir nesne.
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Karakter başlangıç noktaları karakter hücresinin sol üst köşesindedir. Varsayılan olarak, geçerli konum işlev tarafından kullanılmaz veya güncelleştirilmez.
Bir uygulamanın çağırdığında TextOutgeçerli konumu güncelleştirmesi gerekiyorsa, uygulama olarak ayarlanmış SetTextAlignüye işlevini nFlags çağırabilirTA_UPDATECP. Bu bayrak ayarlandığında, Windows bunun yerine geçerli konumu kullanarak sonraki çağrısında xve y parametrelerini yoksayarTextOut.
Example
örneğine CDC::BeginPathbakın.
CDC::TransparentBlt
Belirtilen kaynak cihaz bağlamındaki piksel dikdörtgenine karşılık gelen renk verilerinin bit bloğunu hedef cihaz bağlamı içine aktarmak için bu üye işlevini çağırın.
BOOL TransparentBlt(
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT clrTransparent);
Parameters
xDest
Hedef dikdörtgenin sol üst köşesindeki x koordinatını mantıksal birimler halinde belirtir.
yDest
Hedef dikdörtgenin sol üst köşesinin mantıksal birimlerde y koordinatını belirtir.
nDestWidth
Hedef dikdörtgenin genişliğini mantıksal birimler halinde belirtir.
nDestHeight
Hedef dikdörtgenin yüksekliğini mantıksal birimlerde belirtir.
pSrcDC
Kaynak cihaz bağlamı işaretçisi.
xSrc
Kaynak dikdörtgenin mantıksal birimlerinde x koordinatını belirtir.
ySrc
Kaynak dikdörtgenin mantıksal birimlerinde y koordinatını belirtir.
nSrcWidth
Kaynak dikdörtgenin genişliğini mantıksal birimler halinde belirtir.
nSrcHeight
Kaynak dikdörtgenin yüksekliğini mantıksal birimler halinde belirtir.
clrTransparent
Saydam olarak ele almak için kaynak bit eşlemdeki RGB rengi.
Return Value
TRUE başarılı olursa; aksi takdirde FALSE.
Remarks
TransparentBlt saydamlık sağlar; diğer bir ifadeyle, tarafından clrTransparent belirtilen RGB rengi aktarım için saydam olarak işlenir.
Daha fazla bilgi için bkz TransparentBlt . Windows SDK'sı.
CDC::UpdateColors
İstemci alanındaki geçerli renkleri piksel piksel temelinde sistem paleti ile eşleştirerek cihaz bağlamının istemci alanını güncelleştirir.
void UpdateColors();
Remarks
Gerçekleştirilmiş mantıksal paleti olan etkin olmayan bir pencere, sistem paleti değiştiğinde istemci alanını yeniden çizmek için alternatif olarak çağırabilir UpdateColors .
Renk paletlerini kullanma hakkında daha fazla bilgi için bkz UpdateColors . Windows SDK'sı.
Üye UpdateColors işlevi genellikle bir istemci alanını alanı yeniden çizmekten daha hızlı güncelleştirir. Ancak işlev, sistem paleti değiştirilmeden önce her pikselin rengine göre renk çevirisi gerçekleştirdiğinden, bu işleve yapılan her çağrı bazı renk doğruluğu kaybına neden olur.
CDC::WidenPath
Geçerli yolu, cihaz bağlamında seçili durumdaki kalem kullanılarak yol konturlanmışsa boyanacak alan olarak yeniden tanımlar.
BOOL WidenPath();
Return Value
İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.
Remarks
Bu işlev yalnızca geçerli kalem üye işlevinin ikinci sürümü CreatePen tarafından oluşturulan geometrik bir kalemse veya kalem ilk sürümüyle CreatePen oluşturulduysa ve cihaz birimlerinde 1'den büyük bir genişliğe sahipse başarılı olur. Cihaz bağlamı kapalı bir yol içermelidir. Yoldaki tüm Bzier eğrileri, genişleyen eğrileri yaklaşık olarak gösteren düz çizgi dizilerine dönüştürülür. Bu nedenle, çağrıldıktan sonra WidenPath hiçbir Bzier eğrisi yolda kalmaz.
See also
CObject Sınıf
Hierarchy Chart
CPaintDC Sınıf
CWindowDC Sınıf
CClientDC Sınıf
CMetaFileDC Sınıf