Bagikan melalui


CDC Kelas

Menentukan kelas objek konteks perangkat.

Sintaks

class CDC : public CObject

Anggota

Konstruktor Publik

Nama Deskripsi
CDC::CDC Membuat CDC objek.

Metode Publik

Nama Deskripsi
CDC::AbortDoc Mengakhiri pekerjaan cetak saat ini, menghapus semua yang telah ditulis aplikasi ke perangkat sejak panggilan terakhir fungsi StartDoc anggota.
CDC::AbortPath Menutup dan membuang jalur apa pun dalam konteks perangkat.
CDC::AddMetaFileComment Menyalin komentar dari buffer ke dalam metafile format yang disempurnakan tertentu.
CDC::AlphaBlend Menampilkan bitmap yang memiliki piksel transparan atau semitransparan.
CDC::AngleArc Menggambar segmen garis dan busur, dan memindahkan posisi saat ini ke titik akhir busur.
CDC::Arc Menggambar busur elips.
CDC::ArcTo Menggambar busur elips. Fungsi ini mirip Arcdengan , kecuali bahwa posisi saat ini diperbarui.
CDC::Attach Melampirkan konteks perangkat Windows ke objek ini CDC .
CDC::BeginPath Membuka braket jalur dalam konteks perangkat.
CDC::BitBlt Menyalin bitmap dari konteks perangkat tertentu.
CDC::Chord Menggambar akord (gambar tertutup yang dibatasi oleh persimpangan elips dan segmen garis).
CDC::CloseFigure Menutup gambar terbuka di jalur.
CDC::CreateCompatibleDC Membuat konteks perangkat memori yang kompatibel dengan konteks perangkat lain. Anda dapat menggunakannya untuk menyiapkan gambar dalam memori.
CDC::CreateDC Membuat konteks perangkat untuk perangkat tertentu.
CDC::CreateIC Membuat konteks informasi untuk perangkat tertentu. Ini menyediakan cara cepat untuk mendapatkan informasi tentang perangkat tanpa membuat konteks perangkat.
CDC::DeleteDC Menghapus konteks perangkat Windows yang terkait dengan objek ini CDC .
CDC::DeleteTempMap Dipanggil oleh handler CWinApp idle-time untuk menghapus objek sementara CDC yang dibuat oleh FromHandle. Juga melepaskan konteks perangkat.
CDC::Detach Copot konteks perangkat Windows dari objek ini CDC .
CDC::DPtoHIMETRIC Mengonversi unit perangkat menjadi HIMETRIC satuan.
CDC::DPtoLP Mengonversi unit perangkat menjadi unit logis.
CDC::Draw3dRect Menggambar persegi tiga dimensi.
CDC::DrawDragRect Menghapus dan menggambar ulang persegi panjang saat diseret.
CDC::DrawEdge Menggambar tepi persegi panjang.
CDC::DrawEscape Mengakses kemampuan menggambar tampilan video yang tidak tersedia secara langsung melalui antarmuka perangkat grafis (GDI).
CDC::DrawFocusRect Menggambar persegi panjang dalam gaya yang digunakan untuk menunjukkan fokus.
CDC::DrawFrameControl Gambar kontrol bingkai.
CDC::DrawIcon Menggambar ikon.
CDC::DrawState Menampilkan gambar dan menerapkan efek visual untuk menunjukkan status.
CDC::DrawText Gambar teks yang diformat dalam persegi panjang yang ditentukan.
CDC::DrawTextEx Gambar teks yang diformat dalam persegi panjang yang ditentukan menggunakan format lain.
CDC::Ellipse Menggambar elips.
CDC::EndDoc Mengakhiri pekerjaan cetak yang dimulai oleh StartDoc fungsi anggota.
CDC::EndPage Menginformasikan driver perangkat bahwa halaman berakhir.
CDC::EndPath Menutup tanda kurung jalur dan memilih jalur yang ditentukan oleh tanda kurung ke dalam konteks perangkat.
CDC::EnumObjects Menghitung pena dan kuas yang tersedia dalam konteks perangkat.
CDC::Escape Memungkinkan aplikasi mengakses fasilitas yang tidak tersedia secara langsung dari perangkat tertentu melalui GDI. Juga memungkinkan akses ke fungsi escape Windows. Panggilan escape yang dilakukan oleh aplikasi diterjemahkan dan dikirim ke driver perangkat.
CDC::ExcludeClipRect Membuat wilayah kliping baru yang terdiri dari wilayah kliping yang ada dikurangi persegi panjang yang ditentukan.
CDC::ExcludeUpdateRgn Mencegah gambar dalam area jendela yang tidak valid dengan mengecualikan wilayah yang diperbarui di jendela dari wilayah kliping.
CDC::ExtFloodFill Mengisi area dengan kuas saat ini. Memberikan lebih banyak fleksibilitas daripada CDC::FloodFill fungsi anggota.
CDC::ExtTextOut Menulis string karakter dalam wilayah persegi panjang menggunakan font yang saat ini dipilih.
CDC::FillPath Menutup tokoh terbuka di jalur saat ini dan mengisi interior jalur dengan menggunakan mode kuas dan pengisian poligon saat ini.
CDC::FillRect Mengisi persegi panjang tertentu dengan menggunakan kuas tertentu.
CDC::FillRgn Mengisi wilayah tertentu dengan kuas yang ditentukan.
CDC::FillSolidRect Mengisi persegi panjang dengan warna solid.
CDC::FlattenPath Mengubah kurva apa pun di jalur yang dipilih ke konteks perangkat saat ini, dan mengubah setiap kurva menjadi urutan garis.
CDC::FloodFill Mengisi area dengan kuas saat ini.
CDC::FrameRect Menggambar batas di sekitar persegi panjang.
CDC::FrameRgn Menggambar batas di sekitar wilayah tertentu menggunakan kuas.
CDC::FromHandle Mengembalikan penunjuk ke CDC objek saat diberikan handel ke konteks perangkat. CDC Jika objek tidak dilampirkan ke handel, objek sementara CDC dibuat dan dilampirkan.
CDC::GetArcDirection Mengembalikan arah busur saat ini untuk konteks perangkat.
CDC::GetAspectRatioFilter Mengambil pengaturan untuk filter rasio aspek saat ini.
CDC::GetBkColor Mengambil warna latar belakang saat ini.
CDC::GetBkMode Mengambil mode latar belakang.
CDC::GetBoundsRect Mengembalikan persegi panjang batas akumulasi saat ini untuk konteks perangkat yang ditentukan.
CDC::GetBrushOrg Mengambil asal kuas saat ini.
CDC::GetCharABCWidths Mengambil lebar, dalam unit logis, dari karakter berturut-turut dalam rentang tertentu dari font saat ini.
CDC::GetCharABCWidthsI Mengambil lebar, dalam unit logis, indeks glyph berturut-turut dalam rentang tertentu dari font TrueType saat ini.
CDC::GetCharacterPlacement Mengambil berbagai jenis informasi pada string karakter.
CDC::GetCharWidth Mengambil lebar pecahan karakter berturut-turut dalam rentang tertentu dari font saat ini.
CDC::GetCharWidthI Mengambil lebar, dalam koordinat logis, indeks glyph berturut-turut dalam rentang tertentu dari font saat ini.
CDC::GetClipBox Mengambil dimensi persegi panjang pembatas terketat di sekitar batas kliping saat ini.
CDC::GetColorAdjustment Mengambil nilai penyesuaian warna untuk konteks perangkat.
CDC::GetCurrentBitmap Mengembalikan penunjuk ke objek yang saat ini dipilih CBitmap .
CDC::GetCurrentBrush Mengembalikan penunjuk ke objek yang saat ini dipilih CBrush .
CDC::GetCurrentFont Mengembalikan penunjuk ke objek yang saat ini dipilih CFont .
CDC::GetCurrentPalette Mengembalikan penunjuk ke objek yang saat ini dipilih CPalette .
CDC::GetCurrentPen Mengembalikan penunjuk ke objek yang saat ini dipilih CPen .
CDC::GetCurrentPosition Mengambil posisi pena saat ini (dalam koordinat logis).
CDC::GetDCBrushColor Mengambil warna kuas saat ini.
CDC::GetDCPenColor Mengambil warna pena saat ini.
CDC::GetDeviceCaps Mengambil jenis informasi spesifik perangkat tertentu tentang kemampuan perangkat tampilan tertentu.
CDC::GetFontData Mengambil informasi metrik font dari file font yang dapat diskalakan. Informasi yang akan diambil diidentifikasi dengan menentukan offset ke dalam file font dan panjang informasi yang akan dikembalikan.
CDC::GetFontLanguageInfo Mengembalikan informasi tentang font yang saat ini dipilih untuk konteks tampilan yang ditentukan.
CDC::GetGlyphOutline Mengambil kurva kerangka atau bitmap untuk karakter kerangka dalam font saat ini.
CDC::GetGraphicsMode Mengambil mode grafis saat ini untuk konteks perangkat yang ditentukan.
CDC::GetHalftoneBrush Mengambil sikat halftone.
CDC::GetKerningPairs Mengambil pasangan kerning karakter untuk font yang saat ini dipilih dalam konteks perangkat yang ditentukan.
CDC::GetLayout Mengambil tata letak konteks perangkat (DC). Tata letak dapat berupa kiri ke kanan (default) atau kanan ke kiri (dicerminkan).
CDC::GetMapMode Mengambil mode pemetaan saat ini.
CDC::GetMiterLimit Mengembalikan batas miter untuk konteks perangkat.
CDC::GetNearestColor Mengambil warna logis terdekat ke warna logis tertentu yang dapat diwakili perangkat tertentu.
CDC::GetOutlineTextMetrics Mengambil informasi metrik font untuk font TrueType.
CDC::GetOutputCharWidth Mengambil lebar karakter individual dalam sekelompok karakter berturut-turut dari font saat ini menggunakan konteks perangkat output.
CDC::GetOutputTabbedTextExtent Menghitung lebar dan tinggi string karakter pada konteks perangkat output.
CDC::GetOutputTextExtent Menghitung lebar dan tinggi baris teks pada konteks perangkat output menggunakan font saat ini untuk menentukan dimensi.
CDC::GetOutputTextMetrics Mengambil metrik untuk font saat ini dari konteks perangkat output.
CDC::GetPath Mengambil koordinat yang menentukan titik akhir garis dan titik kontrol kurva yang ditemukan di jalur yang dipilih ke dalam konteks perangkat.
CDC::GetPixel Mengambil nilai warna RGB piksel pada titik yang ditentukan.
CDC::GetPolyFillMode Mengambil mode pengisian poligon saat ini.
CDC::GetROP2 Mengambil mode gambar saat ini.
CDC::GetSafeHdc Mengembalikan CDC::m_hDC, konteks perangkat output.
CDC::GetStretchBltMode Mengambil mode peregangan bitmap saat ini.
CDC::GetTabbedTextExtent Menghitung lebar dan tinggi string karakter pada konteks perangkat atribut.
CDC::GetTextAlign Mengambil bendera perataan teks.
CDC::GetTextCharacterExtra Mengambil pengaturan saat ini untuk jumlah penspasian antarkarakter.
CDC::GetTextColor Mengambil warna teks saat ini.
CDC::GetTextExtent Menghitung lebar dan tinggi baris teks pada konteks perangkat atribut menggunakan font saat ini untuk menentukan dimensi.
CDC::GetTextExtentExPointI Mengambil jumlah karakter dalam string tertentu yang akan pas dalam spasi tertentu dan mengisi array dengan tingkat teks untuk masing-masing karakter tersebut.
CDC::GetTextExtentPointI Mengambil lebar dan tinggi array indeks glyph yang ditentukan.
CDC::GetTextFace Menyalin nama typeface font saat ini ke dalam buffer sebagai string null-terminated.
CDC::GetTextMetrics Mengambil metrik untuk font saat ini dari konteks perangkat atribut.
CDC::GetViewportExt Mengambil tingkat x dan y dari viewport.
CDC::GetViewportOrg Mengambil koordinat x dan y dari asal viewport.
CDC::GetWindow Mengembalikan jendela yang terkait dengan konteks perangkat tampilan.
CDC::GetWindowExt Mengambil tingkat x dan y dari jendela terkait.
CDC::GetWindowOrg Mengambil koordinat x dan y dari asal jendela terkait.
CDC::GetWorldTransform Mengambil transformasi ruang-dunia ke ruang halaman saat ini.
CDC::GradientFill Mengisi struktur persegi panjang dan segitiga dengan warna memutakhirkan.
CDC::GrayString Menggambar teks redup (abu-abu) di lokasi tertentu.
CDC::HIMETRICtoDP Mengonversi unit HIMETRIC menjadi unit perangkat.
CDC::HIMETRICtoLP Mengonversi unit HIMETRIC menjadi unit logis.
CDC::IntersectClipRect Membuat wilayah kliping baru dengan membentuk persimpangan wilayah saat ini dan persegi panjang.
CDC::InvertRect Balikkan isi persegi panjang.
CDC::InvertRgn Mengalihkan warna di suatu wilayah.
CDC::IsPrinting Menentukan apakah konteks perangkat sedang digunakan untuk pencetakan.
CDC::LineTo Menggambar garis dari posisi saat ini ke atas, tetapi tidak termasuk, titik.
CDC::LPtoDP Mengonversi unit logis menjadi unit perangkat.
CDC::LPtoHIMETRIC Mengonversi unit logis menjadi unit HIMETRIC.
CDC::MaskBlt Menggabungkan data warna untuk bitmap sumber dan tujuan menggunakan operasi masker dan raster yang diberikan.
CDC::ModifyWorldTransform Mengubah transformasi dunia untuk konteks perangkat menggunakan mode yang ditentukan.
CDC::MoveTo Memindahkan posisi saat ini.
CDC::OffsetClipRgn Memindahkan wilayah kliping perangkat yang diberikan.
CDC::OffsetViewportOrg Memodifikasi asal viewport relatif terhadap koordinat asal viewport saat ini.
CDC::OffsetWindowOrg Memodifikasi asal jendela relatif terhadap koordinat asal jendela saat ini.
CDC::PaintRgn Mengisi wilayah dengan kuas yang dipilih.
CDC::PatBlt Membuat pola bit.
CDC::Pie Menggambar gulma berbentuk pai.
CDC::PlayMetaFile Memutar isi metafile yang ditentukan pada perangkat tertentu. Versi PlayMetaFile yang disempurnakan menampilkan gambar yang disimpan dalam metafile format yang disempurnakan yang diberikan. Metafile dapat diputar berapa kali.
CDC::PlgBlt Melakukan transfer bit-block dari bit data warna dari persegi panjang yang ditentukan dalam konteks perangkat sumber ke parallelogram yang ditentukan dalam konteks perangkat tertentu.
CDC::PolyBezier Menggambar satu atau beberapa spline Bzier. Posisi saat ini tidak digunakan atau diperbarui.
CDC::PolyBezierTo Menggambar satu atau beberapa spline Bzier, dan memindahkan posisi saat ini ke titik akhir spline Bzier terakhir.
CDC::PolyDraw Menggambar sekumpulan segmen garis dan spline Bzier. Fungsi ini memperbarui posisi saat ini.
CDC::Polygon Menggambar poligon yang terdiri dari dua titik atau lebih (simpul) yang disambungkan oleh garis.
CDC::Polyline Menggambar sekumpulan segmen garis yang menghubungkan titik yang ditentukan.
CDC::PolylineTo Menggambar satu atau beberapa garis lurus dan memindahkan posisi saat ini ke titik akhir baris terakhir.
CDC::PolyPolygon Membuat dua poligon atau lebih yang diisi menggunakan mode pengisian poligon saat ini. Poligon mungkin terputus-putus atau mungkin tumpang tindih.
CDC::PolyPolyline Menggambar beberapa rangkaian segmen garis yang tersambung. Posisi saat ini tidak digunakan atau diperbarui oleh fungsi ini.
CDC::PtVisible Menentukan apakah titik yang diberikan berada dalam wilayah kliping.
CDC::RealizePalette Memetakan entri palet di palet logis saat ini ke palet sistem.
CDC::Rectangle Menggambar persegi panjang menggunakan pena saat ini dan mengisinya menggunakan kuas saat ini.
CDC::RectVisible Menentukan apakah ada bagian dari persegi panjang yang diberikan terletak di dalam wilayah kliping.
CDC::ReleaseAttribDC Rilis m_hAttribDC, konteks perangkat atribut.
CDC::ReleaseOutputDC Rilis m_hDC, konteks perangkat output.
CDC::ResetDC m_hAttribDC Memperbarui konteks perangkat.
CDC::RestoreDC Memulihkan konteks perangkat ke status sebelumnya yang disimpan dengan SaveDC.
CDC::RoundRect Menggambar persegi panjang dengan sudut bulat menggunakan pena saat ini dan diisi menggunakan kuas saat ini.
CDC::SaveDC Menyimpan status konteks perangkat saat ini.
CDC::ScaleViewportExt Memodifikasi tingkat viewport relatif terhadap nilai saat ini.
CDC::ScaleWindowExt Memodifikasi jangkauan jendela relatif terhadap nilai saat ini.
CDC::ScrollDC Menggulir persegi panjang bit secara horizontal dan vertikal.
CDC::SelectClipPath Memilih jalur saat ini sebagai wilayah kliping untuk konteks perangkat, menggabungkan wilayah baru dengan wilayah kliping yang ada dengan menggunakan mode yang ditentukan.
CDC::SelectClipRgn Menggabungkan wilayah yang diberikan dengan wilayah kliping saat ini dengan menggunakan mode yang ditentukan.
CDC::SelectObject Memilih objek gambar GDI seperti pena.
CDC::SelectPalette Memilih palet logis.
CDC::SelectStockObject Memilih salah satu pena stok, kuas, atau font yang telah ditentukan sebelumnya yang disediakan oleh Windows.
CDC::SetAbortProc Mengatur fungsi panggilan balik yang disediakan programmer yang dipanggil Windows jika pekerjaan cetak harus dibatalkan.
CDC::SetArcDirection Mengatur arah gambar yang akan digunakan untuk fungsi busur dan persegi panjang.
CDC::SetAttribDC Set , m_hAttribDCkonteks perangkat atribut.
CDC::SetBkColor Menyetel warna latar belakang saat ini.
CDC::SetBkMode Mengatur mode latar belakang.
CDC::SetBoundsRect Mengontrol akumulasi informasi persegi panjang pembatas untuk konteks perangkat yang ditentukan.
CDC::SetBrushOrg Menentukan asal untuk kuas berikutnya yang dipilih ke dalam konteks perangkat.
CDC::SetColorAdjustment Mengatur nilai penyesuaian warna untuk konteks perangkat menggunakan nilai yang ditentukan.
CDC::SetDCBrushColor Mengatur warna kuas saat ini.
CDC::SetDCPenColor Menyetel warna pena saat ini.
CDC::SetGraphicsMode Mengatur mode grafis saat ini untuk konteks perangkat yang ditentukan.
CDC::SetLayout Mengubah tata letak konteks perangkat (DC).
CDC::SetMapMode Mengatur mode pemetaan saat ini.
CDC::SetMapperFlags Mengubah algoritma yang digunakan pemeta font saat memetakan font logis ke font fisik.
CDC::SetMiterLimit Mengatur batas untuk panjang gabungan miter untuk konteks perangkat.
CDC::SetOutputDC Set , m_hDCkonteks perangkat output.
CDC::SetPixel Mengatur piksel pada titik yang ditentukan ke perkiraan terdekat dari warna yang ditentukan.
CDC::SetPixelV Mengatur piksel pada koordinat yang ditentukan ke perkiraan terdekat dari warna yang ditentukan. SetPixelV lebih cepat daripada SetPixel karena tidak perlu mengembalikan nilai warna titik yang dicat.
CDC::SetPolyFillMode Mengatur mode pengisian poligon.
CDC::SetROP2 Mengatur mode gambar saat ini.
CDC::SetStretchBltMode Mengatur mode peregangan bitmap.
CDC::SetTextAlign Mengatur bendera perataan teks.
CDC::SetTextCharacterExtra Mengatur jumlah penspasian antarkarakter.
CDC::SetTextColor Mengatur warna teks.
CDC::SetTextJustification Menambahkan spasi ke karakter pemisah dalam string.
CDC::SetViewportExt Mengatur tingkat x dan y dari viewport.
CDC::SetViewportOrg Mengatur asal viewport.
CDC::SetWindowExt Mengatur tingkat x dan y dari jendela terkait.
CDC::SetWindowOrg Mengatur asal jendela konteks perangkat.
CDC::SetWorldTransform Mengatur transformasi ruang-dunia saat ini ke ruang halaman.
CDC::StartDoc Menginformasikan pengandar perangkat bahwa tugas cetak baru sedang dimulai.
CDC::StartPage Menginformasikan driver perangkat bahwa halaman baru sedang dimulai.
CDC::StretchBlt Memindahkan bitmap dari persegi panjang sumber dan perangkat ke persegi panjang tujuan, meregangkan atau mengompresi bitmap jika perlu agar pas dengan dimensi persegi panjang tujuan.
CDC::StrokeAndFillPath Menutup setiap tokoh terbuka di jalur, menyerang garis luar jalur dengan menggunakan pena saat ini, dan mengisi interiornya dengan menggunakan kuas saat ini.
CDC::StrokePath Merender jalur yang ditentukan dengan menggunakan pena saat ini.
CDC::TabbedTextOut Menulis string karakter di lokasi tertentu, memperluas tab ke nilai yang ditentukan dalam array posisi perhentian tab.
CDC::TextOut Menulis string karakter pada lokasi tertentu menggunakan font yang saat ini dipilih.
CDC::TransparentBlt Mentransfer bit-blok data warna dari konteks perangkat sumber yang ditentukan ke dalam konteks perangkat tujuan, merender warna tertentu transparan dalam transfer.
CDC::UpdateColors Memperbarui area klien konteks perangkat dengan mencocokkan warna saat ini di area klien ke palet sistem berdasarkan piksel demi piksel.
CDC::WidenPath Mendefiniskan ulang jalur saat ini sebagai area yang akan dicat jika jalur di-stroke menggunakan pena yang saat ini dipilih ke dalam konteks perangkat.

Operator Publik

Nama Deskripsi
CDC::operator HDC Mengambil handel konteks perangkat.

Anggota Data Publik

Nama Deskripsi
CDC::m_hAttribDC Konteks atribut-perangkat yang digunakan oleh objek ini CDC .
CDC::m_hDC Konteks perangkat output yang digunakan oleh objek ini CDC .

Keterangan

Objek CDC menyediakan fungsi anggota untuk bekerja dengan konteks perangkat, seperti tampilan atau printer, dan anggota untuk bekerja dengan konteks tampilan yang terkait dengan area klien jendela.

Lakukan semua menggambar melalui fungsi CDC anggota objek. Kelas ini menyediakan fungsi anggota untuk operasi konteks perangkat, bekerja dengan alat menggambar, pemilihan objek antarmuka perangkat grafis (GDI) jenis aman, dan bekerja dengan warna dan palet. Ini juga menyediakan fungsi anggota untuk mendapatkan dan mengatur atribut gambar, pemetaan, bekerja dengan viewport, bekerja dengan jangkauan jendela, mengonversi koordinat, bekerja dengan wilayah, kliping, garis gambar, dan menggambar bentuk sederhana, elipsis, dan poligon. Fungsi anggota juga disediakan untuk menggambar teks, bekerja dengan font, menggunakan escape printer, menggulir, dan memutar metafiles.

Untuk menggunakan CDC objek, buat, lalu panggil fungsi anggotanya yang paralel fungsi Windows yang menggunakan konteks perangkat.

Catatan

Di bawah Windows 95/98, semua koordinat layar dibatasi hingga 16 bit. Oleh karena itu, fungsi anggota yang int CDC diteruskan harus terletak pada rentang -32768 hingga 32767.

Untuk penggunaan tertentu, Pustaka Kelas Microsoft Foundation menyediakan beberapa kelas yang berasal dari CDC . CPaintDC merangkum panggilan ke BeginPaint dan EndPaint. CClientDC mengelola konteks tampilan yang terkait dengan area klien jendela. CWindowDC mengelola konteks tampilan yang terkait dengan seluruh jendela, termasuk bingkai dan kontrolnya. CMetaFileDC mengaitkan konteks perangkat dengan metafile.

CDC menyediakan dua fungsi anggota, GetLayout dan SetLayout, untuk mengembalikan tata letak konteks perangkat, yang tidak mewarisi tata letaknya dari jendela. Orientasi kanan-ke-kiri seperti itu diperlukan untuk aplikasi yang ditulis untuk budaya, seperti Arab atau Ibrani, di mana tata letak karakter bukan standar Eropa.

CDC berisi dua konteks perangkat, m_hDC dan m_hAttribDC, yang, pada pembuatan CDC objek, lihat perangkat yang sama. CDC mengarahkan semua panggilan GDI output ke m_hDC dan sebagian besar atribut panggilan GDI ke m_hAttribDC. (Contoh panggilan atribut adalah GetTextColor, sementara SetTextColor adalah panggilan output.)

Misalnya, kerangka kerja menggunakan kedua konteks perangkat ini untuk mengimplementasikan CMetaFileDC objek yang akan mengirim output ke metafile saat membaca atribut dari perangkat fisik. Pratinjau cetak diimplementasikan dalam kerangka kerja dengan cara yang sama. Anda juga dapat menggunakan dua konteks perangkat dengan cara yang sama dalam kode khusus aplikasi Anda.

Ada kalanya Anda mungkin memerlukan informasi metrik teks dari m_hDC konteks perangkat dan m_hAttribDC . Pasangan fungsi berikut menyediakan kemampuan ini:

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

Untuk informasi selengkapnya tentang CDC, lihat Konteks Perangkat.

Hierarki Warisan

CObject

CDC

Persyaratan

Header: afxwin.h

CDC::AbortDoc

Mengakhiri pekerjaan cetak saat ini dan menghapus semua yang telah ditulis aplikasi ke perangkat sejak panggilan terakhir ke StartDoc fungsi anggota.

int AbortDoc();

Tampilkan Nilai

Nilai yang lebih besar dari atau sama dengan 0 jika berhasil, atau nilai negatif jika terjadi kesalahan. Daftar berikut ini memperlihatkan nilai kesalahan umum dan artinya:

  • SP_ERROR Kesalahan umum.

  • SP_OUTOFDISK Ruang disk tidak cukup saat ini tersedia untuk penampungan, dan tidak ada lagi ruang yang akan tersedia.

  • SP_OUTOFMEMORY Memori tidak cukup tersedia untuk penampungan.

  • SP_USERABORT Pengguna mengakhiri pekerjaan melalui Print Manager.

Keterangan

Fungsi anggota ini menggantikan ABORTDOC escape printer.

AbortDoc harus digunakan untuk mengakhiri hal-hal berikut:

  • Operasi pencetakan yang tidak menentukan fungsi batalkan menggunakan SetAbortProc.

  • Operasi pencetakan yang belum mencapai panggilan pertama NEWFRAME atau NEXTBAND escape mereka.

Jika aplikasi mengalami kesalahan pencetakan atau operasi cetak yang dibatalkan, aplikasi tidak boleh mencoba mengakhiri operasi dengan menggunakan EndDoc fungsi atau AbortDoc anggota kelas CDC. GDI secara otomatis mengakhiri operasi sebelum mengembalikan nilai kesalahan.

Jika aplikasi menampilkan kotak dialog untuk memungkinkan pengguna membatalkan operasi cetak, aplikasi harus memanggil AbortDoc sebelum menghancurkan kotak dialog.

Jika Print Manager digunakan untuk memulai pekerjaan cetak, panggilan AbortDoc akan menghapus seluruh pekerjaan spool—printer tidak menerima apa pun. Jika Print Manager tidak digunakan untuk memulai pekerjaan cetak, data mungkin telah dikirim ke printer sebelum AbortDoc dipanggil. Dalam hal ini, pengandar pencetak akan mengatur ulang pencetak (jika memungkinkan) dan menutup pekerjaan cetak.

Contoh

Lihat contoh untuk CDC::StartDoc.

CDC::AbortPath

Menutup dan membuang jalur apa pun dalam konteks perangkat.

BOOL AbortPath();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Jika ada braket jalur terbuka dalam konteks perangkat, tanda kurung siku jalur ditutup dan jalur dibuang. Jika ada jalur tertutup dalam konteks perangkat, jalur akan dibuang.

CDC::AddMetaFileComment

Menyalin komentar dari buffer ke dalam metafile format yang disempurnakan tertentu.

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

Parameter

nDataSize
Menentukan panjang buffer komentar, dalam byte.

pCommentData
Arahkan ke buffer yang berisi komentar.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Komentar dapat menyertakan informasi privat apa pun — misalnya, sumber gambar dan tanggal pembuatannya. Komentar harus dimulai dengan tanda tangan aplikasi, diikuti oleh data. Komentar tidak boleh berisi data khusus posisi. Data khusus posisi menentukan lokasi rekaman, dan tidak boleh disertakan karena satu metafile dapat disematkan dalam metafile lain. Fungsi ini hanya dapat digunakan dengan metafiles yang ditingkatkan.

CDC::AlphaBlend

Panggil fungsi anggota ini untuk menampilkan bitmap yang memiliki piksel transparan atau semitransparan.

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

Parameter

xDest
Menentukan koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.

yDest
Menentukan koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.

nDestWidth
Menentukan lebar, dalam unit logis, dari persegi panjang tujuan.

nDestHeight
Menentukan tinggi, dalam unit logis, dari persegi panjang tujuan.

pSrcDC
Penunjuk ke konteks perangkat sumber.

xSrc
Menentukan koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang sumber.

ySrc
Menentukan koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang sumber.

nSrcWidth
Menentukan lebar, dalam unit logis, dari persegi panjang sumber.

nSrcHeight
Menentukan tinggi, dalam unit logis, dari persegi panjang sumber.

blend
BLENDFUNCTION Menentukan struktur.

Tampilkan Nilai

TRUE jika berhasil; jika tidak FALSE.

Keterangan

Lihat AlphaBlend di Windows SDK untuk informasi selengkapnya.

CDC::AngleArc

Menggambar segmen garis dan busur.

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

Parameter

x
Menentukan koordinat x logis dari pusat lingkaran.

y
Menentukan koordinat y logis dari pusat lingkaran.

nRadius
Menentukan radius lingkaran dalam unit logis. Nilai ini harus positif.

fStartAngle
Menentukan sudut awal dalam derajat relatif terhadap sumbu x.

fSweepAngle
Menentukan sudut sapuan dalam derajat relatif terhadap sudut awal.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Segmen garis ditarik dari posisi saat ini ke awal busur. Busur digambar di sepanjang perimeter lingkaran dengan radius dan tengah yang diberikan. Panjang busur didefinisikan oleh sudut mulai dan sapuan yang diberikan.

AngleArc memindahkan posisi saat ini ke titik akhir busur. Busur yang digambar oleh fungsi ini mungkin tampak elips, tergantung pada transformasi saat ini dan mode pemetaan. Sebelum menggambar busur, fungsi ini menarik segmen garis dari posisi saat ini ke awal busur. Busur digambar dengan membangun lingkaran imajiner dengan radius yang ditentukan di sekitar titik tengah yang ditentukan. Titik awal busur ditentukan dengan mengukur berlawanan arah jarum jam dari sumbu x lingkaran dengan jumlah derajat dalam sudut awal. Titik akhir juga terletak sama dengan mengukur berlawanan arah jarum arah dari titik awal dengan jumlah derajat dalam sudut sapuan.

Jika sudut pembersihan lebih besar dari 360 derajat busur disapu beberapa kali. Fungsi ini menggambar garis dengan menggunakan pena saat ini. Gambarnya tidak terisi.

CDC::Arc

Menggambar busur elips.

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

Parameter

x1
Menentukan koordinat x dari sudut kiri atas persegi panjang pembatas (dalam unit logis).

y1
Menentukan koordinat y dari sudut kiri atas persegi panjang pembatas (dalam unit logis).

x2
Menentukan koordinat x dari sudut kanan bawah persegi panjang pembatas (dalam unit logis).

y2
Menentukan koordinat y dari sudut kanan bawah persegi panjang pembatas (dalam unit logis).

x3
Menentukan koordinat x titik yang menentukan titik awal busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

y3
Menentukan koordinat y dari titik yang menentukan titik awal busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

x4
Menentukan koordinat x titik yang menentukan titik akhir busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

y4
Menentukan koordinat y dari titik yang menentukan titik akhir busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

lpRect
Menentukan persegi panjang pembatas (dalam unit logis). Anda dapat meneruskan LPRECT objek atau CRect untuk parameter ini.

ptStart
Menentukan koordinat x dan y dari titik yang menentukan titik awal busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

ptEnd
Menentukan koordinat x dan y dari titik yang menentukan titik akhir busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Busur yang digambar dengan menggunakan fungsi adalah segmen elips yang ditentukan oleh persegi panjang pembatas yang ditentukan.

Titik awal aktual busur adalah titik di mana sinar ditarik dari tengah persegi panjang pembatas melalui titik awal yang ditentukan bersinggungan dengan elips. Titik akhir aktual busur adalah titik di mana sinar ditarik dari tengah persegi panjang pembatas melalui titik akhir yang ditentukan bersinggungan dengan elips. Busur digambar ke arah berlawanan arah jaga. Karena busur bukan figur tertutup, itu tidak terisi. Lebar dan tinggi persegi panjang harus lebih besar dari 2 unit dan kurang dari 32.767 unit.

Contoh

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

Menggambar busur elips.

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

Parameter

x1
Menentukan koordinat x dari sudut kiri atas persegi panjang pembatas (dalam unit logis).

y1
Menentukan koordinat y dari sudut kiri atas persegi panjang pembatas (dalam unit logis).

x2
Menentukan koordinat x dari sudut kanan bawah persegi panjang pembatas (dalam unit logis).

y2
Menentukan koordinat y dari sudut kanan bawah persegi panjang pembatas (dalam unit logis).

x3
Menentukan koordinat x titik yang menentukan titik awal busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

y3
Menentukan koordinat y dari titik yang menentukan titik awal busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

x4
Menentukan koordinat x titik yang menentukan titik akhir busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

y4
Menentukan koordinat y dari titik yang menentukan titik akhir busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

lpRect
Menentukan persegi panjang pembatas (dalam unit logis). Anda dapat meneruskan penunjuk ke RECT struktur data atau CRect objek untuk parameter ini.

ptStart
Menentukan koordinat x dan y dari titik yang menentukan titik awal busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur. Anda dapat meneruskan POINT struktur data atau CPoint objek untuk parameter ini.

ptEnd
Menentukan koordinat x dan y dari titik yang menentukan titik akhir busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur. Anda dapat meneruskan POINT struktur data atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi ini mirip CDC::Arcdengan , kecuali bahwa posisi saat ini diperbarui. Titik ( , x1y1) dan ( x2, y2) menentukan persegi panjang pembatas. Elips yang dibentuk oleh persegi panjang pembatas yang diberikan mendefinisikan kurva busur. Busur meluas berlawanan arah arah busur default) dari titik di mana busur berpotangan garis radial dari tengah persegi panjang pembatas ke ( *x3*, y3). Busur berakhir di mana ia bersinggungan dengan garis radial dari tengah persegi panjang pembatas ke ( x4, y4). Jika titik awal dan titik akhir sama, elips lengkap akan digambar.

Garis ditarik dari posisi saat ini ke titik awal busur. Jika tidak ada kesalahan yang terjadi, posisi saat ini diatur ke titik akhir busur. Busur digambar menggunakan pena saat ini; itu tidak terisi.

CDC::Attach

Gunakan fungsi anggota ini untuk melampirkan hDC CDC ke objek.

BOOL Attach(HDC hDC);

Parameter

hDC
Konteks perangkat Windows.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

hDC disimpan dalam m_hDCkonteks perangkat output, dan dalam m_hAttribDCkonteks perangkat atribut.

CDC::BeginPath

Membuka braket jalur dalam konteks perangkat.

BOOL BeginPath();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Setelah braket jalur terbuka, aplikasi dapat mulai memanggil fungsi gambar GDI untuk menentukan titik yang terletak di jalur. Aplikasi dapat menutup kurung siku jalur terbuka dengan memanggil EndPath fungsi anggota. Ketika aplikasi memanggil BeginPath, jalur sebelumnya dibuang.

Lihat BeginPath di Windows SDK untuk daftar fungsi gambar yang menentukan titik dalam jalur.

Contoh

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

Menyalin bitmap dari konteks perangkat sumber ke konteks perangkat saat ini.

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

Parameter

x
Menentukan koordinat x logis dari sudut kiri atas persegi panjang tujuan.

y
Menentukan koordinat y logis dari sudut kiri atas persegi panjang tujuan.

nWidth
Menentukan lebar (dalam unit logis) dari persegi panjang tujuan dan bitmap sumber.

nHeight
Menentukan tinggi (dalam unit logis) dari persegi panjang tujuan dan bitmap sumber.

pSrcDC
Penunjuk ke CDC objek yang mengidentifikasi konteks perangkat tempat bitmap akan disalin. Ini harus NULL jika dwRop menentukan operasi raster yang tidak menyertakan sumber.

xSrc
Menentukan koordinat x logis dari sudut kiri atas bitmap sumber.

ySrc
Menentukan koordinat y logis dari sudut kiri atas bitmap sumber.

dwRop
Menentukan operasi raster yang akan dilakukan. Kode operasi raster menentukan bagaimana GDI menggabungkan warna dalam operasi output yang melibatkan kuas saat ini, bitmap sumber yang mungkin, dan bitmap tujuan. Lihat BitBlt di Windows SDK untuk daftar kode operasi raster dan dwRop deskripsinya

Untuk daftar lengkap kode operasi raster, lihat Tentang Kode Operasi Raster di Windows SDK.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Aplikasi dapat menyelaraskan area jendela atau klien pada batas byte untuk memastikan bahwa BitBlt operasi terjadi pada persegi panjang yang selaras dengan byte. (Atur CS_BYTEALIGNWINDOW bendera atau CS_BYTEALIGNCLIENT saat Anda mendaftarkan kelas jendela.)

BitBlt operasi pada persegi panjang sejajar byte jauh lebih cepat daripada BitBlt operasi pada persegi panjang yang tidak diratakan byte. Jika Anda ingin menentukan gaya kelas seperti byte-alignment untuk konteks perangkat Anda sendiri, Anda harus mendaftarkan kelas jendela daripada mengandalkan kelas Microsoft Foundation untuk melakukannya untuk Anda. Gunakan fungsi AfxRegisterWndClassglobal .

GDI mengubah nWidth dan nHeight, sekali dengan menggunakan konteks perangkat tujuan, dan sekali dengan menggunakan konteks perangkat sumber. Jika tingkat yang dihasilkan tidak cocok, GDI menggunakan fungsi Windows StretchBlt untuk mengompresi atau meregangkan bitmap sumber seperlunya.

Jika bitmap tujuan, sumber, dan pola tidak memiliki format warna yang sama, BitBlt fungsi mengonversi bitmap sumber dan pola agar sesuai dengan tujuan. Warna latar depan dan latar belakang bitmap tujuan digunakan dalam konversi.

BitBlt Ketika fungsi mengonversi bitmap monokrom menjadi warna, fungsi mengatur bit putih (1) ke warna latar belakang dan bit hitam (0) ke warna latar depan. Warna latar depan dan latar belakang konteks perangkat tujuan digunakan. Untuk mengonversi warna ke monokrom, BitBlt atur piksel yang cocok dengan warna latar belakang menjadi putih dan mengatur semua piksel lain ke hitam. BitBlt menggunakan warna latar depan dan latar belakang konteks perangkat warna untuk mengonversi dari warna ke monokrom.

Tidak semua konteks perangkat mendukung BitBlt. Untuk memeriksa apakah konteks perangkat tertentu mendukung BitBlt, gunakan GetDeviceCaps fungsi anggota dan tentukan indeks RASTERCAPS.

Contoh

Lihat contoh untuk CDC::CreateCompatibleDC.

CDC::CDC

Membuat CDC objek.

CDC();

CDC::Chord

Menggambar akord (gambar tertutup yang dibatasi oleh persimpangan elips dan segmen garis).

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

Parameter

x1
Menentukan koordinat x dari sudut kiri atas persegi panjang pembatas akor (dalam unit logis).

y1
Menentukan koordinat y dari sudut kiri atas persegi panjang pembatas akor (dalam unit logis).

x2
Menentukan koordinat x dari sudut kanan bawah persegi panjang pembatas akor (dalam unit logis).

y2
Menentukan koordinat y dari sudut kanan bawah persegi panjang pembatas akor (dalam unit logis).

x3
Menentukan koordinat x titik yang menentukan titik awal akor (dalam unit logis).

y3
Menentukan koordinat y dari titik yang menentukan titik awal akor (dalam unit logis).

x4
Menentukan koordinat x titik yang menentukan titik akhir akor (dalam unit logis).

y4
Menentukan koordinat y dari titik yang menentukan titik akhir akor (dalam unit logis).

lpRect
Menentukan persegi panjang pembatas (dalam unit logis). Anda dapat meneruskan LPRECT objek atau CRect untuk parameter ini.

ptStart
Menentukan koordinat x dan y dari titik yang menentukan titik awal akor (dalam unit logis). Titik ini tidak harus berbohong persis pada akord. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

*ptEnd*
Menentukan koordinat x dan y dari titik yang menentukan titik akhir akor (dalam unit logis). Titik ini tidak harus berbohong persis pada akord. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Parameter ( , x1y1) dan ( x2, ) y2menentukan sudut kiri atas dan kanan bawah, masing-masing, dari persegi panjang yang membatasi elips yang merupakan bagian dari akord. Parameter ( x3, y3) dan ( x4, ) y4menentukan titik akhir baris yang berpotangan elips. Akord digambar dengan menggunakan pena yang dipilih dan diisi dengan menggunakan kuas yang dipilih.

Gambar yang Chord digambar oleh fungsi meluas hingga, tetapi tidak menyertakan koordinat kanan dan bawah. Ini berarti bahwa tinggi gambar adalah y2 - y1 dan lebar gambar adalah .x2 - x1

Contoh

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

Menutup gambar terbuka di jalur.

BOOL CloseFigure();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi menutup gambar dengan menggambar garis dari posisi saat ini ke titik pertama gambar (biasanya, titik yang ditentukan oleh panggilan terbaru ke MoveTo fungsi anggota) dan menghubungkan garis dengan menggunakan gaya gabungan baris. Jika gambar ditutup dengan menggunakan LineTo fungsi anggota alih-alih CloseFigure, batas akhir digunakan untuk membuat sudut alih-alih gabungan. CloseFigure hanya boleh dipanggil jika ada tanda kurung buka dalam konteks perangkat.

Gambar dalam jalur terbuka kecuali ditutup secara eksplisit dengan menggunakan fungsi ini. (Angka dapat terbuka meskipun titik saat ini dan titik awal angkanya sama.) Garis atau kurva apa pun yang ditambahkan ke jalur setelah CloseFigure memulai gambar baru.

CDC::CreateCompatibleDC

Membuat konteks perangkat memori yang kompatibel dengan perangkat yang ditentukan oleh pDC.

BOOL CreateCompatibleDC(CDC* pDC);

Parameter

pDC
Penunjuk ke konteks perangkat. Jika pDC adalah NULL, fungsi membuat konteks perangkat memori yang kompatibel dengan tampilan sistem.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Konteks perangkat memori adalah blok memori yang mewakili permukaan tampilan. Ini dapat digunakan untuk menyiapkan gambar dalam memori sebelum menyalinnya ke permukaan perangkat aktual dari perangkat yang kompatibel.

Saat konteks perangkat memori dibuat, GDI secara otomatis memilih bitmap stok monokrom 1 demi 1 untuknya. Fungsi output GDI dapat digunakan dengan konteks perangkat memori hanya jika bitmap telah dibuat dan dipilih ke dalam konteks tersebut.

Fungsi ini hanya dapat digunakan untuk membuat konteks perangkat yang kompatibel untuk perangkat yang mendukung operasi raster. CDC::BitBlt Lihat fungsi anggota untuk informasi mengenai transfer bit-block antar konteks perangkat. Untuk menentukan apakah konteks perangkat mendukung operasi raster, lihat RC_BITBLT kemampuan raster dalam fungsi CDC::GetDeviceCapsanggota .

Contoh

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

Membuat konteks perangkat untuk perangkat yang ditentukan.

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

Parameter

lpszDriverName
Menunjuk ke string yang dihentikan null yang menentukan nama file (tanpa ekstensi) driver perangkat (misalnya, "EPSON"). Anda juga dapat meneruskan CString objek untuk parameter ini.

lpszDeviceName
Menunjuk ke string yang dihentikan null yang menentukan nama perangkat tertentu yang akan didukung (misalnya, "EPSON FX-80"). Parameter lpszDeviceName digunakan jika modul mendukung lebih dari satu perangkat. Anda juga dapat meneruskan CString objek untuk parameter ini.

lpszOutput
Menunjuk ke string yang dihentikan null yang menentukan nama file atau perangkat untuk media output fisik (file atau port output). Anda juga dapat meneruskan CString objek untuk parameter ini.

lpInitData
Menunjuk ke struktur yang DEVMODE berisi data inisialisasi khusus perangkat untuk driver perangkat. Fungsi Windows DocumentProperties mengambil struktur ini yang diisi untuk perangkat tertentu. Parameter lpInitData harus NULL jika driver perangkat menggunakan inisialisasi default (jika ada) yang ditentukan oleh pengguna melalui Panel Kontrol.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

File PRINT.H header diperlukan jika DEVMODE struktur digunakan.

Nama perangkat mengikuti konvensi ini: titik dua akhir (:) disarankan, tetapi opsional. Windows menghapus titik dua yang mengakhiri sehingga nama perangkat yang diakhir dengan titik dua dipetakan ke port yang sama dengan nama yang sama tanpa titik dua. Nama driver dan port tidak boleh berisi spasi di depan atau belakang. Fungsi output GDI tidak dapat digunakan dengan konteks informasi.

CDC::CreateIC

Membuat konteks informasi untuk perangkat yang ditentukan.

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

Parameter

lpszDriverName
Menunjuk ke string yang dihentikan null yang menentukan nama file (tanpa ekstensi) driver perangkat (misalnya, "EPSON"). Anda dapat meneruskan CString objek untuk parameter ini.

lpszDeviceName
Menunjuk ke string yang dihentikan null yang menentukan nama perangkat tertentu yang akan didukung (misalnya, "EPSON FX-80"). Parameter lpszDeviceName digunakan jika modul mendukung lebih dari satu perangkat. Anda dapat meneruskan CString objek untuk parameter ini.

lpszOutput
Menunjuk ke string yang dihentikan null yang menentukan nama file atau perangkat untuk media output fisik (file atau port). Anda dapat meneruskan CString objek untuk parameter ini.

lpInitData
Menunjuk ke data inisialisasi khusus perangkat untuk driver perangkat. Parameter lpInitData harus NULL jika driver perangkat menggunakan inisialisasi default (jika ada) yang ditentukan oleh pengguna melalui Panel Kontrol. Lihat CreateDC format data untuk inisialisasi khusus perangkat.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Konteks informasi menyediakan cara cepat untuk mendapatkan informasi tentang perangkat tanpa membuat konteks perangkat.

Nama perangkat mengikuti konvensi ini: titik dua akhir (:) disarankan, tetapi opsional. Windows menghapus titik dua yang mengakhiri sehingga nama perangkat yang diakhir dengan titik dua dipetakan ke port yang sama dengan nama yang sama tanpa titik dua. Nama driver dan port tidak boleh berisi spasi di depan atau belakang. Fungsi output GDI tidak dapat digunakan dengan konteks informasi.

CDC::DeleteDC

Secara umum, jangan panggil fungsi ini; Destruktor akan melakukannya untuk Anda.

BOOL DeleteDC();

Tampilkan Nilai

Bukan nol jika fungsi berhasil diselesaikan; jika tidak, 0.

Keterangan

Fungsi DeleteDC anggota menghapus konteks perangkat Windows yang terkait dengan m_hDC dalam objek saat ini CDC . Jika objek ini CDC adalah konteks perangkat aktif terakhir untuk perangkat tertentu, semua sumber daya penyimpanan dan sistem yang digunakan oleh perangkat dirilis.

Aplikasi tidak boleh memanggil DeleteDC jika objek telah dipilih ke dalam konteks perangkat. Objek harus dipilih terlebih dahulu dari konteks perangkat sebelum dihapus.

Aplikasi tidak boleh menghapus konteks perangkat yang handelnya diperoleh dengan memanggil CWnd::GetDC. Sebagai gantinya, ia harus memanggil CWnd::ReleaseDC untuk membebaskan konteks perangkat. Kelas CClientDC dan CWindowDC disediakan untuk membungkus fungsionalitas ini.

Fungsi DeleteDC ini umumnya digunakan untuk menghapus konteks perangkat yang dibuat dengan CreateDC, , CreateICatau CreateCompatibleDC.

Contoh

Lihat contoh untuk CPrintDialog::GetPrinterDC.

CDC::DeleteTempMap

Dipanggil secara otomatis oleh CWinApp handler idle-time, DeleteTempMap menghapus objek sementara CDC yang dibuat oleh FromHandle, tetapi tidak menghancurkan handel konteks perangkat untuk hDCsementara yang terkait dengan CDC objek.

static void PASCAL DeleteTempMap();

CDC::Detach

Panggil fungsi ini untuk melepaskan m_hDC (konteks perangkat output) dari CDC objek dan atur dan m_hDC m_hAttribDC ke NULL.

HDC Detach();

Tampilkan Nilai

Konteks perangkat Windows.

CDC::DPtoHIMETRIC

Gunakan fungsi ini saat Anda memberikan HIMETRIC ukuran ke OLE, mengonversi piksel menjadi HIMETRIC.

void DPtoHIMETRIC(LPSIZE lpSize) const;

Parameter

lpSize
Menunjuk ke struktur atau CSize objek SIZE.

Keterangan

Jika mode pemetaan objek konteks perangkat adalah MM_LOENGLISH, , MM_HIENGLISHMM_LOMETRIC, atau MM_HIMETRIC, maka konversi didasarkan pada jumlah piksel dalam inci fisik. Jika mode pemetaan adalah salah satu mode lain yang tidak dibatasi (misalnya, MM_TEXT), maka konversi didasarkan pada jumlah piksel dalam inci logis.

CDC::DPtoLP

Mengonversi unit perangkat menjadi unit logis.

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

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

Parameter

lpPoints
Menunjuk ke array POINT struktur atau CPoint objek.

nCount
Jumlah titik dalam array.

lpRect
Menunjuk ke RECT struktur atau CRect objek. Parameter ini digunakan untuk kasus sederhana mengonversi satu persegi panjang dari titik perangkat ke titik logis.

lpSize
Menunjuk ke SIZE struktur atau CSize objek.

Keterangan

Fungsi ini memetakan koordinat setiap titik, atau dimensi ukuran, dari sistem koordinat perangkat ke sistem koordinat logis GDI. Konversi tergantung pada mode pemetaan saat ini dan pengaturan asal dan jangkauan untuk jendela dan viewport perangkat.

CDC::Draw3dRect

Panggil fungsi anggota ini untuk menggambar persegi tiga dimensi.

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

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

Parameter

lpRect
Menentukan persegi panjang pembatas (dalam unit logis). Anda dapat meneruskan penunjuk ke RECT struktur atau CRect objek untuk parameter ini.

clrTopLeft
Menentukan warna sisi atas dan kiri persegi tiga dimensi.

clrBottomRight
Menentukan warna sisi bawah dan kanan persegi tiga dimensi.

x
Menentukan koordinat x logis dari sudut kiri atas persegi tiga dimensi.

y
Menentukan koordinat y logis dari sudut kiri atas persegi tiga dimensi.

cx
Menentukan lebar persegi tiga dimensi.

cy
Menentukan tinggi persegi tiga dimensi.

Keterangan

Persegi panjang akan digambar dengan sisi atas dan kiri dalam warna yang ditentukan oleh clrTopLeft dan sisi bawah dan kanan dalam warna yang ditentukan oleh clrBottomRight.

Contoh

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

Panggil fungsi anggota ini berulang kali untuk menggambar ulang persegi panjang seret.

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

Parameter

lpRect
Menunjuk ke RECT struktur atau CRect objek yang menentukan koordinat logis persegi panjang — dalam hal ini, posisi akhir persegi panjang yang digambar ulang.

size
Menentukan perpindahan dari sudut kiri atas batas luar ke sudut kiri atas batas dalam (yaitu, ketebalan batas) persegi panjang.

lpRectLast
Menunjuk ke RECT struktur atau CRect objek yang menentukan koordinat logis posisi persegi panjang — dalam hal ini, posisi asli persegi panjang yang sedang digambar ulang.

sizeLast
Menentukan perpindahan dari sudut kiri atas batas luar ke sudut kiri atas batas dalam (yaitu, ketebalan batas) dari persegi panjang asli yang digambarkan ulang.

pBrush
Penunjuk ke objek kuas. Atur ke NULL untuk menggunakan sikat halftone default.

pBrushLast
Pointer ke objek kuas terakhir yang digunakan. Atur ke NULL untuk menggunakan sikat halftone default.

Keterangan

Panggil dalam perulangan saat Anda mengambil sampel posisi mouse, untuk memberikan umpan balik visual. Saat Anda memanggil DrawDragRect, persegi panjang sebelumnya dihapus dan yang baru digambar. Misalnya, saat pengguna menyeret persegi panjang di seluruh layar, DrawDragRect akan menghapus persegi panjang asli dan menggambar ulang persegi panjang baru di posisi barunya. Secara default, DrawDragRect menggambar persegi panjang dengan menggunakan kuas halftone untuk menghilangkan kedinginan dan untuk menciptakan tampilan persegi panjang yang bergerak dengan lancar.

Pertama kali Anda memanggil DrawDragRect, parameternya lpRectLast harus NULL.

CDC::DrawEdge

Panggil fungsi anggota ini untuk menggambar tepi persegi panjang dari jenis dan gaya yang ditentukan.

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

Parameter

lpRect
Penunjuk ke RECT struktur yang berisi koordinat logis persegi panjang.

nEdge
Menentukan jenis tepi dalam dan luar yang akan digambar. Parameter ini harus merupakan kombinasi dari satu bendera batas dalam dan satu bendera batas luar. Lihat DrawEdge di Windows SDK untuk tabel jenis parameter.

nFlags
Bendera yang menentukan tipe batas yang akan digambar. Lihat DrawEdge di Windows SDK untuk tabel nilai parameter. Untuk garis diagonal, BF_RECT bendera menentukan titik akhir vektor yang dibatasi oleh parameter persegi panjang.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

CDC::DrawEscape

Mengakses kemampuan menggambar tampilan video yang tidak tersedia secara langsung melalui antarmuka perangkat grafis (GDI).

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

Parameter

nEscape
Menentukan fungsi escape yang akan dilakukan.

nInputSize
Menentukan jumlah byte data yang ditujukkan oleh lpszInputData parameter .

lpszInputData
Menunjuk ke struktur input yang diperlukan untuk escape yang ditentukan.

Tampilkan Nilai

Menentukan hasil fungsi. Lebih besar dari nol jika berhasil, kecuali untuk QUERYESCSUPPORT escape gambar, yang memeriksa implementasi saja; atau nol jika escape tidak diimplementasikan; atau kurang dari nol jika terjadi kesalahan.

Keterangan

Ketika aplikasi memanggil DrawEscape, data yang diidentifikasi oleh nInputSize dan lpszInputData diteruskan langsung ke driver tampilan yang ditentukan.

CDC::DrawFocusRect

Menggambar persegi panjang dalam gaya yang digunakan untuk menunjukkan bahwa persegi memiliki fokus.

void DrawFocusRect(LPCRECT lpRect);

Parameter

lpRect
Menunjuk ke RECT struktur atau CRect objek yang menentukan koordinat logis persegi panjang yang akan digambar.

Keterangan

Karena ini adalah fungsi Boolean XOR (^), memanggil fungsi ini untuk kedua kalinya dengan persegi panjang yang sama akan menghapus persegi panjang dari tampilan. Persegi panjang yang digambar oleh fungsi ini tidak dapat digulir. Untuk menggulir area yang berisi persegi panjang yang digambar oleh fungsi ini, pertama-tama panggil DrawFocusRect untuk menghapus persegi panjang dari tampilan, lalu gulir area, lalu panggil DrawFocusRect lagi untuk menggambar persegi panjang di posisi baru.

Perhatian

DrawFocusRect hanya berfungsi dalam MM_TEXT mode. Dalam mode lain, fungsi ini tidak menggambar persegi panjang fokus dengan benar, tetapi tidak mengembalikan nilai kesalahan.

CDC::DrawFrameControl

Panggil fungsi anggota ini untuk menggambar kontrol bingkai dari jenis dan gaya yang ditentukan.

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

Parameter

lpRect
Penunjuk ke RECT struktur yang berisi koordinat logis persegi panjang.

nType
Menentukan tipe kontrol bingkai yang akan digambar. uType Lihat parameter di DrawFrameControl di Windows SDK untuk daftar nilai parameter ini yang mungkin.

nState
Menentukan status awal kontrol bingkai. Dapat berupa satu atau beberapa nilai yang dijelaskan untuk uState parameter di DrawFrameControl dalam Windows SDK. nState Gunakan nilai DFCS_ADJUSTRECT untuk menyesuaikan persegi panjang pembatas untuk mengecualikan tepi sekitar tombol tekan.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Dalam beberapa kasus, nState tergantung pada nType parameter . Daftar berikut ini memperlihatkan hubungan antara empat nType nilai dan nState:

  • DFC_BUTTON

    • DFCS_BUTTON3STATE Tombol tiga status

    • DFCS_BUTTONCHECK Kotak centang

    • DFCS_BUTTONPUSH Tombol tekan

    • DFCS_BUTTONRADIO Tombol radio

    • DFCS_BUTTONRADIOIMAGE Gambar untuk tombol radio (gambar kebutuhan tidak sama)

    • DFCS_BUTTONRADIOMASK Masker untuk tombol radio (nonsquare membutuhkan masker)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE Tombol Tutup

    • DFCS_CAPTIONHELP Tombol Bantuan

    • DFCS_CAPTIONMAX Tombol Maksimalkan

    • DFCS_CAPTIONMIN Tombol Minimalkan

    • DFCS_CAPTIONRESTORE Tombol Pulihkan

  • DFC_MENU

    • DFCS_MENUARROW Panah submenu

    • DFCS_MENUBULLET Peluru

    • DFCS_MENUCHECK Tanda centang

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX Bilah gulir kotak kombo

    • DFCS_SCROLLDOWN Panah bawah bilah gulir

    • DFCS_SCROLLLEFT Panah kiri bilah gulir

    • DFCS_SCROLLRIGHT Panah kanan bilah gulir

    • DFCS_SCROLLSIZEGRIP Pegangan ukuran di sudut kanan bawah jendela

    • DFCS_SCROLLUP Panah atas bilah gulir

Contoh

Kode ini menggambar pencengkeram ukuran di sudut kanan bawah jendela Anda. Ini sesuai untuk OnPaint handler kotak dialog, yang tidak memiliki gaya dan biasanya tidak berisi kontrol lain (seperti bilah status) yang mungkin memberinya pencengkeram ukuran.

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

Gambar ikon pada perangkat yang diwakili oleh objek saat ini CDC .

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

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

Parameter

x
Menentukan koordinat x logis dari sudut kiri atas ikon.

y
Menentukan koordinat y logis dari sudut kiri atas ikon.

hIcon
Mengidentifikasi handel ikon yang akan digambar.

point
Menentukan koordinat x- dan y logis dari sudut kiri atas ikon. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil diselesaikan; jika tidak, 0.

Keterangan

Fungsi menempatkan sudut kiri atas ikon di lokasi yang ditentukan oleh x dan y. Lokasi tunduk pada mode pemetaan konteks perangkat saat ini.

Sumber daya ikon harus telah dimuat sebelumnya dengan menggunakan fungsi CWinApp::LoadIcon, , CWinApp::LoadStandardIconatau CWinApp::LoadOEMIcon. MM_TEXT Mode pemetaan harus dipilih sebelum menggunakan fungsi ini.

Contoh

Lihat contoh untuk CWnd::IsIconic.

CDC::DrawState

Panggil fungsi anggota ini untuk menampilkan gambar dan menerapkan efek visual untuk menunjukkan status, seperti status dinonaktifkan atau default.

Catatan

Untuk semua nFlag status kecuali DSS_NORMAL, gambar dikonversi ke monokrom sebelum efek visual diterapkan.

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

Parameter

pt
Menentukan lokasi gambar.

size
Menentukan ukuran gambar.

hBitmap
Handel ke bitmap.

nFlags
Bendera yang menentukan jenis dan status gambar. Lihat DrawState di Windows SDK untuk kemungkinan jenis dan status nFlags .

hBrush
Pegangan ke kuas.

pBitmap
Penunjuk ke CBitmap objek.

pBrush
Penunjuk ke CBrush objek.

hIcon
Handel ke ikon.

lpszText
Penunjuk ke teks.

bPrefixText
Teks yang mungkin berisi mnemonic akselerator. Parameter lData menentukan alamat string, dan nTextLen parameter menentukan panjangnya. Jika nTextLen adalah 0, string diasumsikan sebagai null-dihentikan.

nTextLen
Panjang string teks yang ditujukkan oleh lpszText. Jika nTextLen adalah 0, string diasumsikan sebagai null-dihentikan.

lpDrawProc
Penunjuk ke fungsi panggilan balik yang digunakan untuk merender gambar. Parameter ini diperlukan jika jenis gambar di nFlags adalah DST_COMPLEX. Ini opsional dan bisa jika NULL jenis gambar adalah DST_TEXT. Untuk semua jenis gambar lainnya, parameter ini diabaikan. Untuk informasi selengkapnya tentang fungsi panggilan balik, lihat DrawStateProc fungsi di Windows SDK.

lData
Menentukan informasi tentang gambar. Arti parameter ini tergantung pada jenis gambar.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

CDC::DrawText

Panggil fungsi anggota ini untuk memformat teks dalam persegi panjang yang diberikan. Untuk menentukan opsi pemformatan lainnya, gunakan CDC::DrawTextEx.

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

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

Parameter

lpszString
Menunjuk ke string yang akan digambar. Jika nCount adalah -1, string harus dihentikan null.

nCount
Menentukan jumlah karakter dalam string. Jika nCount adalah -1, maka lpszString diasumsikan sebagai penunjuk panjang ke string yang dihentikan null dan DrawText menghitung jumlah karakter secara otomatis.

lpRect
Arahkan ke RECT struktur atau CRect objek yang berisi persegi panjang (dalam koordinat logis) tempat teks akan diformat.

str
Objek CString yang berisi karakter yang ditentukan untuk digambar.

nFormat
Menentukan metode pemformatan teks. Ini bisa menjadi kombinasi nilai apa pun yang dijelaskan untuk uFormat parameter di DrawText dalam Windows SDK. (gabungkan menggunakan operator BITWISE OR):

Catatan

Beberapa uFormat kombinasi bendera dapat menyebabkan string yang diteruskan dimodifikasi. Menggunakan DT_MODIFYSTRING dengan salah satu DT_END_ELLIPSIS atau DT_PATH_ELLIPSIS dapat menyebabkan string dimodifikasi, menyebabkan pernyataan dalam penimpaan CString . Nilai DT_CALCRECT, , DT_EXTERNALLEADINGDT_INTERNAL, DT_NOCLIP, dan DT_NOPREFIX tidak dapat digunakan dengan DT_TABSTOP nilai .

Tampilkan Nilai

Tinggi teks jika fungsi berhasil.

Keterangan

Ini memformat teks dengan memperluas tab ke spasi yang sesuai, meratakan teks ke kiri, kanan, atau tengah persegi panjang yang diberikan, dan memecah teks menjadi baris yang pas di dalam persegi panjang tertentu. Jenis pemformatan ditentukan oleh nFormat.

Fungsi anggota ini menggunakan font, warna teks, dan warna latar belakang konteks perangkat yang dipilih untuk menggambar teks. DT_NOCLIP Kecuali format digunakan, DrawText klip teks sehingga teks tidak muncul di luar persegi panjang yang diberikan. Semua pemformatan diasumsikan memiliki beberapa baris kecuali DT_SINGLELINE format diberikan.

Jika font yang dipilih terlalu besar untuk persegi panjang yang ditentukan, DrawText fungsi anggota tidak mencoba mengganti font yang lebih kecil.

DT_CALCRECT Jika bendera ditentukan, persegi panjang yang ditentukan oleh lpRect akan diperbarui untuk mencerminkan lebar dan tinggi yang diperlukan untuk menggambar teks.

Jika bendera perataan TA_UPDATECP teks telah diatur (lihat CDC::SetTextAlign), DrawText akan menampilkan teks yang dimulai pada posisi saat ini, bukan di sebelah kiri persegi panjang yang diberikan. DrawText tidak akan membungkus teks ketika TA_UPDATECP bendera telah diatur (artinya, DT_WORDBREAK bendera tidak akan berpengaruh).

Warna teks dapat diatur oleh CDC::SetTextColor.

CDC::DrawTextEx

Memformat teks dalam persegi panjang yang diberikan.

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

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

Parameter

lpszString
Menunjuk ke string yang akan digambar. Jika nCount adalah -1, string harus dihentikan null.

nCount
Menentukan jumlah karakter dalam string. Jika nCount adalah -1, maka lpszString diasumsikan sebagai penunjuk panjang ke string yang dihentikan null dan DrawText menghitung jumlah karakter secara otomatis.

lpRect
Arahkan ke RECT struktur atau CRect objek yang berisi persegi panjang (dalam koordinat logis) tempat teks akan diformat.

str
Objek CString yang berisi karakter yang ditentukan untuk digambar.

nFormat
Menentukan metode pemformatan teks. Ini bisa menjadi kombinasi nilai apa pun yang dijelaskan untuk uFormat parameter di DrawText dalam Windows SDK. (Gabungkan menggunakan bitwise Operator OR ):

Catatan

Beberapa uFormat kombinasi bendera dapat menyebabkan string yang diteruskan dimodifikasi. Menggunakan DT_MODIFYSTRING dengan salah satu DT_END_ELLIPSIS atau DT_PATH_ELLIPSIS dapat menyebabkan string dimodifikasi, menyebabkan pernyataan dalam penimpaan CString . Nilai DT_CALCRECT, , DT_EXTERNALLEADINGDT_INTERNAL, DT_NOCLIP, dan DT_NOPREFIX tidak dapat digunakan dengan DT_TABSTOP nilai .

lpDTParams
Penunjuk DRAWTEXTPARAMS ke struktur yang menentukan lebih banyak opsi pemformatan. Parameter ini dapat berupa NULL.

Keterangan

Ini memformat teks dengan memperluas tab ke spasi yang sesuai, meratakan teks ke kiri, kanan, atau tengah persegi panjang yang diberikan, dan memecah teks menjadi baris yang pas di dalam persegi panjang tertentu. Jenis pemformatan ditentukan oleh nFormat dan lpDTParams. Untuk informasi selengkapnya, lihat CDC::DrawText dan DrawTextEx di Windows SDK.

Warna teks dapat diatur oleh CDC::SetTextColor.

CDC::Ellipse

Menggambar elips.

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

BOOL Ellipse(LPCRECT lpRect);

Parameter

x1
Menentukan koordinat x logis dari sudut kiri atas persegi panjang pembatas elips.

y1
Menentukan koordinat y logis dari sudut kiri atas persegi panjang pembatas elips.

x2
Menentukan koordinat x logis dari sudut kanan bawah persegi panjang pembatas elips.

y2
Menentukan koordinat y logis dari sudut kanan bawah persegi panjang pembatas elips.

lpRect
Menentukan persegi panjang pembatas elips. Anda juga dapat meneruskan CRect objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Bagian tengah elips adalah pusat persegi panjang pembatas yang ditentukan oleh x1, , y1, x2dan y2, atau lpRect. Elips digambar dengan pena saat ini, dan interiornya diisi dengan kuas saat ini.

Gambar yang digambar oleh fungsi ini meluas hingga, tetapi tidak termasuk, koordinat kanan dan bawah. Ini berarti bahwa tinggi gambar adalah y2 - y1 dan lebar gambar adalah .x2 - x1

Jika lebar atau tinggi persegi panjang pembatas adalah 0, tidak ada elips yang digambar.

CDC::EndDoc

Mengakhiri pekerjaan cetak yang dimulai dengan panggilan ke StartDoc fungsi anggota.

int EndDoc();

Tampilkan Nilai

Lebih besar dari atau sama dengan 0 jika fungsi berhasil, atau nilai negatif jika terjadi kesalahan.

Keterangan

Fungsi anggota ini menggantikan ENDDOC escape printer, dan harus segera dipanggil setelah menyelesaikan pekerjaan cetak yang berhasil.

Jika aplikasi mengalami kesalahan pencetakan atau operasi cetak yang dibatalkan, aplikasi tidak boleh mencoba mengakhiri operasi dengan menggunakan EndDoc atau AbortDoc. GDI secara otomatis mengakhiri operasi sebelum mengembalikan nilai kesalahan.

Fungsi ini tidak boleh digunakan di dalam metafiles.

Contoh

Lihat contoh untuk CDC::StartDoc.

CDC::EndPage

Menginformasikan perangkat bahwa aplikasi telah selesai menulis ke halaman.

int EndPage();

Tampilkan Nilai

Lebih besar dari atau sama dengan 0 jika fungsi berhasil, atau nilai negatif jika terjadi kesalahan.

Keterangan

Fungsi anggota ini biasanya digunakan untuk mengarahkan driver perangkat untuk melanjutkan ke halaman baru.

Fungsi anggota ini menggantikan NEWFRAME escape printer. Tidak seperti NEWFRAME, fungsi ini selalu dipanggil setelah mencetak halaman.

Contoh

Lihat contoh untuk CDC::StartDoc.

CDC::EndPath

Menutup tanda kurung jalur dan memilih jalur yang ditentukan oleh tanda kurung ke dalam konteks perangkat.

BOOL EndPath();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Contoh

Lihat contoh untuk CDC::BeginPath.

CDC::EnumObjects

Menghitung pena dan kuas yang tersedia dalam konteks perangkat.

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

Parameter

nObjectType
Menentukan jenis objek. Ini dapat memiliki nilai OBJ_BRUSH atau OBJ_PEN.

lpfn
Adalah alamat instans prosedur dari fungsi panggilan balik yang disediakan aplikasi. Lihat bagian "Komentar" di bawah ini.

lpData
Menunjuk ke data yang disediakan aplikasi. Data diteruskan ke fungsi panggilan balik bersama dengan informasi objek.

Tampilkan Nilai

Menentukan nilai terakhir yang dikembalikan oleh fungsi panggilan balik. Artinya ditentukan pengguna.

Keterangan

Untuk setiap objek dari jenis tertentu, fungsi panggilan balik yang Anda lewati dipanggil dengan informasi untuk objek tersebut. Sistem memanggil fungsi panggilan balik sampai tidak ada lagi objek atau fungsi panggilan balik mengembalikan 0.

Fitur baru Microsoft Visual C++ memungkinkan Anda menggunakan fungsi biasa saat fungsi diteruskan ke EnumObjects. Alamat yang diteruskan EnumObjects ke adalah penunjuk ke fungsi yang diekspor dengan EXPORT dan dengan konvensi panggilan Pascal. Dalam aplikasi mode perlindungan, Anda tidak perlu membuat fungsi ini dengan fungsi Windows MakeProcInstance atau membebaskan fungsi setelah digunakan dengan FreeProcInstance fungsi Windows.

Anda juga tidak perlu mengekspor nama fungsi dalam EXPORTS pernyataan dalam file definisi modul aplikasi Anda. Anda dapat menggunakan pengubah EXPORT fungsi, seperti dalam

INT CALLBACK EXPORT AFunction (LPSTR, LPSTR);

menyebabkan pengkompilasi memancarkan catatan ekspor yang tepat untuk ekspor berdasarkan nama tanpa alias. Ini berfungsi untuk sebagian besar kebutuhan. Untuk beberapa kasus khusus, seperti mengekspor fungsi dengan ordinal atau alias ekspor, Anda masih perlu menggunakan EXPORTS pernyataan dalam file definisi modul.

Untuk mengkompilasi program Microsoft Foundation, Anda biasanya akan menggunakan /GA opsi pengkompilasi dan /GEs . Opsi /Gw pengkompilasi tidak digunakan dengan kelas Microsoft Foundation. (Jika Anda menggunakan fungsi MakeProcInstanceWindows , Anda harus secara eksplisit mentransmisikan penunjuk fungsi yang dikembalikan dari FARPROC ke jenis yang diperlukan dalam API ini.) Antarmuka pendaftaran panggilan balik sekarang aman jenis (Anda harus meneruskan penunjuk fungsi yang menunjuk ke jenis fungsi yang tepat untuk panggilan balik tertentu).

Selain itu, semua fungsi panggilan balik harus menjebak pengecualian Microsoft Foundation sebelum kembali ke Windows, karena pengecualian tidak dapat dilemparkan di seluruh batas panggilan balik. Untuk informasi selengkapnya tentang pengecualian, lihat artikel Pengecualian.

Contoh

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

Fungsi anggota ini praktis usang untuk pemrograman Win32.

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

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

Parameter

nEscape
Menentukan fungsi escape yang akan dilakukan.

Untuk daftar lengkap fungsi escape, lihat Escape di Windows SDK.

nCount
Menentukan jumlah byte data yang ditujukkan oleh lpszInData.

lpszInData
Menunjuk ke struktur data input yang diperlukan untuk escape ini.

lpOutData
Menunjuk ke struktur yang akan menerima output dari escape ini. Parameternya lpOutData adalah NULL jika tidak ada data yang dikembalikan.

nInputSize
Menentukan jumlah byte data yang ditujukkan oleh lpszInputData parameter .

lpszInputData
Menunjuk ke struktur input yang diperlukan untuk escape yang ditentukan.

nOutputSize
Menentukan jumlah byte data yang ditujukkan oleh lpszOutputData parameter .

lpszOutputData
Arahkan ke struktur yang menerima output dari escape ini. Parameter ini harus NULL jika tidak ada data yang dikembalikan.

Tampilkan Nilai

Nilai positif dikembalikan jika fungsi berhasil, kecuali untuk QUERYESCSUPPORT escape, yang hanya memeriksa implementasi. Nol dikembalikan jika escape tidak diimplementasikan. Nilai negatif dikembalikan jika terjadi kesalahan. Berikut ini adalah nilai kesalahan umum:

  • SP_ERROR Kesalahan umum.

  • SP_OUTOFDISK Ruang disk tidak cukup saat ini tersedia untuk penampungan, dan tidak ada lagi ruang yang akan tersedia.

  • SP_OUTOFMEMORY Memori tidak cukup tersedia untuk penampungan.

  • SP_USERABORT Pengguna mengakhiri pekerjaan melalui Print Manager.

Keterangan

Dari printer asli yang lolos, hanya QUERYESCSUPPORT didukung untuk aplikasi Win32. Semua escape printer lainnya kedaluarsa dan hanya didukung untuk kompatibilitas dengan aplikasi 16-bit.

Untuk pemrograman Win32, CDC sekarang menyediakan enam fungsi anggota yang menggantikan escape printer yang sesuai:

Selain itu, CDC::GetDeviceCaps mendukung indeks Win32 yang menggantikan printer lain lolos. Lihat GetDeviceCaps di Windows SDK untuk informasi selengkapnya.

Fungsi anggota ini memungkinkan aplikasi mengakses fasilitas perangkat tertentu yang tidak tersedia secara langsung melalui GDI.

Gunakan versi pertama jika aplikasi Anda menggunakan nilai escape yang telah ditentukan sebelumnya. Gunakan versi kedua jika aplikasi Anda menentukan nilai escape privat. Lihat ExtEscape di Windows SDK untuk informasi selengkapnya tentang versi kedua.

CDC::ExcludeClipRect

Membuat wilayah kliping baru yang terdiri dari wilayah kliping yang ada dikurangi persegi panjang yang ditentukan.

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

int ExcludeClipRect(LPCRECT lpRect);

Parameter

x1
Menentukan koordinat x logis dari sudut kiri atas persegi panjang.

y1
Menentukan koordinat y logis dari sudut kiri atas persegi panjang.

x2
Menentukan koordinat x logis dari sudut kanan bawah persegi.

y2
Menentukan koordinat y logis dari sudut kanan bawah persegi panjang.

lpRect
Menentukan persegi panjang. Bisa juga menjadi CRect objek.

Tampilkan Nilai

Menentukan jenis wilayah kliping baru. Ini bisa menjadi salah satu nilai berikut:

  • COMPLEXREGION Wilayah ini memiliki batas yang tumpang tindih.

  • ERROR Tidak ada wilayah yang dibuat.

  • NULLREGION Wilayah kosong.

  • SIMPLEREGION Wilayah ini tidak memiliki batas yang tumpang tindih.

Keterangan

Lebar persegi panjang, yang ditentukan oleh nilai x2 - x1absolut , tidak boleh melebihi 32.767 unit. Batas ini juga berlaku untuk tinggi persegi panjang.

CDC::ExcludeUpdateRgn

Mencegah gambar dalam area jendela yang tidak valid dengan mengecualikan wilayah yang diperbarui di jendela dari wilayah kliping yang CDC terkait dengan objek.

int ExcludeUpdateRgn(CWnd* pWnd);

Parameter

pWnd
Arahkan ke objek jendela yang jendelanya sedang diperbarui.

Tampilkan Nilai

Jenis wilayah yang dikecualikan. Ini bisa menjadi salah satu nilai berikut:

  • COMPLEXREGION Wilayah ini memiliki batas yang tumpang tindih.

  • ERROR Tidak ada wilayah yang dibuat.

  • NULLREGION Wilayah kosong.

  • SIMPLEREGION Wilayah ini tidak memiliki batas yang tumpang tindih.

CDC::ExtFloodFill

Mengisi area permukaan tampilan dengan kuas saat ini.

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

Parameter

x
Menentukan koordinat x logis dari titik di mana pengisian dimulai.

y
Menentukan koordinat y logis dari titik di mana pengisian dimulai.

crColor
Menentukan warna batas atau area yang akan diisi. Interpretasi crColor tergantung pada nilai nFillType.

nFillType
Menentukan jenis isian banjir yang akan dilakukan. Ini harus salah satu dari nilai berikut:

  • FLOODFILLBORDER Area isian dibatasi oleh warna yang ditentukan oleh crColor. Gaya ini identik dengan pengisian yang dilakukan oleh FloodFill.

  • FLOODFILLSURFACE Area isian ditentukan oleh warna yang ditentukan oleh crColor. Pengisian berlanjut ke luar ke segala arah selama warna ditemui. Gaya ini berguna untuk mengisi area dengan batas multiwarna.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0 jika pengisian tidak dapat diselesaikan, jika titik yang diberikan memiliki warna batas yang ditentukan oleh crColor (jika FLOODFILLBORDER diminta), jika titik yang diberikan tidak memiliki warna yang ditentukan oleh crColor (jika FLOODFILLSURFACE diminta), atau jika titik berada di luar wilayah kliping.

Keterangan

Fungsi anggota ini menawarkan lebih banyak fleksibilitas daripada FloodFill karena Anda dapat menentukan jenis isian di nFillType.

Jika nFillType diatur ke FLOODFILLBORDER, area diasumsikan sepenuhnya dibatasi oleh warna yang ditentukan oleh crColor. Fungsi dimulai pada titik yang ditentukan oleh x dan y dan mengisi semua arah ke batas warna.

Jika nFillType diatur ke FLOODFILLSURFACE, fungsi dimulai pada titik yang ditentukan oleh x dan y dan berlanjut ke semua arah, mengisi semua area yang berdekatan yang berisi warna yang ditentukan oleh crColor.

Hanya konteks dan perangkat perangkat memori yang mendukung dukungan ExtFloodFillteknologi raster-display . Untuk informasi selengkapnya, lihat GetDeviceCaps fungsi anggota.

CDC::ExtTextOut

Panggil fungsi anggota ini untuk menulis string karakter dalam wilayah persegi panjang menggunakan font yang saat ini dipilih.

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

Parameter

x
Menentukan koordinat x logis sel karakter untuk karakter pertama dalam string yang ditentukan.

y
Menentukan koordinat y logis dari bagian atas sel karakter untuk karakter pertama dalam string yang ditentukan.

nOptions
Menentukan jenis persegi panjang. Parameter ini bisa menjadi salah satu, keduanya, atau tidak satu pun dari nilai berikut:

  • ETO_CLIPPED Menentukan bahwa teks diklip ke persegi panjang.

  • ETO_OPAQUE Menentukan bahwa warna latar belakang saat ini mengisi persegi. (Anda dapat mengatur dan mengkueri warna latar belakang saat ini dengan SetBkColor fungsi anggota dan GetBkColor .)

lpRect
Menunjuk ke RECT struktur yang menentukan dimensi persegi panjang. Parameter ini dapat berupa NULL. Anda juga dapat meneruskan CRect objek untuk parameter ini.

lpszString
Arahkan ke string karakter yang ditentukan untuk digambar. Anda juga dapat meneruskan CString objek untuk parameter ini.

nCount
Menentukan jumlah karakter dalam string.

lpDxWidths
Menunjuk ke array nilai yang menunjukkan jarak antara asal sel karakter yang berdekatan. Misalnya, lpDxWidthsunit logis [ i] akan memisahkan asal sel i karakter dan sel i karakter + 1. Jika lpDxWidths adalah NULL, ExtTextOut menggunakan penspasian default antar karakter.

str
Objek CString yang berisi karakter yang ditentukan untuk digambar.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Wilayah persegi panjang dapat buram (diisi dengan warna latar belakang saat ini), dan dapat menjadi wilayah kliping.

Jika nOptions adalah 0 dan lpRect adalah NULL, fungsi menulis teks ke konteks perangkat tanpa menggunakan wilayah persegi panjang. Secara default, posisi saat ini tidak digunakan atau diperbarui oleh fungsi. Jika aplikasi perlu memperbarui posisi saat ini saat memanggil ExtTextOut, aplikasi dapat memanggil CDC fungsi SetTextAlign anggota dengan nFlags diatur ke TA_UPDATECP. Ketika bendera ini diatur, Windows mengabaikan x dan y pada panggilan berikutnya ke ExtTextOut dan menggunakan posisi saat ini sebagai gantinya. Ketika aplikasi menggunakan TA_UPDATECP untuk memperbarui posisi saat ini, ExtTextOut mengatur posisi saat ini baik ke akhir baris teks sebelumnya atau ke posisi yang ditentukan oleh elemen terakhir dari array yang ditunjukkan oleh lpDxWidths, mana yang lebih besar.

CDC::FillPath

Menutup tokoh terbuka di jalur saat ini dan mengisi interior jalur dengan menggunakan mode kuas dan pengisian poligon saat ini.

BOOL FillPath();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Setelah interiornya diisi, jalur dibuang dari konteks perangkat.

CDC::FillRect

Panggil fungsi anggota ini untuk mengisi persegi panjang tertentu menggunakan kuas yang ditentukan.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameter

lpRect
Menunjuk ke RECT struktur yang berisi koordinat logis persegi panjang yang akan diisi. Anda juga dapat meneruskan CRect objek untuk parameter ini.

pBrush
Mengidentifikasi kuas yang digunakan untuk mengisi persegi panjang.

Keterangan

Fungsi mengisi persegi panjang lengkap, termasuk batas kiri dan atas, tetapi tidak mengisi batas kanan dan bawah.

Kuas perlu dibuat menggunakan CBrush fungsi CreateHatchBrushanggota , , CreatePatternBrushdan CreateSolidBrush, atau diambil oleh GetStockObject fungsi Windows.

Saat mengisi persegi panjang yang ditentukan, FillRect tidak menyertakan sisi kanan dan bawah persegi. GDI mengisi persegi panjang hingga, tetapi tidak termasuk, kolom kanan dan baris bawah, terlepas dari mode pemetaan saat ini. FillRectmembandingkan nilai top, , bottomleft, dan right anggota persegi panjang yang ditentukan. Jika bottom kurang dari atau sama dengan top, atau jika right kurang dari atau sama dengan left, persegi panjang tidak digambar.

FillRect mirip CDC::FillSolidRectdengan ; bagaimanapun, FillRect mengambil kuas dan oleh karena itu dapat digunakan untuk mengisi persegi panjang dengan warna solid, warna terlarut, sikat yang menetas, atau pola. FillSolidRect hanya menggunakan warna solid (ditunjukkan oleh COLORREF parameter). FillRect biasanya lebih lambat dari FillSolidRect.

CDC::FillRgn

Mengisi wilayah yang ditentukan oleh pRgn dengan kuas yang ditentukan oleh pBrush.

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

Parameter

pRgn
Penunjuk ke wilayah yang akan diisi. Koordinat untuk wilayah tertentu ditentukan dalam unit logis.

pBrush
Mengidentifikasi kuas yang akan digunakan untuk mengisi wilayah.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Kuas harus dibuat menggunakan CBrush fungsi anggota , , CreatePatternBrushCreateSolidBrush, atau diambil oleh GetStockObjectCreateHatchBrush.

Contoh

Lihat contoh untuk CRgn::CreateRoundRectRgn.

CDC::FillSolidRect

Panggil fungsi anggota ini untuk mengisi persegi panjang yang diberikan dengan warna solid yang ditentukan.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

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

Parameter

lpRect
Menentukan persegi panjang pembatas (dalam unit logis). Anda dapat meneruskan penunjuk ke RECT struktur data atau CRect objek untuk parameter ini.

clr Menentukan warna yang akan digunakan untuk mengisi persegi.

x
Menentukan koordinat x logis dari sudut kiri atas persegi panjang.

y
Menentukan koordinat y logis dari sudut kiri atas persegi panjang tujuan.

cx
Menentukan lebar persegi panjang.

cy
Menentukan tinggi persegi panjang.

Keterangan

FillSolidRect sangat mirip CDC::FillRectdengan ; namun, FillSolidRect hanya menggunakan warna solid (ditunjukkan oleh COLORREF parameter), sambil FillRect mengambil kuas dan oleh karena itu dapat digunakan untuk mengisi persegi panjang dengan warna solid, warna kuas yang dihilangkan, kuas yang menetas, atau pola. FillSolidRect biasanya lebih cepat daripada FillRect.

Catatan

Saat Anda memanggil FillSolidRect, warna latar belakang, yang sebelumnya diatur menggunakan SetBkColor, diatur ke warna yang ditunjukkan oleh clr.

CDC::FlattenPath

Mengubah kurva apa pun di jalur yang dipilih ke konteks perangkat saat ini, dan mengubah setiap kurva menjadi urutan garis.

BOOL FlattenPath();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

CDC::FloodFill

Mengisi area permukaan tampilan dengan kuas saat ini.

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

Parameter

x
Menentukan koordinat x logis dari titik di mana pengisian dimulai.

y
Menentukan koordinat y logis dari titik di mana pengisian dimulai.

crColor
Menentukan warna batas.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0 dikembalikan jika pengisian tidak dapat diselesaikan, titik yang diberikan memiliki warna batas yang ditentukan oleh crColor, atau titik berada di luar wilayah kliping.

Keterangan

Area diasumsikan terikat seperti yang ditentukan oleh crColor. Fungsi FloodFill dimulai pada titik yang ditentukan oleh x dan y dan berlanjut ke semua arah ke batas warna.

Hanya konteks dan perangkat perangkat memori yang mendukung teknologi raster-display yang FloodFill mendukung fungsi anggota. Untuk informasi tentang RC_BITBLT kemampuan, lihat GetDeviceCaps fungsi anggota.

Fungsi ini ExtFloodFill memberikan kemampuan serupa tetapi fleksibilitas yang lebih besar.

CDC::FrameRect

Menggambar batas di sekitar persegi yang ditentukan oleh lpRect.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameter

lpRect
Menunjuk ke RECT struktur atau CRect objek yang berisi koordinat logis sudut kiri atas dan kanan bawah persegi panjang. Anda juga dapat meneruskan CRect objek untuk parameter ini.

pBrush
Mengidentifikasi kuas yang akan digunakan untuk merangkum persegi panjang.

Keterangan

Fungsi ini menggunakan kuas yang diberikan untuk menggambar batas. Lebar dan tinggi batas selalu 1 unit logis.

Jika koordinat persegi bottom panjang kurang dari atau sama dengan top, atau jika right kurang dari atau sama dengan left, persegi panjang tidak digambar.

Batas yang digambar oleh FrameRect berada dalam posisi yang sama dengan batas yang digambar oleh Rectangle fungsi anggota menggunakan koordinat yang sama (jika Rectangle menggunakan pena yang lebarnya 1 unit logis). Interior persegi panjang tidak diisi oleh FrameRect.

CDC::FrameRgn

Menggambar batas di sekitar wilayah yang ditentukan dengan pRgn menggunakan kuas yang ditentukan oleh pBrush.

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

Parameter

pRgn
Menunjuk ke CRgn objek yang mengidentifikasi wilayah yang akan diapit dalam batas. Koordinat untuk wilayah tertentu ditentukan dalam unit logis.

pBrush
Arahkan ke CBrush objek yang mengidentifikasi kuas yang akan digunakan untuk menggambar batas.

nWidth
Menentukan lebar batas dalam goresan kuas vertikal dalam unit perangkat.

nHeight
Menentukan tinggi batas dalam goresan kuas horizontal dalam unit perangkat.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Contoh

Lihat contoh untuk CRgn::CombineRgn.

CDC::FromHandle

Mengembalikan penunjuk ke CDC objek saat diberikan handel ke konteks perangkat.

static CDC* PASCAL FromHandle(HDC hDC);

Parameter

hDC
Berisi handel ke konteks perangkat Windows.

Tampilkan Nilai

Penunjuk mungkin bersifat sementara dan tidak boleh disimpan di luar penggunaan segera.

Keterangan

CDC Jika objek tidak dilampirkan ke handel, objek sementara CDC dibuat dan dilampirkan.

Contoh

Lihat contoh untuk CPrintDialog::GetPrinterDC.

CDC::GetArcDirection

Mengembalikan arah busur saat ini untuk konteks perangkat.

int GetArcDirection() const;

Tampilkan Nilai

Menentukan arah busur saat ini, jika berhasil. Berikut ini adalah nilai pengembalian yang valid:

  • AD_COUNTERCLOCKWISE Busur dan persegi panjang digambar berlawanan arah jaga.

  • AD_CLOCKWISE Arcs dan persegi panjang digambar searah jajaran jajaran.

Jika terjadi kesalahan, nilai yang dikembalikan adalah nol.

Keterangan

Fungsi busur dan persegi panjang menggunakan arah busur.

CDC::GetAspectRatioFilter

Mengambil pengaturan untuk filter rasio aspek saat ini.

CSize GetAspectRatioFilter() const;

Tampilkan Nilai

Objek CSize yang mewakili rasio aspek yang digunakan oleh filter rasio aspek saat ini.

Keterangan

Rasio aspek adalah rasio yang dibentuk oleh lebar dan tinggi piksel perangkat. Informasi tentang rasio aspek perangkat digunakan dalam pembuatan, pemilihan, dan tampilan font. Windows menyediakan filter khusus, filter rasio aspek, untuk memilih font yang dirancang untuk rasio aspek tertentu dari semua font yang tersedia. Filter menggunakan rasio aspek yang ditentukan oleh SetMapperFlags fungsi anggota.

CDC::GetBkColor

Mengembalikan warna latar belakang saat ini.

COLORREF GetBkColor() const;

Tampilkan Nilai

Nilai warna RGB.

Keterangan

Jika mode latar belakang adalah OPAQUE, sistem menggunakan warna latar belakang untuk mengisi celah dalam garis bergaya, kesenjangan antara garis yang menetas dalam kuas, dan latar belakang dalam sel karakter. Sistem ini juga menggunakan warna latar belakang saat mengonversi bitmap antara konteks perangkat warna dan monokrom.

CDC::GetBkMode

Mengembalikan mode latar belakang.

int GetBkMode() const;

Tampilkan Nilai

Mode latar belakang saat ini, yang dapat berupa OPAQUE atau TRANSPARENT.

Keterangan

Mode latar belakang menentukan apakah sistem menghapus warna latar belakang yang ada pada permukaan gambar sebelum menggambar teks, sikat menetas, atau gaya pena apa pun yang bukan garis padat.

CDC::GetBoundsRect

Mengembalikan persegi panjang batas akumulasi saat ini untuk konteks perangkat yang ditentukan.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

Parameter

lpRectBounds
Arahkan ke buffer yang akan menerima persegi panjang pembatas saat ini. Persegi dikembalikan dalam koordinat logis.

flags
Menentukan apakah persegi panjang pembatas akan dibersihkan setelah dikembalikan. Parameter ini harus nol atau diatur ke nilai berikut:

  • DCB_RESET Memaksa persegi panjang pembatas untuk dibersihkan setelah dikembalikan.

Tampilkan Nilai

Menentukan status persegi panjang pembatas saat ini jika fungsi berhasil. Ini bisa menjadi kombinasi dari nilai berikut:

  • DCB_ACCUMULATE Akumulasi persegi panjang pembatas terjadi.

  • DCB_RESET Persegi panjang pembatas kosong.

  • DCB_SET Persegi panjang pembatas tidak kosong.

  • DCB_ENABLE Akumulasi pembatas aktif.

  • DCB_DISABLE Akumulasi pembatas tidak aktif.

CDC::GetBrushOrg

Mengambil asal (dalam unit perangkat) dari kuas yang saat ini dipilih untuk konteks perangkat.

CPoint GetBrushOrg() const;

Tampilkan Nilai

Asal kuas saat ini (dalam unit perangkat) sebagai CPoint objek.

Keterangan

Asal kuas awal berada di (0,0) dari area klien. Nilai pengembalian menentukan titik ini dalam unit perangkat relatif terhadap asal jendela desktop.

CDC::GetCharacterPlacement

Mengambil berbagai jenis informasi pada string karakter.

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;

Parameter

lpString
Penunjuk ke string karakter untuk diproses.

nCount
Menentukan panjang string. Untuk versi ANSI, ini adalah BYTE hitungan dan untuk fungsi Unicode, ini adalah WORD hitungan. Untuk informasi selengkapnya, lihat GetCharacterPlacement .

nMaxExtent
Menentukan tingkat maksimum (dalam unit logis) tempat string diproses. Karakter yang, jika diproses, akan melebihi batas ini diabaikan. Komputasi untuk pengurutan atau array glyph yang diperlukan hanya berlaku untuk karakter yang disertakan. Parameter ini hanya digunakan jika GCP_MAXEXTENT nilai ditentukan dalam dwFlags parameter . Saat fungsi memproses string input, setiap karakter dan tingkatnya ditambahkan ke output, luas, dan array lainnya hanya jika tingkat total belum melebihi maksimum. Setelah batas tercapai, pemrosesan akan berhenti.

lpResults
Penunjuk GCP_Results ke struktur yang menerima hasil fungsi.

dwFlags
Menentukan cara memproses string ke dalam array yang diperlukan. Parameter ini dapat berupa satu atau beberapa nilai yang tercantum di bagian dwFlags GetCharacterPlacement topik.

str
Penunjuk ke objek yang CString akan diproses.

Tampilkan Nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah lebar dan tinggi string dalam unit logis.

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas fungsi GetCharacterPlacement, seperti yang dijelaskan dalam Windows SDK.

CDC::GetCharABCWidths

Mengambil lebar karakter berturut-turut dalam rentang tertentu dari font TrueType saat ini.

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

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

Parameter

nFirstChar
Menentukan karakter pertama dalam rentang karakter dari font saat ini yang lebar karakternya dikembalikan.

nLastChar
Menentukan karakter terakhir dalam rentang karakter dari font saat ini yang lebar karakternya dikembalikan.

lpabc
Menunjuk ke array ABC struktur yang menerima lebar karakter saat fungsi kembali. Array ini harus berisi setidaknya struktur sebanyak ABC karakter dalam rentang yang ditentukan oleh nFirstChar parameter dan nLastChar .

lpABCF
Menunjuk ke buffer yang disediakan aplikasi dengan array ABCFLOAT struktur untuk menerima lebar karakter saat fungsi kembali. Lebar yang dikembalikan oleh fungsi ini berada dalam format titik mengambang IEEE.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Lebar dikembalikan dalam unit logis. Fungsi ini hanya berhasil dengan font TrueType.

Rasterizer TrueType menyediakan penspasian karakter "ABC" setelah ukuran titik tertentu dipilih. Penspasian "A" adalah jarak yang ditambahkan ke posisi saat ini sebelum menempatkan glyph. Penspasian "B" adalah lebar bagian hitam dari glyph. Penspasian "C" ditambahkan ke posisi saat ini untuk memperhitungkan spasi kosong di sebelah kanan glyph. Total lebar lanjutan diberikan oleh A + B + C.

GetCharABCWidths Ketika fungsi anggota mengambil lebar "A" atau "C" negatif untuk karakter, karakter tersebut mencakup underhang atau overhang.

Untuk mengonversi lebar ABC ke unit desain font, aplikasi harus membuat font yang tingginya (seperti yang ditentukan dalam lfHeight anggota LOGFONT struktur) sama dengan nilai yang disimpan dalam ntmSizeEM anggota NEWTEXTMETRIC struktur. (Nilai ntmSizeEM anggota dapat diambil dengan memanggil EnumFontFamilies fungsi Windows.)

Lebar ABC dari karakter default digunakan untuk karakter yang berada di luar rentang font yang saat ini dipilih.

Untuk mengambil lebar karakter dalam font non-TrueType, aplikasi harus menggunakan GetCharWidth fungsi Windows.

CDC::GetCharABCWidthsI

Mengambil lebar, dalam unit logis, indeks glyph berturut-turut dalam rentang tertentu dari font TrueType saat ini.

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

Parameter

giFirst
Menentukan indeks glyph pertama dalam grup indeks glyph berturut-turut dari font saat ini. Parameter ini hanya digunakan jika pgi parameternya adalah NULL.

cgi
Menentukan jumlah indeks glyph.

pgi
Penunjuk ke array yang berisi indeks glyph. Jika nilainya adalah NULL, giFirst parameter digunakan sebagai gantinya. Parameter cgi menentukan jumlah indeks glyph dalam array ini.

lpabc
Penunjuk ke array ABC struktur yang menerima lebar karakter. Array ini harus berisi setidaknya ABC sebanyak struktur karena ada indeks glyph yang ditentukan oleh cgi parameter .

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas fungsi GetCharABCWidthsI, seperti yang dijelaskan dalam Windows SDK.

CDC::GetCharWidth

Mengambil lebar karakter individual dalam sekelompok karakter berturut-turut dari font saat ini, menggunakan m_hAttribDC, konteks perangkat input.

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

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

Parameter

nFirstChar
Menentukan karakter pertama dalam sekelompok karakter berturut-turut dalam font saat ini.

nLastChar
Menentukan karakter terakhir dalam grup karakter berturut-turut dalam font saat ini.

lpBuffer
Menunjuk ke buffer yang akan menerima nilai lebar untuk sekelompok karakter berturut-turut dalam font saat ini.

lpFloatBuffer
Arahkan ke buffer untuk menerima lebar karakter. Lebar yang dikembalikan berada dalam format titik mengambang IEEE 32-bit. (Lebar diukur di sepanjang garis dasar karakter.)

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Misalnya, jika nFirstChar mengidentifikasi huruf 'a' dan nLastChar mengidentifikasi huruf 'z', fungsi mengambil lebar semua karakter huruf kecil.

Fungsi menyimpan nilai dalam buffer yang ditujukkan oleh lpBuffer. Buffer ini harus cukup besar untuk menahan semua lebar. Artinya, harus ada setidaknya 26 entri dalam contoh yang diberikan.

Jika karakter dalam grup karakter berturut-turut tidak ada dalam font tertentu, karakter tersebut akan diberi nilai lebar karakter default.

CDC::GetCharWidthI

Mengambil lebar, dalam koordinat logis, indeks glyph berturut-turut dalam rentang tertentu dari font saat ini.

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

Parameter

giFirst
Menentukan indeks glyph pertama dalam grup indeks glyph berturut-turut dari font saat ini. Parameter ini hanya digunakan jika pgi parameternya adalah NULL.

cgi
Menentukan jumlah indeks glyph.

pgi
Penunjuk ke array yang berisi indeks glyph. Jika nilainya adalah NULL, giFirst parameter digunakan sebagai gantinya. Parameter cgi menentukan jumlah indeks glyph dalam array ini.

lpBuffer
Penunjuk ke buffer yang menerima lebar.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas fungsi GetCharWidthI, seperti yang dijelaskan dalam Windows SDK.

CDC::GetClipBox

Mengambil dimensi persegi panjang pembatas terketat di sekitar batas kliping saat ini.

virtual int GetClipBox(LPRECT lpRect) const;

Parameter

lpRect
Menunjuk ke RECT struktur atau CRect objek yang menerima dimensi persegi panjang.

Tampilkan Nilai

Jenis wilayah kliping. Ini bisa menjadi salah satu nilai berikut:

  • COMPLEXREGION Wilayah kliping memiliki batas yang tumpang tindih.

  • ERROR Konteks perangkat tidak valid.

  • NULLREGION Wilayah kliping kosong.

  • SIMPLEREGION Wilayah kliping tidak memiliki batas yang tumpang tindih.

Keterangan

Dimensi disalin ke buffer yang ditujukkan oleh lpRect.

CDC::GetColorAdjustment

Mengambil nilai penyesuaian warna untuk konteks perangkat.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

Parameter

lpColorAdjust
Menunjuk ke COLORADJUSTMENT struktur data untuk menerima nilai penyesuaian warna.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

CDC::GetCurrentBitmap

Mengembalikan penunjuk ke objek yang saat ini dipilih CBitmap .

CBitmap* GetCurrentBitmap() const;

Tampilkan Nilai

Penunjuk CBitmap ke objek, jika berhasil; jika tidak NULL.

Keterangan

Fungsi anggota ini dapat mengembalikan objek sementara.

CDC::GetCurrentBrush

Mengembalikan penunjuk ke objek yang saat ini dipilih CBrush .

CBrush* GetCurrentBrush() const;

Tampilkan Nilai

Penunjuk CBrush ke objek, jika berhasil; jika tidak NULL.

Keterangan

Fungsi anggota ini dapat mengembalikan objek sementara.

CDC::GetCurrentFont

Mengembalikan penunjuk ke objek yang saat ini dipilih CFont .

CFont* GetCurrentFont() const;

Tampilkan Nilai

Penunjuk CFont ke objek, jika berhasil; jika tidak NULL.

Keterangan

Fungsi anggota ini dapat mengembalikan objek sementara.

CDC::GetCurrentPalette

Mengembalikan penunjuk ke objek yang saat ini dipilih CPalette .

CPalette* GetCurrentPalette() const;

Tampilkan Nilai

Penunjuk CPalette ke objek, jika berhasil; jika tidak NULL.

Keterangan

Fungsi anggota ini dapat mengembalikan objek sementara.

CDC::GetCurrentPen

Mengembalikan penunjuk ke objek yang saat ini dipilih CPen .

CPen* GetCurrentPen() const;

Tampilkan Nilai

Penunjuk CPen ke objek, jika berhasil; jika tidak NULL.

Keterangan

Fungsi anggota ini dapat mengembalikan objek sementara.

CDC::GetCurrentPosition

Mengambil posisi saat ini (dalam koordinat logis).

CPoint GetCurrentPosition() const;

Tampilkan Nilai

Posisi saat ini sebagai CPoint objek.

Keterangan

Posisi saat ini dapat diatur dengan MoveTo fungsi anggota.

CDC::GetDCBrushColor

Mengambil warna kuas saat ini.

COLORREF GetDCBrushColor() const;

Tampilkan Nilai

Jika fungsi berhasil, nilai pengembalian adalah COLORREF nilai untuk warna kuas saat ini.

Jika fungsi gagal, nilai yang dikembalikan adalah CLR_INVALID.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas fungsi GetDCBrushColor, seperti yang dijelaskan dalam Windows SDK.

CDC::GetDCPenColor

Mengambil warna pena saat ini.

COLORREF GetDCPenColor() const;

Tampilkan Nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah COLORREF nilai untuk warna pena saat ini.

Jika fungsi gagal, nilai yang dikembalikan adalah CLR_INVALID.

Keterangan

Fungsi anggota ini menggunakan fungsi GetDCPenColorWin32 , seperti yang dijelaskan dalam Windows SDK.

CDC::GetDeviceCaps

Mengambil berbagai informasi khusus perangkat tentang perangkat tampilan.

int GetDeviceCaps(int nIndex) const;

Parameter

nIndex
Menentukan tipe informasi yang akan dikembalikan. Lihat GetDeviceCaps di Windows SDK untuk daftar nilai.

Tampilkan Nilai

Nilai kemampuan yang diminta jika fungsi berhasil.

Contoh

Lihat contoh untuk CPrintDialog::GetDefaults.

CDC::GetFontData

Mengambil informasi metrik font dari file font yang dapat diskalakan.

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

Parameter

dwTable
Menentukan nama tabel metrik yang akan dikembalikan. Parameter ini dapat menjadi salah satu tabel metrik yang didokumentasikan dalam spesifikasi File Font TrueType yang diterbitkan oleh Microsoft Corporation. Jika parameter ini adalah 0, informasi diambil mulai dari awal file font.

dwOffset
Menentukan offset dari awal tabel untuk mulai mengambil informasi. Jika parameter ini adalah 0, informasi diambil mulai dari awal tabel yang ditentukan oleh dwTable parameter . Jika nilai ini lebih besar dari atau sama dengan ukuran tabel, GetFontData mengembalikan 0.

lpData
Menunjuk ke buffer yang akan menerima informasi font. Jika nilai ini adalah NULL, fungsi mengembalikan ukuran buffer yang diperlukan untuk data font yang ditentukan dalam dwTable parameter .

cbData
Menentukan panjang, dalam byte, dari informasi yang akan diambil. Jika parameter ini adalah 0, GetFontData mengembalikan ukuran data yang ditentukan dalam dwTable parameter .

Tampilkan Nilai

Menentukan jumlah byte yang dikembalikan dalam buffer yang diacu oleh lpData jika fungsi berhasil; jika tidak -1.

Keterangan

Informasi yang akan diambil diidentifikasi dengan menentukan offset ke dalam file font dan panjang informasi yang akan dikembalikan.

Aplikasi terkadang dapat menggunakan GetFontData fungsi anggota untuk menyimpan font TrueType dengan dokumen. Untuk melakukan ini, aplikasi menentukan apakah font dapat disematkan dan kemudian mengambil seluruh file font, menentukan 0 untuk dwTableparameter , , dwOffsetdan cbData .

Aplikasi dapat menentukan apakah font dapat disematkan dengan memeriksa otmfsType anggota OUTLINETEXTMETRIC struktur. Jika bit 1 otmfsType diatur, penyematan tidak diizinkan untuk font. Jika bit 1 jelas, font dapat disematkan. Jika bit 2 diatur, penyematan hanya dibaca.

Jika aplikasi mencoba menggunakan fungsi ini untuk mengambil informasi untuk font non-TrueType, GetFontData fungsi anggota mengembalikan -1.

CDC::GetFontLanguageInfo

Mengembalikan informasi tentang font yang saat ini dipilih untuk konteks tampilan yang ditentukan.

DWORD GetFontLanguageInfo() const;

Tampilkan Nilai

Nilai pengembalian mengidentifikasi karakteristik font yang saat ini dipilih. Untuk daftar lengkap nilai yang mungkin, lihat GetFontLanguageInfo.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas fungsi GetFontLanguageInfo, seperti yang dijelaskan dalam Windows SDK.

CDC::GetGlyphOutline

Mengambil kurva kerangka atau bitmap untuk karakter kerangka dalam font saat ini.

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

Parameter

nChar
Menentukan karakter yang informasinya akan dikembalikan.

nFormat
Menentukan format di mana fungsi akan mengembalikan informasi. Ini bisa menjadi salah satu nilai berikut, atau 0:

Nilai Makna
GGO_BITMAP Mengembalikan bitmap glyph. Saat fungsi kembali, buffer menunjuk dengan lpBuffer berisi bitmap 1-bit-per-piksel yang barisnya dimulai pada batas kata ganda.
GGO_NATIVE Mengembalikan titik data kurva dalam format asli rasterizer, menggunakan unit perangkat. Ketika nilai ini ditentukan, transformasi apa pun yang ditentukan di lpmat2 diabaikan.

Saat nilai nFormat adalah 0, fungsi mengisi GLYPHMETRICS struktur tetapi tidak mengembalikan data kerangka glyph.

lpgm
Menunjuk ke GLYPHMETRICS struktur yang menjelaskan penempatan glyph dalam sel karakter.

cbBuffer
Menentukan ukuran buffer tempat fungsi menyalin informasi tentang karakter kerangka. Jika nilai ini adalah 0 dan nFormat parameter adalah GGO_BITMAP nilai atau GGO_NATIVE , fungsi mengembalikan ukuran buffer yang diperlukan.

lpBuffer
Menunjuk ke buffer tempat fungsi menyalin informasi tentang karakter kerangka. Jika nFormat menentukan GGO_NATIVE nilai, informasi disalin dalam bentuk TTPOLYGONHEADER dan TTPOLYCURVE struktur. Jika nilai ini adalah NULL dan nFormat merupakan GGO_BITMAP nilai atau GGO_NATIVE , fungsi mengembalikan ukuran buffer yang diperlukan.

lpmat2
Menunjuk ke MAT2 struktur yang berisi matriks transformasi untuk karakter. Parameter ini tidak boleh NULL, bahkan ketika GGO_NATIVE nilai ditentukan untuk nFormat.

Tampilkan Nilai

Ukuran, dalam byte, dari buffer yang diperlukan untuk informasi yang diambil jika cbBuffer adalah 0 atau lpBuffer .NULL Jika tidak, ini adalah nilai positif jika fungsi berhasil, atau -1 jika ada kesalahan.

Keterangan

Aplikasi dapat memutar karakter yang diambil dalam format bitmap dengan menentukan matriks transformasi 2-by-2 dalam struktur yang diarahkan oleh lpmat2.

Kerangka glyph dikembalikan sebagai serangkaian kontur. Setiap kontur didefinisikan oleh TTPOLYGONHEADER struktur diikuti oleh struktur sebanyak TTPOLYCURVE yang diperlukan untuk menggambarkannya. Semua titik dikembalikan sebagai POINTFX struktur dan mewakili posisi absolut, bukan gerakan relatif. Titik awal yang pfxStart diberikan oleh anggota TTPOLYGONHEADER struktur adalah titik di mana kerangka untuk kontur dimulai. Struktur TTPOLYCURVE berikut dapat berupa rekaman poliline atau rekaman spline. Rekaman poliline adalah serangkaian titik; garis yang digambar di antara titik-titik menggambarkan kerangka karakter. Rekaman spline mewakili kurva kuadrat yang digunakan oleh TrueType (yaitu, b-spline kuadrat).

CDC::GetGraphicsMode

Mengambil mode grafis saat ini untuk konteks perangkat yang ditentukan.

int GetGraphicsMode() const;

Tampilkan Nilai

Mengembalikan mode grafik saat ini pada keberhasilan. Untuk daftar nilai yang dapat dikembalikan metode ini, lihat GetGraphicsMode.

Mengembalikan 0 pada kegagalan.

Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Keterangan

Metode ini membungkus fungsi GetGraphicsModeWindows GDI .

CDC::GetHalftoneBrush

Panggil fungsi anggota ini untuk mengambil sikat halftone.

static CBrush* PASCAL GetHalftoneBrush();

Tampilkan Nilai

Penunjuk ke CBrush objek jika berhasil; jika tidak NULL.

Keterangan

Sikat halftone menunjukkan piksel yang secara bergantian latar depan dan warna latar belakang untuk membuat pola terlarut. Diagram berikut menunjukkan contoh pola terlarut yang dibuat oleh sikat halftone:

Diagram yang menunjukkan bagaimana goresan pena terlarut disusupi.

Diagram menunjukkan bagaimana warna latar belakang hitam, dan warna latar depan kuning, dikombinasikan ke dalam pola dengan mengubah piksel hitam dan kuning satu sama lain untuk membuat goresan pena yang ditingkatkan.

CDC::GetKerningPairs

Mengambil pasangan kerning karakter untuk font yang saat ini dipilih dalam konteks perangkat yang ditentukan.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

Parameter

nPairs
Menentukan jumlah KERNINGPAIR struktur yang ditujukkan oleh lpkrnpair. Fungsi ini tidak akan menyalin lebih banyak pasangan kerning daripada yang ditentukan oleh nPairs.

lpkrnpair
Menunjuk ke array KERNINGPAIR struktur yang menerima pasangan kerning saat fungsi kembali. Array ini harus berisi setidaknya struktur sebanyak yang ditentukan oleh nPairs. Jika parameter ini adalah NULL, fungsi mengembalikan jumlah total pasangan kerning untuk font.

Tampilkan Nilai

Menentukan jumlah pasangan kerning yang diambil atau jumlah total pasangan kerning dalam font, jika fungsi berhasil. Nol dikembalikan jika fungsi gagal atau tidak ada pasangan kerning untuk font.

CDC::GetLayout

Panggil fungsi anggota ini untuk menentukan tata letak teks dan grafik untuk konteks perangkat, seperti printer atau metafile.

DWORD GetLayout() const;

Tampilkan Nilai

Jika berhasil, tata letak akan ditandai untuk konteks perangkat saat ini. Sebaliknya, GDI_ERROR. Untuk informasi kesalahan yang diperluas, panggil GetLastError. Untuk daftar bendera tata letak, lihat CDC::SetLayout.

Keterangan

Tata letak default dibiarkan ke kanan.

CDC::GetMapMode

Mengambil mode pemetaan saat ini.

int GetMapMode() const;

Tampilkan Nilai

Mode pemetaan.

Keterangan

Untuk deskripsi mode pemetaan, lihat SetMapMode fungsi anggota.

Catatan

Jika Anda memanggil SetLayout untuk mengubah DC ke tata letak kanan-ke-kiri, SetLayout secara otomatis mengubah mode pemetaan menjadi MM_ISOTROPIC. Akibatnya, setiap panggilan berikutnya ke GetMapMode akan mengembalikan MM_ISOTROPIC.

CDC::GetMiterLimit

Mengembalikan batas miter untuk konteks perangkat.

float GetMiterLimit() const;

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Batas miter digunakan saat menggambar garis geometris yang memiliki gabungan miter.

CDC::GetNearestColor

Mengembalikan warna solid yang paling cocok dengan warna logika tertentu.

COLORREF GetNearestColor(COLORREF crColor) const;

Parameter

crColor
Menentukan warna yang akan dicocokkan.

Tampilkan Nilai

Nilai warna RGB (merah, hijau, biru) yang menentukan warna solid paling crColor dekat dengan nilai yang dapat diwakili perangkat.

Keterangan

Perangkat yang diberikan harus dapat mewakili warna ini.

CDC::GetOutlineTextMetrics

Mengambil informasi metrik untuk font TrueType.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

Parameter

lpotm
Menunjuk ke array OUTLINETEXTMETRIC struktur. Jika parameter ini adalah NULL, fungsi mengembalikan ukuran buffer yang diperlukan untuk data metrik yang diambil.

cbData
Menentukan ukuran, dalam byte, dari buffer tempat informasi dikembalikan.

lpotm
Menunjuk ke OUTLINETEXTMETRIC struktur. Jika parameter ini adalah NULL, fungsi mengembalikan ukuran buffer yang diperlukan untuk informasi metrik yang diambil.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Struktur OUTLINETEXTMETRIC berisi sebagian besar informasi metrik font yang disediakan dengan format TrueType, termasuk TEXTMETRIC struktur. Empat anggota terakhir struktur OUTLINETEXTMETRIC adalah penunjuk ke string. Aplikasi harus mengalokasikan ruang untuk string ini selain ruang yang diperlukan untuk anggota lain. Karena tidak ada batas yang diberlakukan sistem untuk ukuran string, metode paling sederhana untuk mengalokasikan memori adalah mengambil ukuran yang diperlukan dengan menentukan NULL untuk lpotm dalam panggilan pertama ke GetOutlineTextMetrics fungsi.

CDC::GetOutputCharWidth

Menggunakan konteks perangkat output, m_hDC, dan mengambil lebar karakter individual dalam sekelompok karakter berturut-turut dari font saat ini.

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

Parameter

nFirstChar
Menentukan karakter pertama dalam sekelompok karakter berturut-turut dalam font saat ini.

nLastChar
Menentukan karakter terakhir dalam grup karakter berturut-turut dalam font saat ini.

lpBuffer
Menunjuk ke buffer yang akan menerima nilai lebar untuk sekelompok karakter berturut-turut dalam font saat ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Misalnya, jika nFirstChar mengidentifikasi huruf 'a' dan nLastChar mengidentifikasi huruf 'z', fungsi mengambil lebar semua karakter huruf kecil.

Fungsi menyimpan nilai dalam buffer yang ditujukkan oleh lpBuffer. Buffer ini harus cukup besar untuk menahan semua lebar; artinya, harus ada setidaknya 26 entri dalam contoh yang diberikan.

Jika karakter dalam grup karakter berturut-turut tidak ada dalam font tertentu, karakter tersebut akan diberi nilai lebar karakter default.

CDC::GetOutputTabbedTextExtent

Panggil fungsi anggota ini untuk menghitung lebar dan tinggi string karakter menggunakan m_hDCkonteks perangkat output.

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

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

Parameter

lpszString
Menunjuk ke string karakter yang akan diukur. Anda juga dapat meneruskan CString objek untuk parameter ini.

nCount
Menentukan panjang string yang ditujukkan oleh lpszString.

nTabPositions
Menentukan jumlah posisi pemberhentian tab dalam array yang ditujukkan oleh lpnTabStopPositions.

lpnTabStopPositions
Menunjuk ke array bilangan bulat yang berisi posisi tab-stop di unit logis. Perhentian tab harus diurutkan dalam urutan yang meningkat; nilai x terkecil harus menjadi item pertama dalam array. Tab belakang tidak diperbolehkan.

str
Objek CString yang berisi karakter yang ditentukan untuk diukur.

Tampilkan Nilai

Dimensi string (dalam unit logis) dalam CSize objek.

Keterangan

Jika string berisi satu atau beberapa karakter tab, lebar string didasarkan pada perhentian tab yang ditentukan oleh lpnTabStopPositions. Fungsi ini menggunakan font yang saat ini dipilih untuk menghitung dimensi string.

Wilayah kliping saat ini tidak mengimbangi lebar dan tinggi yang dikembalikan oleh GetOutputTabbedTextExtent fungsi.

Karena beberapa perangkat tidak menempatkan karakter dalam array sel reguler (yaitu, mereka membuat karakter), jumlah sejauh mana karakter dalam string mungkin tidak sama dengan sejauh string.

Jika nTabPositions adalah 0 dan lpnTabStopPositions adalah NULL, tab diperluas menjadi delapan lebar karakter rata-rata. Jika nTabPositions adalah 1, perhentian tab akan dipisahkan oleh jarak yang ditentukan oleh nilai pertama dalam array yang lpnTabStopPositions menunjuknya. Jika lpnTabStopPositions menunjuk ke lebih dari satu nilai, perhentian tab diatur untuk setiap nilai dalam array, hingga angka yang ditentukan oleh nTabPositions.

CDC::GetOutputTextExtent

Panggil fungsi anggota ini untuk menggunakan konteks perangkat output, m_hDC, dan komputasi lebar dan tinggi baris teks, menggunakan font saat ini.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

Parameter

lpszString
Menunjuk ke string karakter. Anda juga dapat meneruskan CString objek untuk parameter ini.

nCount
Menentukan panjang string yang ditujukkan oleh lpszString.

str
Objek CString yang berisi karakter yang ditentukan untuk diukur.

Tampilkan Nilai

Dimensi string (dalam unit logis) dikembalikan dalam CSize objek.

Keterangan

Wilayah kliping saat ini tidak memengaruhi lebar dan tinggi yang dikembalikan oleh GetOutputTextExtent.

Karena beberapa perangkat tidak menempatkan karakter dalam array sel reguler (yaitu, mereka melakukan kerning), jumlah sejauh mana karakter dalam string mungkin tidak sama dengan tingkat string.

CDC::GetOutputTextMetrics

Mengambil metrik untuk font saat ini menggunakan m_hDCkonteks perangkat output.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameter

lpMetrics
Menunjuk ke TEXTMETRIC struktur yang menerima metrik.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

CDC::GetPath

Mengambil koordinat yang menentukan titik akhir garis dan titik kontrol kurva yang ditemukan di jalur yang dipilih ke dalam konteks perangkat.

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

Parameter

lpPoints
Menunjuk ke array POINT struktur data atau CPoint objek tempat titik akhir garis dan titik kontrol kurva ditempatkan.

lpTypes
Menunjuk ke array byte tempat jenis vertex ditempatkan. Nilai adalah salah satu dari berikut ini:

  • PT_MOVETO Menentukan bahwa titik yang sesuai dalam lpPoints memulai gambar yang putus-putus.

  • PT_LINETO Menentukan bahwa titik sebelumnya dan titik yang sesuai di lpPoints adalah titik akhir baris.

  • PT_BEZIERTO Menentukan bahwa titik yang sesuai adalah lpPoints titik kontrol atau titik akhir untuk kurva Bzier.

PT_BEZIERTO jenis selalu terjadi dalam set tiga. Titik dalam jalur segera mendahuluinya mendefinisikan titik awal untuk kurva Bzier. Dua PT_BEZIERTO poin pertama adalah titik kontrol, dan poin ketiga PT_BEZIERTO adalah titik akhir (jika dikodekan secara permanen).

Atau PT_LINETO PT_BEZIERTO jenis dapat dikombinasikan dengan bendera berikut (dengan menggunakan operator bitwise ATAU) untuk menunjukkan bahwa titik yang sesuai adalah titik terakhir dalam gambar dan bahwa gambar harus ditutup:

  • PT_CLOSEFIGURE Menentukan bahwa gambar ditutup secara otomatis setelah garis atau kurva yang sesuai digambar. Gambar ditutup dengan menggambar garis dari garis atau titik akhir kurva ke titik yang sesuai dengan yang terakhir PT_MOVETO.

nCount
Menentukan jumlah POINT total struktur data yang mungkin ditempatkan dalam lpPoints array. Nilai ini harus sama dengan jumlah byte yang mungkin ditempatkan dalam lpTypes array.

Tampilkan Nilai

nCount Jika parameter bukan nol, jumlah titik yang dijumlahkan. Jika nCount adalah 0, jumlah total titik di jalur (dan GetPath tidak menulis apa pun ke buffer). Jika nCount bukan nol dan kurang dari jumlah titik dalam jalur, nilai pengembaliannya adalah -1.

Keterangan

Konteks perangkat harus berisi jalur tertutup. Titik jalur dikembalikan dalam koordinat logis. Titik disimpan di jalur dalam koordinat perangkat, sehingga GetPath mengubah titik dari koordinat perangkat menjadi koordinat logis dengan menggunakan inversi transformasi saat ini. Fungsi FlattenPath anggota dapat dipanggil sebelum GetPath, untuk mengonversi semua kurva di jalur menjadi segmen garis.

Contoh

Lihat contoh untuk CDC::BeginPath.

CDC::GetPixel

Mengambil nilai warna RGB piksel pada titik yang ditentukan oleh x dan *y*.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

Parameter

x
Menentukan koordinat x logis dari titik yang akan diperiksa.

y
Menentukan koordinat y logis dari titik yang akan diperiksa.

point
Menentukan koordinat x- dan y logis dari titik yang akan diperiksa.

Tampilkan Nilai

Untuk salah satu versi fungsi, nilai warna RGB untuk warna titik yang diberikan. Ini -1 jika koordinat tidak menentukan titik di wilayah kliping.

Keterangan

Titik harus berada di wilayah kliping. Jika titik tidak berada di wilayah kliping, fungsi tidak berpengaruh dan mengembalikan -1.

Tidak semua perangkat mendukung fungsi .GetPixel Untuk informasi selengkapnya, lihat RC_BITBLT kemampuan raster di GetDeviceCaps bawah fungsi anggota.

Fungsi GetPixel anggota memiliki dua bentuk. Yang pertama mengambil dua nilai koordinat; yang kedua mengambil POINT struktur atau CPoint objek.

CDC::GetPolyFillMode

Mengambil mode pengisian poligon saat ini.

int GetPolyFillMode() const;

Tampilkan Nilai

Mode yang diisi poligon saat ini, ALTERNATE atau WINDING, jika fungsi berhasil.

Keterangan

SetPolyFillMode Lihat fungsi anggota untuk deskripsi mode pengisian poligon.

CDC::GetROP2

Mengambil mode gambar saat ini.

int GetROP2() const;

Tampilkan Nilai

Mode menggambar. Untuk daftar nilai mode menggambar, lihat SetROP2 fungsi anggota.

Keterangan

Mode menggambar menentukan bagaimana warna pena dan interior objek yang diisi dikombinasikan dengan warna yang sudah ada di permukaan tampilan.

CDC::GetSafeHdc

Panggil fungsi anggota ini untuk mendapatkan m_hDC, konteks perangkat output.

HDC GetSafeHdc() const;

Tampilkan Nilai

Handel konteks perangkat.

Keterangan

Fungsi anggota ini juga berfungsi dengan pointer null.

CDC::GetStretchBltMode

Mengambil mode peregangan bitmap saat ini.

int GetStretchBltMode() const;

Tampilkan Nilai

Nilai pengembalian menentukan mode peregangan bitmap saat ini — STRETCH_ANDSCANS, , STRETCH_DELETESCANSatau STRETCH_ORSCANS — jika fungsi berhasil.

Keterangan

Mode peregangan bitmap menentukan bagaimana informasi dihapus dari bitmap yang direntangkan atau dikompresi oleh StretchBlt fungsi anggota.

STRETCH_ANDSCANS Mode dan STRETCH_ORSCANS biasanya digunakan untuk mempertahankan piksel latar depan dalam bitmap monokrom. STRETCH_DELETESCANS Mode ini biasanya digunakan untuk mempertahankan warna dalam bitmap warna.

CDC::GetTabbedTextExtent

Panggil fungsi anggota ini untuk menghitung lebar dan tinggi string karakter menggunakan m_hAttribDCkonteks perangkat atribut.

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

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

Parameter

lpszString
Menunjuk ke string karakter. Anda juga dapat meneruskan CString objek untuk parameter ini.

nCount
Menentukan panjang string yang ditujukkan oleh lpszString.

nTabPositions
Menentukan jumlah posisi pemberhentian tab dalam array yang ditujukkan oleh lpnTabStopPositions.

lpnTabStopPositions
Menunjuk ke array bilangan bulat yang berisi posisi tab-stop di unit logis. Perhentian tab harus diurutkan dalam urutan yang meningkat; nilai x terkecil harus menjadi item pertama dalam array. Tab belakang tidak diperbolehkan.

str
Objek CString yang berisi karakter yang ditentukan untuk digambar.

Tampilkan Nilai

Dimensi string (dalam unit logis) dalam CSize objek.

Keterangan

Jika string berisi satu atau beberapa karakter tab, lebar string didasarkan pada perhentian tab yang ditentukan oleh lpnTabStopPositions. Fungsi ini menggunakan font yang saat ini dipilih untuk menghitung dimensi string.

Wilayah kliping saat ini tidak mengimbangi lebar dan tinggi yang dikembalikan oleh GetTabbedTextExtent fungsi.

Karena beberapa perangkat tidak menempatkan karakter dalam array sel reguler (yaitu, mereka membuat karakter), jumlah sejauh mana karakter dalam string mungkin tidak sama dengan sejauh string.

Jika nTabPositions adalah 0 dan lpnTabStopPositions adalah NULL, tab diperluas menjadi delapan kali lebar karakter rata-rata. Jika nTabPositions adalah 1, perhentian tab akan dipisahkan oleh jarak yang ditentukan oleh nilai pertama dalam array yang lpnTabStopPositions menunjuknya. Jika lpnTabStopPositions menunjuk ke lebih dari satu nilai, perhentian tab diatur untuk setiap nilai dalam array, hingga angka yang ditentukan oleh nTabPositions.

CDC::GetTextAlign

Mengambil status bendera perataan teks untuk konteks perangkat.

UINT GetTextAlign() const;

Tampilkan Nilai

Status bendera perataan teks. Nilai yang dikembalikan adalah satu atau beberapa nilai berikut:

  • TA_BASELINE Menentukan perataan sumbu x dan garis besar font yang dipilih dalam persegi panjang pembatas.

  • TA_BOTTOM Menentukan perataan sumbu x dan bagian bawah persegi panjang pembatas.

  • TA_CENTER Menentukan perataan sumbu y dan pusat persegi panjang pembatas.

  • TA_LEFT Menentukan perataan sumbu y dan sisi kiri persegi panjang pembatas.

  • TA_NOUPDATECP Menentukan bahwa posisi saat ini tidak diperbarui.

  • TA_RIGHT Menentukan perataan sumbu y dan sisi kanan persegi panjang pembatas.

  • TA_TOP Menentukan perataan sumbu x dan bagian atas persegi panjang pembatas.

  • TA_UPDATECP Menentukan bahwa posisi saat ini diperbarui.

Keterangan

Bendera perataan teks menentukan bagaimana TextOut fungsi anggota dan ExtTextOut meratakan string teks sehubungan dengan titik awal string. Bendera perataan teks belum tentu bendera bit tunggal dan mungkin sama dengan 0. Untuk menguji apakah bendera diatur, aplikasi harus mengikuti langkah-langkah berikut:

  1. Terapkan operator bitwise OR (|) ke bendera dan bendera terkait, dikelompokkan sebagai berikut:

    • TA_LEFT, TA_CENTER, dan TA_RIGHT

    • TA_BASELINE, TA_BOTTOM, dan TA_TOP

    • TA_NOUPDATECP dan TA_UPDATECP

  2. Terapkan operator C++ bitwise AND (&) ke hasil dan nilai pengembalian .GetTextAlign

  3. Uji kesetaraan hasil ini dan bendera .

CDC::GetTextCharacterExtra

Mengambil pengaturan saat ini untuk jumlah penspasian antarkarakter.

int GetTextCharacterExtra() const;

Tampilkan Nilai

Jumlah penspasian antarkarakter.

Keterangan

GDI menambahkan penspasian ini ke setiap karakter, termasuk karakter jeda, saat menulis baris teks ke konteks perangkat.

Nilai default untuk jumlah penspasian antarkarakter adalah 0.

CDC::GetTextColor

Mengambil warna teks saat ini.

COLORREF GetTextColor() const;

Tampilkan Nilai

Warna teks saat ini sebagai nilai warna RGB.

Keterangan

Warna teks adalah warna latar depan karakter yang digambar dengan menggunakan fungsi TextOutanggota teks-output GDI , , ExtTextOutdan TabbedTextOut.

CDC::GetTextExtent

Panggil fungsi anggota ini untuk menghitung lebar dan tinggi baris teks menggunakan font saat ini untuk menentukan dimensi.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

Parameter

lpszString
Menunjuk ke string karakter. Anda juga dapat meneruskan CString objek untuk parameter ini.

nCount
Menentukan jumlah karakter dalam string.

str
Objek CString yang berisi karakter yang ditentukan.

Tampilkan Nilai

Dimensi string (dalam unit logis) dalam CSize objek.

Keterangan

Informasi diambil dari m_hAttribDC, konteks perangkat atribut.

Secara default, GetTextExtent mengasumsikan teks yang diambil dimensinya diatur di sepanjang garis horizontal (yaitu, escapement adalah 0). Jika Anda membuat font yang menentukan escapement bukan nol, Anda harus mengonversi sudut teks secara eksplisit untuk mendapatkan dimensi string.

Wilayah kliping saat ini tidak memengaruhi lebar dan tinggi yang dikembalikan oleh GetTextExtent.

Karena beberapa perangkat tidak menempatkan karakter dalam array sel reguler (yaitu, mereka melakukan kerning), jumlah sejauh mana karakter dalam string mungkin tidak sama dengan tingkat string.

CDC::GetTextExtentExPointI

Mengambil jumlah karakter dalam string tertentu yang akan pas dalam spasi tertentu dan mengisi array dengan tingkat teks untuk masing-masing karakter tersebut.

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

Parameter

pgiIn
Penunjuk ke array indeks glyph yang sejauh mana akan diambil.

cgi
Menentukan jumlah glyph dalam array yang ditujukkan oleh pgiIn.

nMaxExtent
Menentukan lebar maksimum yang diperbolehkan, dalam unit logis, dari string yang diformat.

lpnFit
Penunjuk ke bilangan bulat yang menerima hitungan jumlah maksimum karakter yang akan pas dalam spasi yang ditentukan oleh nMaxExtent. Kapan lpnFit , NULLnMaxExtent diabaikan.

alpDx
Penunjuk ke array bilangan bulat yang menerima tingkat glyph parsial. Setiap elemen dalam array memberikan jarak, dalam unit logis, antara awal array indeks glyph dan salah satu glyph yang pas dalam ruang yang ditentukan oleh nMaxExtent. Meskipun array ini harus memiliki setidaknya sebanyak mungkin elemen sebagai indeks glyph yang ditentukan oleh cgi, fungsi mengisi array dengan tingkat hanya untuk indeks glyph sebanyak yang ditentukan oleh lpnFit. Jika lpnDx adalah NULL, fungsi tidak menghitung lebar string parsial.

lpSize
Penunjuk ke SIZE struktur yang menerima dimensi array indeks glyph, dalam unit logis. Nilai ini tidak boleh NULL.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas fungsi GetTextExtentExPointI, seperti yang dijelaskan dalam Windows SDK.

CDC::GetTextExtentPointI

Mengambil lebar dan tinggi array indeks glyph yang ditentukan.

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

Parameter

pgiIn
Penunjuk ke array indeks glyph yang sejauh mana akan diambil.

cgi
Menentukan jumlah glyph dalam array yang ditujukkan oleh pgiIn.

lpSize
Penunjuk ke SIZE struktur yang menerima dimensi array indeks glyph, dalam unit logis. Nilai ini tidak boleh NULL.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini menimulasi fungsionalitas fungsi GetTextExtentPointI, seperti yang dijelaskan dalam Windows SDK.

CDC::GetTextFace

Panggil fungsi anggota ini untuk menyalin nama typeface font saat ini ke dalam buffer.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

Parameter

nCount
Menentukan ukuran buffer (dalam byte). Jika nama typeface lebih panjang dari jumlah byte yang ditentukan oleh parameter ini, nama dipotong.

lpszFacename
Menunjuk ke buffer untuk nama typeface.

rString
Referensi ke CString objek.

Tampilkan Nilai

Jumlah byte yang disalin ke buffer, tidak termasuk karakter null yang dihentikan. Ini adalah 0 jika terjadi kesalahan.

Keterangan

Nama typeface disalin sebagai string null-terminated.

CDC::GetTextMetrics

Mengambil metrik untuk font saat ini menggunakan konteks perangkat atribut.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameter

lpMetrics
Menunjuk ke TEXTMETRIC struktur yang menerima metrik.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

CDC::GetViewportExt

Mengambil tingkat x dan y dari viewport konteks perangkat.

CSize GetViewportExt() const;

Tampilkan Nilai

Tingkat x dan y (dalam unit perangkat) sebagai CSize objek.

CDC::GetViewportOrg

Mengambil koordinat x dan y dari asal viewport yang terkait dengan konteks perangkat.

CPoint GetViewportOrg() const;

Tampilkan Nilai

Asal viewport (dalam koordinat perangkat) sebagai CPoint objek.

CDC::GetWindow

Mengembalikan jendela yang terkait dengan konteks perangkat tampilan.

CWnd* GetWindow() const;

Tampilkan Nilai

Penunjuk CWnd ke objek jika berhasil; jika tidak NULL.

Keterangan

Ini adalah fungsi tingkat lanjut. Misalnya, fungsi anggota ini mungkin tidak mengembalikan jendela tampilan saat mencetak atau dalam pratinjau cetak. Ini selalu mengembalikan jendela yang terkait dengan output. Fungsi output yang menggunakan gambar DC yang diberikan ke jendela ini.

CDC::GetWindowExt

Mengambil tingkat x dan y dari jendela yang terkait dengan konteks perangkat.

CSize GetWindowExt() const;

Tampilkan Nilai

Tingkat x dan y (dalam unit logis) sebagai CSize objek.

CDC::GetWindowOrg

Mengambil koordinat x dan y dari asal jendela yang terkait dengan konteks perangkat.

CPoint GetWindowOrg() const;

Tampilkan Nilai

Asal jendela (dalam koordinat logis) sebagai CPoint objek.

CDC::GetWorldTransform

Mengambil transformasi ruang-dunia ke ruang halaman saat ini.

BOOL GetWorldTransform(XFORM& rXform) const;

Parameter

rXform
Referensi ke XFORM struktur yang menerima transformasi ruang-dunia saat ini ke ruang halaman.

Tampilkan Nilai

Mengembalikan nilai bukan nol pada keberhasilan.

Mengembalikan 0 pada kegagalan.

Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Keterangan

Metode ini membungkus fungsi GetWorldTransformWindows GDI .

CDC::GradientFill

Panggil fungsi anggota ini untuk mengisi struktur persegi panjang dan segitiga dengan warna yang memudar dengan lancar dari satu sisi ke sisi lainnya.

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

Parameter

pVertices
Penunjuk ke array TRIVERTEX struktur yang masing-masing mendefinisikan vertex segitiga.

nVertices
Jumlah simpul.

pMesh
GRADIENT_TRIANGLE Array struktur dalam mode segitiga, atau array GRADIENT_RECT struktur dalam mode persegi panjang.

nMeshElements
Jumlah elemen (segitiga atau persegi panjang) di pMesh.

dwMode
Menentukan mode isian gradien. Untuk daftar nilai yang mungkin, lihat GradientFill di Windows SDK.

Tampilkan Nilai

TRUE jika berhasil; jika tidak FALSE.

Keterangan

Untuk informasi selengkapnya, lihat GradientFill di Windows SDK.

CDC::GrayString

Menggambar teks redup (abu-abu) di lokasi tertentu dengan menulis teks dalam bitmap memori, meredupkan bitmap, lalu menyalin bitmap ke tampilan.

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

Parameter

pBrush
Mengidentifikasi kuas yang akan digunakan untuk dimming (abu-abu).

lpfnOutput
Menentukan alamat instans prosedur dari fungsi panggilan balik yang disediakan aplikasi yang akan menggambar string. Untuk informasi selengkapnya, lihat deskripsi fungsi panggilan balik Windows OutputFunc . Jika parameter ini adalah NULL, sistem menggunakan fungsi Windows TextOut untuk menggambar string, dan lpData diasumsikan sebagai penunjuk panjang ke string karakter untuk menjadi output.

lpData
Menentukan penunjuk jauh ke data yang akan diteruskan ke fungsi output. Jika lpfnOutput adalah NULL, lpData harus berupa penunjuk panjang ke string untuk menjadi output.

nCount
Menentukan jumlah karakter yang akan dihasilkan. Jika parameter ini adalah 0, GrayString menghitung panjang string (dengan asumsi itu lpData adalah penunjuk ke string). Jika nCount adalah 1 dan fungsi yang ditunjukkan dengan lpfnOutput mengembalikan 0, gambar ditampilkan tetapi tidak redup.

x
Menentukan koordinat x logis dari posisi awal persegi panjang yang mengapit string.

y
Menentukan koordinat y logis dari posisi awal persegi panjang yang mengapit string.

nWidth
Menentukan lebar (dalam unit logis) persegi panjang yang mengapit string. Jika nWidth adalah 0, GrayString menghitung lebar area, dengan asumsi lpData adalah penunjuk ke string.

nHeight
Menentukan tinggi (dalam unit logis) persegi panjang yang mengapit string. Jika nHeight adalah 0, GrayString menghitung tinggi area, dengan asumsi lpData adalah penunjuk ke string.

Tampilkan Nilai

Bukan nol jika string digambar, atau 0 jika TextOut fungsi atau fungsi output yang disediakan aplikasi mengembalikan 0, atau jika memori tidak mencukupi untuk membuat bitmap memori untuk peredupan.

Keterangan

Fungsi ini meringkas teks terlepas dari kuas dan latar belakang yang dipilih. Fungsi GrayString anggota menggunakan font yang saat ini dipilih. MM_TEXT Mode pemetaan harus dipilih sebelum menggunakan fungsi ini.

Aplikasi dapat menggambar string redup (abu-abu) pada perangkat yang mendukung warna abu-abu solid tanpa memanggil GrayString fungsi anggota. Warna COLOR_GRAYTEXT sistem adalah warna sistem solid-gray yang digunakan untuk menggambar teks yang dinonaktifkan. Aplikasi dapat memanggil GetSysColor fungsi Windows untuk mengambil nilai warna .COLOR_GRAYTEXT Jika warnanya selain 0 (hitam), aplikasi dapat memanggil SetTextColor fungsi anggota untuk mengatur warna teks ke nilai warna, lalu menggambar string secara langsung. Jika warna yang diambil berwarna hitam, aplikasi harus memanggil GrayString untuk meringkas (abu-abu) teks.

Jika lpfnOutput adalah NULL, GDI menggunakan fungsi Windows TextOut , dan lpData diasumsikan sebagai penunjuk jauh ke karakter untuk menjadi output. Jika karakter yang akan dihasilkan tidak dapat ditangani oleh TextOut fungsi anggota (misalnya, string disimpan sebagai bitmap), aplikasi harus menyediakan fungsi outputnya sendiri.

Semua fungsi panggilan balik harus menjebak pengecualian Microsoft Foundation sebelum kembali ke Windows, karena pengecualian tidak dapat dilemparkan di seluruh batas panggilan balik. Untuk informasi selengkapnya tentang pengecualian, lihat artikel Pengecualian.

Fungsi panggilan balik yang diteruskan ke GrayString harus menggunakan __stdcall konvensi panggilan dan harus diekspor dengan __declspec.

Saat kerangka kerja dalam mode pratinjau, panggilan ke GrayString fungsi anggota diterjemahkan ke TextOut panggilan, dan fungsi panggilan balik tidak dipanggil.

CDC::HIMETRICtoDP

Gunakan fungsi ini saat Anda mengonversi HIMETRIC ukuran dari OLE ke piksel.

void HIMETRICtoDP(LPSIZE lpSize) const;

Parameter

lpSize
Menunjuk ke SIZE struktur atau CSize objek.

Keterangan

Jika mode pemetaan objek konteks perangkat adalah MM_LOENGLISH, , MM_HIENGLISHMM_LOMETRIC atau MM_HIMETRIC, maka konversi didasarkan pada jumlah piksel dalam inci fisik. Jika mode pemetaan adalah salah satu mode lain yang tidak dibatasi (misalnya, MM_TEXT), maka konversi didasarkan pada jumlah piksel dalam inci logis.

CDC::HIMETRICtoLP

Panggil fungsi ini untuk mengonversi HIMETRIC unit menjadi unit logis.

void HIMETRICtoLP(LPSIZE lpSize) const;

Parameter

lpSize
Menunjuk ke SIZE struktur atau CSize objek.

Keterangan

Gunakan fungsi ini saat Anda mendapatkan HIMETRIC ukuran dari OLE dan ingin mengonversinya ke mode pemetaan alami aplikasi Anda.

Konversi dilakukan dengan terlebih dahulu mengonversi HIMETRIC unit menjadi piksel dan kemudian mengonversi unit ini menjadi unit logis menggunakan unit pemetaan konteks perangkat saat ini. Perhatikan bahwa sejauh mana jendela perangkat dan viewport akan memengaruhi hasilnya.

CDC::IntersectClipRect

Membuat wilayah kliping baru dengan membentuk persimpangan wilayah saat ini dan persegi panjang yang ditentukan oleh x1, , y1x2, dan y2.

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

int IntersectClipRect(LPCRECT lpRect);

Parameter

x1
Menentukan koordinat x logis dari sudut kiri atas persegi panjang.

y1
Menentukan koordinat y logis dari sudut kiri atas persegi panjang.

x2
Menentukan koordinat x logis dari sudut kanan bawah persegi.

y2
Menentukan koordinat y logis dari sudut kanan bawah persegi panjang.

lpRect
Menentukan persegi panjang. Anda dapat meneruskan CRect objek atau penunjuk ke RECT struktur untuk parameter ini.

Tampilkan Nilai

Jenis wilayah kliping baru. Ini bisa menjadi salah satu nilai berikut:

  • COMPLEXREGION Wilayah kliping baru memiliki batas yang tumpang tindih.

  • ERROR Konteks perangkat tidak valid.

  • NULLREGION Wilayah kliping baru kosong.

  • SIMPLEREGION Wilayah kliping baru tidak memiliki batas yang tumpang tindih.

Keterangan

Klip GDI semua output berikutnya agar pas dalam batas baru. Lebar dan tinggi tidak boleh melebihi 32.767.

CDC::InvertRect

Balikkan isi persegi panjang yang diberikan.

void InvertRect(LPCRECT lpRect);

Parameter

lpRect
Menunjuk ke yang RECT berisi koordinat logis persegi panjang yang akan dibalik. Anda juga dapat meneruskan CRect objek untuk parameter ini.

Keterangan

Inversi adalah operasi NOT logis dan membalik bit setiap piksel. Pada tampilan monokrom, fungsi membuat piksel putih piksel hitam dan hitam putih. Pada tampilan warna, inversi tergantung pada bagaimana warna dihasilkan untuk tampilan. Memanggil InvertRect dua kali dengan persegi panjang yang sama memulihkan tampilan ke warna sebelumnya.

Jika persegi panjang kosong, tidak ada yang digambar.

Contoh

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

Menginversi warna di wilayah yang ditentukan oleh pRgn.

BOOL InvertRgn(CRgn* pRgn);

Parameter

pRgn
Mengidentifikasi wilayah yang akan dibalik. Koordinat untuk wilayah ditentukan dalam unit logis.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Pada tampilan monokrom, fungsi membuat piksel putih piksel hitam dan hitam putih. Pada tampilan warna, inversi tergantung pada bagaimana warna dihasilkan untuk tampilan.

CDC::IsPrinting

Menentukan apakah konteks perangkat sedang digunakan untuk pencetakan.

BOOL IsPrinting() const;

Tampilkan Nilai

Bukan nol jika CDC objek adalah DC printer; jika tidak, 0.

CDC::LineTo

Menggambar garis dari posisi saat ini hingga, tetapi tidak termasuk, titik yang ditentukan oleh x dan y (atau point).

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

Parameter

x
Menentukan koordinat x logis titik akhir untuk baris.

y
Menentukan koordinat y logis titik akhir untuk baris.

point
Menentukan titik akhir untuk baris. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika garis digambar; jika tidak, 0.

Keterangan

Garis digambar dengan pena terpilih. Posisi saat ini diatur ke x, y atau ke point.

Contoh

Lihat contoh untuk CRect::CenterPoint.

CDC::LPtoDP

Mengonversi unit logis menjadi unit perangkat.

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

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

Parameter

lpPoints
Menunjuk ke array titik. Setiap titik dalam array adalah POINT struktur atau CPoint objek.

nCount
Jumlah titik dalam array.

lpRect
Menunjuk ke RECT struktur atau CRect objek. Parameter ini digunakan untuk kasus umum pemetaan persegi panjang dari unit logis ke perangkat.

lpSize
Menunjuk ke SIZE struktur atau CSize objek.

Keterangan

Fungsi ini memetakan koordinat setiap titik, atau dimensi ukuran, dari sistem koordinat logis GDI ke dalam sistem koordinat perangkat. Konversi tergantung pada mode pemetaan saat ini dan pengaturan asal dan luasnya jendela dan viewport perangkat.

Koordinat titik x dan y adalah bilangan bulat bertanda tangan 2 byte dalam rentang -32.768 hingga 32.767. Dalam kasus di mana mode pemetaan akan menghasilkan nilai yang lebih besar dari batas ini, sistem mengatur nilai masing-masing menjadi -32.768 dan 32.767.

CDC::LPtoHIMETRIC

Panggil fungsi ini untuk mengonversi unit logis menjadi HIMETRIC unit.

void LPtoHIMETRIC(LPSIZE lpSize) const;

Parameter

lpSize
Menunjuk ke SIZE struktur atau CSize objek.

Keterangan

Gunakan fungsi ini saat Anda memberikan HIMETRIC ukuran ke OLE, mengonversi dari mode pemetaan alami aplikasi Anda. Jangkauan jendela perangkat dan viewport akan memengaruhi hasilnya.

Konversi dilakukan dengan terlebih dahulu mengonversi unit logis menjadi piksel menggunakan unit pemetaan konteks perangkat saat ini dan kemudian mengonversi unit ini menjadi HIMETRIC unit.

CDC::m_hAttribDC

Konteks perangkat atribut untuk objek ini CDC .

HDC m_hAttribDC;

Keterangan

Secara default, konteks perangkat ini sama dengan m_hDC. Secara umum, CDC panggilan GDI yang meminta informasi dari konteks perangkat diarahkan ke m_hAttribDC. CDC Lihat deskripsi kelas untuk informasi selengkapnya tentang penggunaan dua konteks perangkat ini.

CDC::m_hDC

Konteks perangkat output untuk objek ini CDC .

HDC m_hDC;

Keterangan

Secara default, m_hDC sama dengan m_hAttribDC, konteks perangkat lain dibungkus oleh CDC. Secara umum, CDC panggilan GDI yang membuat output masuk ke m_hDC konteks perangkat. Anda dapat menginisialisasi m_hDC dan m_hAttribDC menunjuk ke perangkat yang berbeda. CDC Lihat deskripsi kelas untuk informasi selengkapnya tentang penggunaan dua konteks perangkat ini.

CDC::MaskBlt

Menggabungkan data warna untuk bitmap sumber dan tujuan menggunakan operasi masker dan raster yang diberikan.

BOOL MaskBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    CBitmap& maskBitmap,
    int xMask,
    int yMask,
    DWORD dwRop);

Parameter

x
Menentukan koordinat x logis dari sudut kiri atas persegi panjang tujuan.

y
Menentukan koordinat y logis dari sudut kiri atas persegi panjang tujuan.

nWidth
Menentukan lebar, dalam unit logis, dari persegi panjang tujuan dan bitmap sumber.

nHeight
Menentukan tinggi, dalam unit logis, dari persegi panjang tujuan dan bitmap sumber.

pSrcDC
Mengidentifikasi konteks perangkat tempat bitmap akan disalin. Ini harus nol jika dwRop parameter menentukan operasi raster yang tidak menyertakan sumber.

xSrc
Menentukan koordinat x logis dari sudut kiri atas bitmap sumber.

ySrc
Menentukan koordinat y logis dari sudut kiri atas bitmap sumber.

maskBitmap
Mengidentifikasi bitmap mask monokrom yang dikombinasikan dengan bitmap warna dalam konteks perangkat sumber.

xMask
Menentukan offset piksel horizontal untuk bitmap mask yang ditentukan oleh maskBitmap parameter .

yMask
Menentukan offset piksel vertikal untuk bitmap mask yang ditentukan oleh maskBitmap parameter .

dwRop
Menentukan kode operasi raster terner latar depan dan latar belakang, yang digunakan fungsi untuk mengontrol kombinasi data sumber dan tujuan. Kode operasi raster latar belakang disimpan dalam byte tinggi dari kata tinggi dari nilai ini; kode operasi raster latar depan disimpan dalam byte rendah dari kata tinggi dari nilai ini; kata rendah dari nilai ini diabaikan, dan harus nol. Makro MAKEROP4 membuat kombinasi kode operasi raster latar depan dan latar belakang seperti itu. Lihat bagian Keterangan untuk diskusi latar depan dan latar belakang dalam konteks fungsi ini. BitBlt Lihat fungsi anggota untuk daftar kode operasi raster umum.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Nilai 1 dalam masker yang ditentukan oleh maskBitmap menunjukkan bahwa kode operasi raster latar depan yang ditentukan harus dwRop diterapkan di lokasi tersebut. Nilai 0 dalam masker menunjukkan bahwa kode operasi raster latar belakang yang ditentukan harus dwRop diterapkan di lokasi tersebut. Jika operasi raster memerlukan sumber, persegi panjang masker harus menutupi persegi panjang sumber. Jika tidak, fungsi gagal. Jika operasi raster tidak memerlukan sumber, persegi panjang masker harus mencakup persegi panjang tujuan. Jika tidak, fungsi gagal.

Jika transformasi rotasi atau shear berlaku untuk konteks perangkat sumber saat fungsi ini dipanggil, kesalahan terjadi. Namun, jenis transformasi lain diizinkan.

Jika format warna bitmap sumber, pola, dan tujuan berbeda, fungsi ini mengonversi pola atau format sumber, atau keduanya, agar sesuai dengan format tujuan. Jika bitmap mask bukan bitmap monokrom, kesalahan terjadi. Ketika metafile yang ditingkatkan sedang direkam, kesalahan terjadi (dan fungsi mengembalikan 0) jika konteks perangkat sumber mengidentifikasi konteks perangkat metafile yang ditingkatkan. Tidak semua perangkat mendukung MaskBlt. Aplikasi harus memanggil GetDeviceCaps untuk menentukan apakah perangkat mendukung fungsi ini. Jika tidak ada bitmap mask yang disediakan, fungsi ini berperilaku persis seperti BitBlt, menggunakan kode operasi raster latar depan. Piksel mengimbangi dalam peta bitmap mask ke titik (0,0) dalam bitmap konteks perangkat sumber. Ini berguna untuk kasus di mana bitmap masker berisi sekumpulan masker; aplikasi dapat dengan mudah menerapkan salah satunya ke tugas mask-blitting dengan menyesuaikan offset piksel dan ukuran persegi panjang yang dikirim ke MaskBlt.

CDC::ModifyWorldTransform

Mengubah transformasi dunia untuk konteks perangkat menggunakan mode yang ditentukan.

BOOL ModifyWorldTransform(
    const XFORM& rXform,
    DWORD iMode);

Parameter

rXform
Referensi ke struktur yang XFORM digunakan untuk memodifikasi transformasi dunia untuk konteks perangkat tertentu.

iMode
Menentukan bagaimana data transformasi memodifikasi transformasi dunia saat ini. Untuk daftar nilai yang dapat diambil parameter ini, lihat ModifyWorldTransform.

Tampilkan Nilai

Mengembalikan nilai bukan nol pada keberhasilan.

Mengembalikan 0 pada kegagalan.

Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Keterangan

Metode ini membungkus fungsi ModifyWorldTransformWindows GDI .

CDC::MoveTo

Memindahkan posisi saat ini ke titik yang ditentukan oleh x dan y (atau oleh point).

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

Parameter

x
Menentukan koordinat x logis dari posisi baru.

y
Menentukan koordinat y logis dari posisi baru.

point
Menentukan posisi baru. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Koordinat x dan y dari posisi sebelumnya sebagai CPoint objek.

Contoh

Lihat contoh untuk CRect::CenterPoint.

CDC::OffsetClipRgn

Memindahkan wilayah kliping konteks perangkat oleh offset yang ditentukan.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

Parameter

x
Menentukan jumlah unit logis untuk berpindah ke kiri atau kanan.

y
Menentukan jumlah unit logis yang akan dipindahkan ke atas atau ke bawah.

size
Menentukan jumlah yang akan diimbangi.

Tampilkan Nilai

Jenis wilayah baru. Ini bisa menjadi salah satu nilai berikut:

  • COMPLEXREGION Wilayah kliping memiliki batas yang tumpang tindih.

  • ERROR Konteks perangkat tidak valid.

  • NULLREGION Wilayah kliping kosong.

  • SIMPLEREGION Wilayah kliping tidak memiliki batas yang tumpang tindih.

Keterangan

Fungsi ini memindahkan unit wilayah x di sepanjang sumbu x dan y unit di sepanjang sumbu y.

CDC::OffsetViewportOrg

Memodifikasi koordinat asal viewport relatif terhadap koordinat asal viewport saat ini.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

Parameter

nWidth
Menentukan jumlah unit perangkat yang akan ditambahkan ke koordinat x asal saat ini.

nHeight
Menentukan jumlah unit perangkat yang akan ditambahkan ke koordinat y asal saat ini.

Tampilkan Nilai

Asal viewport sebelumnya (dalam koordinat CPoint perangkat) sebagai objek.

CDC::OffsetWindowOrg

Memodifikasi koordinat asal jendela relatif terhadap koordinat asal jendela saat ini.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

Parameter

nWidth
Menentukan jumlah unit logis yang akan ditambahkan ke koordinat x asal saat ini.

nHeight
Menentukan jumlah unit logis yang akan ditambahkan ke koordinat y asal saat ini.

Tampilkan Nilai

Asal jendela sebelumnya (dalam koordinat logis) sebagai CPoint objek.

CDC::operator HDC

Gunakan operator ini untuk mengambil handel konteks perangkat objek CDC .

operator HDC() const;

Tampilkan Nilai

Jika berhasil, handel objek konteks perangkat; jika tidak, NULL.

Keterangan

Anda dapat menggunakan handel untuk memanggil API Windows secara langsung.

CDC::PaintRgn

Mengisi wilayah yang ditentukan dengan pRgn menggunakan kuas saat ini.

BOOL PaintRgn(CRgn* pRgn);

Parameter

pRgn
Mengidentifikasi wilayah yang akan diisi. Koordinat untuk wilayah tertentu ditentukan dalam unit logis.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

CDC::PatBlt

Membuat pola bit pada perangkat.

BOOL PatBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    DWORD dwRop);

Parameter

x
Menentukan koordinat x logis dari sudut kiri atas persegi panjang yang akan menerima pola.

y
Menentukan koordinat y logis dari sudut kiri atas persegi panjang yang akan menerima pola.

nWidth
Menentukan lebar (dalam unit logis) persegi panjang yang akan menerima pola.

nHeight
Menentukan tinggi (dalam unit logis) persegi panjang yang akan menerima pola.

dwRop
Menentukan kode operasi raster. Kode operasi raster (ROP) menentukan bagaimana GDI menggabungkan warna dalam operasi output yang melibatkan kuas saat ini, bitmap sumber yang mungkin, dan bitmap tujuan. Parameter ini bisa menjadi salah satu nilai berikut:

  • PATCOPY Menyalin pola ke bitmap tujuan.

  • PATINVERT Menggabungkan bitmap tujuan dengan pola menggunakan operator Boolean XOR (^).

  • DSTINVERT Menginversi bitmap tujuan.

  • BLACKNESS Mengubah semua output menjadi hitam.

  • WHITENESS Mengubah semua output menjadi putih.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Polanya adalah kombinasi dari kuas yang dipilih dan pola yang sudah ada pada perangkat. Kode operasi raster yang ditentukan oleh dwRop menentukan bagaimana pola akan digabungkan. Operasi raster yang tercantum untuk fungsi ini adalah subset terbatas dari 256 kode operasi raster terner lengkap; khususnya, kode operasi raster yang mengacu pada sumber tidak dapat digunakan.

Tidak semua konteks perangkat mendukung PatBlt fungsi. Untuk menentukan apakah konteks perangkat mendukung PatBlt, panggil GetDeviceCaps fungsi anggota dengan RASTERCAPS indeks dan periksa nilai pengembalian untuk RC_BITBLT bendera.

CDC::Pie

Menggambar iringan berbentuk pai dengan menggambar busur elips yang tengahnya dan dua titik akhir digabungkan oleh garis.

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

Parameter

x1
Menentukan koordinat x dari sudut kiri atas persegi panjang pembatas (dalam unit logis).

y1
Menentukan koordinat y dari sudut kiri atas persegi panjang pembatas (dalam unit logis).

x2
Menentukan koordinat x dari sudut kanan bawah persegi panjang pembatas (dalam unit logis).

y2
Menentukan koordinat y dari sudut kanan bawah persegi panjang pembatas (dalam unit logis).

x3
Menentukan koordinat x dari titik awal arc (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

y3
Menentukan koordinat y dari titik awal busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

x4
Menentukan koordinat x titik akhir busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

y4
Menentukan koordinat y dari titik akhir busur (dalam unit logis). Titik ini tidak harus berbohong persis di busur.

lpRect
Menentukan persegi panjang pembatas. Anda dapat meneruskan CRect objek atau penunjuk ke RECT struktur untuk parameter ini.

ptStart
Menentukan titik awal busur. Titik ini tidak harus berbohong persis di busur. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

ptEnd
Menentukan titik akhir busur. Titik ini tidak harus berbohong persis di busur. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Pusat busur adalah pusat persegi panjang pembatas yang ditentukan oleh x1, , y1, x2dan y2 (atau oleh lpRect). Titik awal dan akhir busur ditentukan oleh x3, , y3, x4dan y4 (atau oleh ptStart dan ptEnd).

Busur digambar dengan pena yang dipilih, bergerak ke arah berlawanan arah jaga. Dua garis lagi digambar dari setiap titik akhir ke tengah busur. Area berbentuk pai diisi dengan kuas saat ini. Jika x3 sama dengan x4 dan y3 sama dengan y4, hasilnya adalah elips dengan satu baris dari tengah elips ke titik (x3, y3) atau (x4, y4).

Gambar yang digambar oleh fungsi ini meluas hingga tetapi tidak menyertakan koordinat kanan dan bawah. Ini berarti bahwa tinggi gambar adalah y2 - y1 dan lebar gambar adalah .x2 - x1 Lebar dan tinggi persegi panjang pembatas harus lebih besar dari 2 unit dan kurang dari 32.767 unit.

Contoh

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

Memutar konten metafile yang ditentukan pada konteks perangkat.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

Parameter

hMF
Mengidentifikasi metafile yang akan dimainkan.

hEnhMetaFile
Mengidentifikasi metafile yang ditingkatkan.

lpBounds
Menunjuk ke RECT struktur atau CRect objek yang berisi koordinat persegi panjang pembatas yang digunakan untuk menampilkan gambar. Koordinat ditentukan dalam unit logis.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Metafile dapat diputar berapa kali.

Versi PlayMetaFile kedua menampilkan gambar yang disimpan dalam metafile format yang disempurnakan yang diberikan. Ketika aplikasi memanggil versi PlayMetaFilekedua , Windows menggunakan bingkai gambar di header metafile yang disempurnakan untuk memetakan gambar ke persegi yang diarahkan oleh parameter lpBounds . (Gambar ini dapat dikuliti atau diputar dengan mengatur transformasi dunia di perangkat output sebelum memanggil PlayMetaFile.) Titik di sepanjang tepi persegi disertakan dalam gambar. Gambar metafile yang disempurnakan dapat diklip dengan menentukan wilayah kliping di perangkat output sebelum memutar metafile yang ditingkatkan.

Jika metafile yang ditingkatkan berisi palet opsional, aplikasi dapat mencapai warna yang konsisten dengan menyiapkan palet warna pada perangkat output sebelum memanggil versi kedua .PlayMetaFile Untuk mengambil palet opsional, gunakan GetEnhMetaFilePaletteEntries fungsi Windows. Metafile yang ditingkatkan dapat disematkan dalam metafile yang baru dibuat dengan memanggil versi PlayMetaFile kedua dan memutar metafile yang ditingkatkan sumber ke dalam konteks perangkat untuk metafile baru yang ditingkatkan.

Status konteks perangkat output dipertahankan oleh fungsi ini. Objek apa pun yang dibuat tetapi tidak dihapus dalam metafile yang ditingkatkan dihapus oleh fungsi ini. Untuk menghentikan fungsi ini, aplikasi dapat memanggil CancelDC fungsi Windows dari utas lain untuk mengakhiri operasi. Dalam hal ini, fungsi mengembalikan nol.

CDC::PlgBlt

Melakukan transfer bit-block dari bit data warna dari persegi panjang yang ditentukan dalam konteks perangkat sumber ke parallelogram yang ditentukan dalam konteks perangkat tertentu.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

Parameter

lpPoint
Menunjuk ke array tiga titik dalam ruang logis yang mengidentifikasi tiga sudut paralelogram tujuan. Sudut kiri atas persegi panjang sumber dipetakan ke titik pertama dalam array ini, sudut kanan atas ke titik kedua dalam array ini, dan sudut kiri bawah ke titik ketiga. Sudut kanan bawah persegi panjang sumber dipetakan ke titik keempat implisit dalam parallelogram.

pSrcDC
Mengidentifikasi konteks perangkat sumber.

xSrc
Menentukan koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang sumber.

ySrc
Menentukan koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang sumber.

nWidth
Menentukan lebar, dalam unit logis, dari persegi panjang sumber.

nHeight
Menentukan tinggi, dalam unit logis, dari persegi panjang sumber.

maskBitmap
Mengidentifikasi bitmap monokrom opsional yang digunakan untuk menutupi warna persegi panjang sumber.

xMask
Menentukan koordinat x dari sudut kiri atas bitmap monokrom.

yMask
Menentukan koordinat y dari sudut kiri atas bitmap monokrom.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Jika handel bitmask yang diberikan mengidentifikasi bitmap monokrom yang valid, fungsi menggunakan bitmap ini untuk menutupi bit data warna dari persegi panjang sumber.

Puncak keempat parallelogram (D) didefinisikan dengan memperlakukan tiga titik pertama (A, B, dan C) sebagai vektor dan komputasi D = B + C - A.

Jika bitmask ada, nilai 1 dalam masker menunjukkan bahwa warna piksel sumber harus disalin ke tujuan. Nilai 0 dalam masker menunjukkan bahwa warna piksel tujuan tidak akan diubah.

Jika persegi panjang masker lebih kecil dari persegi panjang sumber dan tujuan, fungsi mereplikasi pola masker.

Transformasi penskalaan, terjemahan, dan pantulan diizinkan dalam konteks perangkat sumber; namun, transformasi rotasi dan shear tidak. Jika bitmap mask bukan bitmap monokrom, kesalahan terjadi. Mode peregangan untuk konteks perangkat tujuan digunakan untuk menentukan cara meregangkan atau memadatkan piksel, jika diperlukan. Ketika metafile yang ditingkatkan sedang direkam, kesalahan terjadi jika konteks perangkat sumber mengidentifikasi konteks perangkat metafile yang ditingkatkan.

Koordinat tujuan diubah sesuai dengan konteks perangkat tujuan; koordinat sumber diubah sesuai dengan konteks perangkat sumber. Jika transformasi sumber memiliki rotasi atau shear, kesalahan akan ditampilkan. Jika tujuan dan persegi panjang sumber tidak memiliki format warna yang sama, PlgBlt mengonversi persegi panjang sumber agar sesuai dengan persegi tujuan. Tidak semua perangkat mendukung PlgBlt. Untuk informasi selengkapnya, lihat deskripsi RC_BITBLT kemampuan raster dalam CDC::GetDeviceCaps fungsi anggota.

Jika konteks perangkat sumber dan tujuan mewakili perangkat yang tidak kompatibel, PlgBlt mengembalikan kesalahan.

CDC::PolyBezier

Menggambar satu atau beberapa spline Bzier.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

Parameter

lpPoints
Menunjuk ke array POINT struktur data yang berisi titik akhir dan titik kontrol spline.

nCount
Menentukan jumlah titik dalam lpPoints array. Nilai ini harus satu lebih dari tiga kali jumlah spline yang akan digambar, karena setiap spline Bzier memerlukan dua titik kontrol dan titik akhir, dan spline awal memerlukan titik awal lain.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi ini menggambar spline Bzier kubik dengan menggunakan titik akhir dan titik kontrol yang ditentukan oleh lpPoints parameter . Spline pertama ditarik dari poin pertama ke poin keempat dengan menggunakan poin kedua dan ketiga sebagai titik kontrol. Setiap spline berikutnya dalam urutan membutuhkan tepat tiga titik lagi: titik akhir spline sebelumnya digunakan sebagai titik awal, dua titik berikutnya dalam urutan adalah titik kontrol, dan yang ketiga adalah titik akhir.

Posisi saat ini tidak digunakan atau diperbarui oleh PolyBezier fungsi . Gambarnya tidak terisi. Fungsi ini menggambar garis dengan menggunakan pena saat ini.

CDC::PolyBezierTo

Menggambar satu atau beberapa spline Bzier.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

Parameter

lpPoints
Menunjuk ke array POINT struktur data yang berisi titik akhir dan titik kontrol.

nCount
Menentukan jumlah titik dalam lpPoints array. Nilai ini harus tiga kali jumlah spline yang akan digambar, karena setiap spline Bzier memerlukan dua titik kontrol dan titik akhir.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi ini menggambar spline Bzier kubik dengan menggunakan titik kontrol yang ditentukan oleh lpPoints parameter . Spline pertama ditarik dari posisi saat ini ke poin ketiga dengan menggunakan dua poin pertama sebagai titik kontrol. Untuk setiap spline berikutnya, fungsi membutuhkan tepat tiga titik lagi, dan menggunakan titik akhir spline sebelumnya sebagai titik awal untuk berikutnya. PolyBezierTo memindahkan posisi saat ini ke titik akhir spline Bzier terakhir. Gambarnya tidak terisi. Fungsi ini menggambar garis dengan menggunakan pena saat ini.

Contoh

Lihat contoh untuk CDC::BeginPath.

CDC::PolyDraw

Menggambar sekumpulan segmen garis dan spline Bzier.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

Parameter

lpPoints
Menunjuk ke array POINT struktur data yang berisi titik akhir untuk setiap segmen garis dan titik akhir dan titik kontrol untuk setiap spline Bzier.

lpTypes
Menunjuk ke array yang menentukan bagaimana setiap titik dalam lpPoints array digunakan. Nilai bisa menjadi salah satu dari yang berikut ini:

  • PT_MOVETO Menentukan bahwa titik ini memulai figur yang terputar. Titik ini menjadi posisi baru saat ini.

  • PT_LINETO Menentukan bahwa garis akan digambar dari posisi saat ini ke titik ini, yang kemudian menjadi posisi baru saat ini.

  • PT_BEZIERTO Menentukan bahwa titik ini adalah titik kontrol atau titik akhir untuk spline Bzier.

PT_BEZIERTO jenis selalu terjadi dalam set tiga. Posisi saat ini mendefinisikan titik awal untuk spline Bzier. Dua PT_BEZIERTO poin pertama adalah titik kontrol, dan poin ketiga PT_BEZIERTO adalah titik akhir. Titik akhir menjadi posisi baru saat ini. Jika tidak ada tiga poin berturut-turut PT_BEZIERTO , hasil kesalahan.

Atau PT_LINETO PT_BEZIERTO jenis dapat dikombinasikan dengan konstanta berikut dengan menggunakan operator bitwise ATAU untuk menunjukkan bahwa titik yang sesuai adalah titik terakhir dalam gambar dan gambar ditutup:

  • PT_CLOSEFIGURE Menentukan bahwa gambar ditutup secara otomatis setelah PT_LINETO atau PT_BEZIERTO jenis untuk titik ini selesai. Garis digambar dari titik ini ke yang terbaru PT_MOVETO atau MoveTo titik.

    Bendera ini dikombinasikan dengan PT_LINETO jenis untuk garis, atau dengan PT_BEZIERTO jenis titik akhir untuk spline Bzier, dengan menggunakan operator BITWISE OR . Posisi saat ini diatur ke titik akhir baris penutup.

nCount
Menentukan jumlah total titik dalam lpPoints array, sama dengan jumlah byte dalam lpTypes array.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi ini dapat digunakan untuk menggambar figur yang putus-putus sebagai pengganti panggilan berturut-turut ke CDC::MoveTofungsi anggota , CDC::LineTo, dan CDC::PolyBezierTo . Garis dan spline digambar menggunakan pena saat ini, dan gambar tidak diisi. Jika ada jalur aktif yang dimulai dengan memanggil CDC::BeginPath fungsi anggota, PolyDraw tambahkan ke jalur . Titik yang terkandung dalam lpPoints array dan dalam lpTypes menunjukkan apakah setiap titik adalah bagian CDC::MoveTodari , CDC::LineTo, atau CDC::BezierTo operasi. Dimungkinkan juga untuk menutup angka. Fungsi ini memperbarui posisi saat ini.

Contoh

Lihat contoh untuk CDC::BeginPath.

CDC::Polygon

Menggambar poligon yang terdiri dari dua titik atau lebih (simpul) yang disambungkan oleh garis, menggunakan pena saat ini.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

Parameter

lpPoints
Menunjuk ke array titik yang menentukan simpul poligon. Setiap titik dalam array adalah POINT struktur atau CPoint objek.

nCount
Menentukan jumlah simpul dalam array.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Sistem menutup poligon secara otomatis, jika perlu, dengan menggambar garis dari puncak terakhir ke yang pertama.

Mode pengisian poligon saat ini dapat diambil atau diatur dengan menggunakan GetPolyFillMode fungsi anggota dan SetPolyFillMode .

Contoh

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

Menggambar sekumpulan segmen garis yang menghubungkan titik yang ditentukan oleh lpPoints.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

Parameter

lpPoints
Menunjuk ke array POINT struktur atau CPoint objek yang akan disambungkan.

nCount`
Menentukan jumlah titik dalam array. Nilai ini harus minimal 2.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Garis ditarik dari titik pertama melalui titik berikutnya menggunakan pena saat ini. LineTo Tidak seperti fungsi anggota, Polyline fungsi tidak menggunakan atau memperbarui posisi saat ini.

Untuk informasi selengkapnya, lihat PolyLine di Windows SDK.

CDC::PolylineTo

Menggambar satu atau beberapa garis lurus.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

Parameter

lpPoints
Menunjuk ke array POINT struktur data yang berisi simpul baris.

nCount
Menentukan jumlah titik dalam array.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Garis digambar dari posisi saat ini ke titik pertama yang ditentukan oleh lpPoints parameter dengan menggunakan pena saat ini. Untuk setiap baris tambahan, fungsi menarik dari titik akhir baris sebelumnya ke titik berikutnya yang ditentukan oleh lpPoints. PolylineTo memindahkan posisi saat ini ke titik akhir baris terakhir. Jika segmen garis yang digambar oleh fungsi ini membentuk gambar tertutup, gambar tidak diisi.

CDC::PolyPolygon

Membuat dua poligon atau lebih yang diisi menggunakan mode pengisian poligon saat ini.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

Parameter

lpPoints
Menunjuk ke array POINT struktur atau CPoint objek yang menentukan simpul poligon.

lpPolyCounts
Menunjuk ke array bilangan bulat, yang masing-masing menentukan jumlah titik dalam salah satu poligon dalam lpPoints array.

nCount
Jumlah entri dalam lpPolyCounts array. Angka ini menentukan jumlah poligon yang akan digambar. Nilai ini harus minimal 2.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Poligon mungkin terputus-putus atau tumpang tindih.

Setiap poligon yang ditentukan dalam panggilan ke PolyPolygon fungsi harus ditutup. Tidak seperti poligon yang dibuat oleh Polygon fungsi anggota, poligon yang dibuat oleh PolyPolygon tidak ditutup secara otomatis.

Fungsi ini membuat dua poligon atau lebih. Untuk membuat satu poligon, aplikasi harus menggunakan Polygon fungsi anggota.

Mode pengisian poligon saat ini dapat diambil atau diatur dengan menggunakan GetPolyFillMode fungsi anggota dan SetPolyFillMode .

CDC::PolyPolyline

Menggambar beberapa rangkaian segmen garis yang tersambung.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

Parameter

lpPoints
Menunjuk ke array struktur yang berisi simpul poliline. Poliline ditentukan secara berturut-turut.

lpPolyPoints
Menunjuk ke array variabel yang menentukan jumlah titik dalam lpPoints array untuk poligon yang sesuai. Setiap entri harus lebih besar dari atau sama dengan 2.

nCount
Menentukan jumlah total jumlah dalam lpPolyPoints array.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Segmen garis digambar dengan menggunakan pena saat ini. Angka yang dibentuk oleh segmen tidak diisi. Posisi saat ini tidak digunakan atau diperbarui oleh fungsi ini.

CDC::PtVisible

Menentukan apakah titik yang diberikan berada dalam wilayah kliping konteks perangkat.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

Parameter

x
Menentukan koordinat x logis dari titik tersebut.

y
Menentukan koordinat y logis dari titik tersebut.

point
Menentukan titik untuk memeriksa koordinat logis. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika titik yang ditentukan berada dalam wilayah kliping; jika tidak, 0.

CDC::QueryAbort

Memanggil fungsi batalkan yang diinstal oleh SetAbortProc fungsi anggota untuk aplikasi pencetakan dan kueri apakah pencetakan harus dihentikan.

BOOL QueryAbort() const;

Tampilkan Nilai

Nilai yang dikembalikan bukan nol jika pencetakan harus berlanjut atau jika tidak ada prosedur pembatalan. Ini adalah 0 jika pekerjaan cetak harus dihentikan. Nilai yang dikembalikan disediakan oleh fungsi batalkan.

CDC::RealizePalette

Memetakan entri dari palet logis saat ini ke palet sistem.

UINT RealizePalette();

Tampilkan Nilai

Menunjukkan berapa banyak entri dalam palet logis yang dipetakan ke entri yang berbeda dalam palet sistem. Ini menunjukkan jumlah entri yang dipetakan ulang fungsi ini untuk mengakomodasi perubahan palet sistem sejak palet logis terakhir kali direalisasikan.

Keterangan

Palet warna logis bertindak sebagai buffer antara aplikasi intensif warna dan sistem, memungkinkan aplikasi untuk menggunakan warna sebanyak yang diperlukan tanpa mengganggu warna yang ditampilkan sendiri atau dengan warna yang ditampilkan oleh jendela lain.

Ketika jendela memiliki fokus input dan panggilan RealizePalette, Windows memastikan bahwa jendela akan menampilkan semua warna yang diminta, hingga nomor maksimum yang tersedia secara bersamaan di layar. Windows juga menampilkan warna yang tidak ditemukan di palet jendela dengan mencocokkannya dengan warna yang tersedia.

Selain itu, Windows cocok dengan warna yang diminta oleh jendela tidak aktif yang memanggil fungsi sedekat mungkin dengan warna yang tersedia. Ini secara signifikan mengurangi perubahan yang tidak diinginkan dalam warna yang ditampilkan di jendela yang tidak aktif.

CDC::Rectangle

Menggambar persegi panjang menggunakan pena saat ini.

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

BOOL Rectangle(LPCRECT lpRect);

Parameter

x1
Menentukan koordinat x dari sudut kiri atas persegi panjang (dalam unit logis).

y1
Menentukan koordinat y dari sudut kiri atas persegi panjang (dalam unit logis).

x2
Menentukan koordinat x dari sudut kanan bawah persegi panjang (dalam unit logis).

y2
Menentukan koordinat y dari sudut kanan bawah persegi panjang (dalam unit logis).

lpRect
Menentukan persegi dalam unit logis. Anda dapat meneruskan CRect objek atau penunjuk ke RECT struktur untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Interior persegi panjang diisi menggunakan kuas saat ini.

Persegi panjang meluas hingga, tetapi tidak termasuk, koordinat kanan dan bawah. Ini berarti bahwa tinggi persegi panjang adalah y2 - y1 dan lebar persegi panjang adalah .x2 - x1 Lebar dan tinggi persegi panjang harus lebih besar dari 2 unit dan kurang dari 32.767 unit.

Contoh

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

Menentukan apakah ada bagian dari persegi panjang yang diberikan terletak di dalam wilayah kliping konteks tampilan.

virtual BOOL RectVisible(LPCRECT lpRect) const;

Parameter

lpRect
Menunjuk ke RECT struktur atau CRect objek yang berisi koordinat logis persegi panjang yang ditentukan.

Tampilkan Nilai

Bukan nol jika ada bagian dari persegi panjang yang diberikan terletak di dalam wilayah kliping; jika tidak, 0.

CDC::ReleaseAttribDC

Panggil fungsi anggota ini untuk diatur m_hAttribDC ke NULL.

virtual void ReleaseAttribDC();

Keterangan

Ini tidak menyebabkan Detach terjadinya. Hanya konteks perangkat output yang dilampirkan ke CDC objek, dan hanya dapat dilepaskan.

CDC::ReleaseOutputDC

Panggil fungsi anggota ini untuk mengatur anggota ke m_hDC NULL.

virtual void ReleaseOutputDC();

Keterangan

Fungsi anggota ini tidak dapat dipanggil ketika konteks perangkat output dilampirkan ke CDC objek. Detach Gunakan fungsi anggota untuk melepaskan konteks perangkat output.

CDC::ResetDC

Panggil fungsi anggota ini untuk memperbarui konteks perangkat yang dibungkus CDC oleh objek.

BOOL ResetDC(const DEVMODE* lpDevMode);

Parameter

lpDevMode
Penunjuk ke struktur Windows DEVMODE .

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Konteks perangkat diperbarui dari informasi yang ditentukan dalam struktur Windows DEVMODE . Fungsi anggota ini hanya mengatur ulang konteks perangkat atribut.

Aplikasi biasanya akan menggunakan ResetDC fungsi anggota saat jendela memproses WM_DEVMODECHANGE pesan. Anda juga dapat menggunakan fungsi anggota ini untuk mengubah orientasi kertas atau bin kertas saat mencetak dokumen.

Anda tidak dapat menggunakan fungsi anggota ini untuk mengubah nama driver, nama perangkat, atau port output. Saat pengguna mengubah koneksi port atau nama perangkat, Anda harus menghapus konteks perangkat asli dan membuat konteks perangkat baru dengan informasi baru.

Sebelum memanggil fungsi anggota ini, Anda harus memastikan bahwa semua objek (selain objek stok) yang telah dipilih ke dalam konteks perangkat telah dipilih.

CDC::RestoreDC

Memulihkan konteks perangkat ke status sebelumnya yang diidentifikasi oleh nSavedDC.

virtual BOOL RestoreDC(int nSavedDC);

Parameter

nSavedDC
Menentukan konteks perangkat yang akan dipulihkan. Ini bisa menjadi nilai yang dikembalikan oleh panggilan fungsi sebelumnya SaveDC . Jika nSavedDC -1, konteks perangkat yang terakhir disimpan akan dipulihkan.

Tampilkan Nilai

Bukan nol jika konteks yang ditentukan dipulihkan; jika tidak, 0.

Keterangan

RestoreDC memulihkan konteks perangkat dengan memunculkan informasi status dari tumpukan yang dibuat oleh panggilan sebelumnya ke SaveDC fungsi anggota.

Tumpukan dapat berisi informasi status untuk beberapa konteks perangkat. Jika konteks yang ditentukan oleh nSavedDC tidak berada di bagian atas tumpukan, RestoreDC menghapus semua informasi status antara konteks perangkat yang ditentukan oleh nSavedDC dan bagian atas tumpukan. Informasi yang dihapus hilang.

CDC::RoundRect

Menggambar persegi panjang dengan sudut bulat menggunakan pena saat ini.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

Parameter

x1
Menentukan koordinat x dari sudut kiri atas persegi panjang (dalam unit logis).

y1
Menentukan koordinat y dari sudut kiri atas persegi panjang (dalam unit logis).

x2
Menentukan koordinat x dari sudut kanan bawah persegi panjang (dalam unit logis).

y2
Menentukan koordinat y dari sudut kanan bawah persegi panjang (dalam unit logis).

x3
Menentukan lebar elips yang digunakan untuk menggambar sudut bulat (dalam unit logis).

y3
Menentukan tinggi elips yang digunakan untuk menggambar sudut bulat (dalam unit logis).

lpRect
Menentukan persegi panjang pembatas dalam unit logis. Anda dapat meneruskan CRect objek atau penunjuk ke RECT struktur untuk parameter ini.

point
Koordinat point x menentukan lebar elips untuk menggambar sudut bulat (dalam unit logis). Koordinat point y menentukan tinggi elips untuk menggambar sudut bulat (dalam unit logis). Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Interior persegi panjang diisi menggunakan kuas saat ini.

Gambar yang digambar fungsi ini meluas hingga tetapi tidak menyertakan koordinat kanan dan bawah. Ini berarti bahwa tinggi gambar adalah y2 - y1 dan lebar gambar adalah .x2 - x1 Tinggi dan lebar persegi panjang pembatas harus lebih besar dari 2 unit dan kurang dari 32.767 unit.

Contoh

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

Menyimpan status konteks perangkat saat ini dengan menyalin informasi status (seperti wilayah kliping, objek yang dipilih, dan mode pemetaan) ke tumpukan konteks yang dikelola oleh Windows.

virtual int SaveDC();

Tampilkan Nilai

Bilangan bulat yang mengidentifikasi konteks perangkat yang disimpan. Ini adalah 0 jika terjadi kesalahan. Nilai pengembalian ini dapat digunakan untuk memulihkan konteks perangkat dengan memanggil RestoreDC.

Keterangan

Konteks perangkat yang disimpan nantinya dapat dipulihkan dengan menggunakan RestoreDC.

SaveDC dapat digunakan berapa kali untuk menyimpan sejumlah status konteks perangkat.

CDC::ScaleViewportExt

Memodifikasi tingkat viewport relatif terhadap nilai saat ini.

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameter

xNum
Menentukan jumlah untuk mengalikan x-extent saat ini.

xDenom
Menentukan jumlah untuk membagi hasil mengalikan x saat ini dengan nilai xNum parameter.

yNum
Menentukan jumlah untuk mengalikan tingkat y saat ini.

yDenom
Menentukan jumlah untuk membagi hasil mengalikan tingkat y saat ini dengan nilai yNum parameter.

Tampilkan Nilai

Jangkauan viewport sebelumnya (dalam unit perangkat) sebagai CSize objek.

Keterangan

Rumus ditulis sebagai berikut:

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

Tingkat viewport baru dihitung dengan mengalikan tingkat saat ini dengan pembimbing yang diberikan dan kemudian dibagi dengan denominator yang diberikan.

CDC::ScaleWindowExt

Memodifikasi jangkauan jendela relatif terhadap nilai saat ini.

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameter

xNum
Menentukan jumlah untuk mengalikan x-extent saat ini.

xDenom
Menentukan jumlah untuk membagi hasil mengalikan x saat ini dengan nilai xNum parameter.

yNum
Menentukan jumlah untuk mengalikan tingkat y saat ini.

yDenom
Menentukan jumlah untuk membagi hasil mengalikan tingkat y saat ini dengan nilai yNum parameter.

Tampilkan Nilai

Jangkauan jendela sebelumnya (dalam unit logis) sebagai CSize objek.

Keterangan

Rumus ditulis sebagai berikut:

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

Tingkat jendela baru dihitung dengan mengalikan tingkat saat ini dengan pembimbing yang diberikan dan kemudian dibagi dengan denominator yang diberikan.

CDC::ScrollDC

Menggulir persegi panjang bit secara horizontal dan vertikal.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

Parameter

dx
Menentukan jumlah unit gulir horizontal.

dy
Menentukan jumlah unit gulir vertikal.

lpRectScroll
Arahkan ke RECT struktur atau CRect objek yang berisi koordinat persegi panjang gulir.

lpRectClip
Arahkan ke RECT struktur atau CRect objek yang berisi koordinat persegi panjang kliping. Ketika persegi panjang ini lebih kecil dari yang asli yang diajuk oleh lpRectScroll, pengguliran hanya terjadi di persegi panjang yang lebih kecil.

pRgnUpdate
Mengidentifikasi wilayah yang tidak terungkap oleh proses pengguliran. Fungsi ScrollDC mendefinisikan wilayah ini; belum tentu persegi panjang.

lpRectUpdate
Arahkan ke RECT struktur atau CRect objek yang menerima koordinat persegi panjang yang mengikat wilayah pembaruan gulir. Ini adalah area persegi panjang terbesar yang memerlukan pengecatan ulang. Nilai dalam struktur atau objek saat fungsi kembali berada dalam koordinat klien, terlepas dari mode pemetaan untuk konteks perangkat yang diberikan.

Tampilkan Nilai

Bukan nol jika pengguliran dijalankan; jika tidak, 0.

Keterangan

Jika lpRectUpdate adalah NULL, Windows tidak menghitung persegi panjang pembaruan. Jika keduanya pRgnUpdate dan lpRectUpdate , NULLWindows tidak menghitung wilayah pembaruan. Jika pRgnUpdate tidak NULL, Windows mengasumsikan bahwa ia berisi penunjuk yang valid ke wilayah yang tidak terungkap oleh proses pengguliran (didefinisikan oleh ScrollDC fungsi anggota). Wilayah pembaruan yang dikembalikan dapat diteruskan lpRectUpdate ke CWnd::InvalidateRgn jika diperlukan.

Aplikasi harus menggunakan ScrollWindow fungsi anggota kelas CWnd saat diperlukan untuk menggulir seluruh area klien jendela. Jika tidak, ia harus menggunakan ScrollDC.

CDC::SelectClipPath

Memilih jalur saat ini sebagai wilayah kliping untuk konteks perangkat, menggabungkan wilayah baru dengan wilayah kliping yang ada dengan menggunakan mode yang ditentukan.

BOOL SelectClipPath(int nMode);

Parameter

nMode
Menentukan cara untuk menggunakan jalur. Nilai berikut ini diperbolehkan:

  • RGN_AND Wilayah kliping baru mencakup persimpangan (area tumpang tindih) dari wilayah kliping saat ini dan jalur saat ini.

  • RGN_COPY Wilayah kliping baru adalah jalur saat ini.

  • RGN_DIFF Wilayah kliping baru mencakup area wilayah kliping saat ini, dan wilayah dari jalur saat ini dikecualikan.

  • RGN_OR Wilayah kliping baru mencakup gabungan (area gabungan) dari wilayah kliping saat ini dan jalur saat ini.

  • RGN_XOR Wilayah kliping baru mencakup penyatuan wilayah kliping saat ini dan jalur saat ini, tetapi tanpa area yang tumpang tindih.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Konteks perangkat yang diidentifikasi harus berisi jalur tertutup.

CDC::SelectClipRgn

Memilih wilayah yang diberikan sebagai wilayah kliping saat ini untuk konteks perangkat.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

Parameter

pRgn
Mengidentifikasi wilayah yang akan dipilih.

  • Untuk versi pertama fungsi ini, jika nilai ini adalah NULL, seluruh area klien dipilih dan output masih diklip ke jendela.

  • Untuk versi kedua fungsi ini, handel ini hanya dapat NULL ketika RGN_COPY mode ditentukan.

nMode
Menentukan operasi yang akan dilakukan. Ini harus menjadi salah satu nilai berikut:

  • RGN_AND Wilayah kliping baru menggabungkan area tumpang tindih dari wilayah kliping saat ini dan wilayah yang diidentifikasi oleh pRgn.

  • RGN_COPY Wilayah kliping baru adalah salinan wilayah yang diidentifikasi oleh pRgn. Ini adalah fungsionalitas identik dengan versi SelectClipRgnpertama . Jika wilayah yang diidentifikasi oleh pRgn adalah NULL, wilayah kliping baru menjadi wilayah kliping default (wilayah null).

  • RGN_DIFF Wilayah kliping baru menggabungkan area wilayah kliping saat ini dengan area yang dikecualikan dari wilayah yang diidentifikasi oleh pRgn.

  • RGN_OR Wilayah kliping baru menggabungkan wilayah kliping saat ini dan wilayah yang diidentifikasi oleh pRgn.

  • RGN_XOR Wilayah kliping baru menggabungkan wilayah kliping saat ini dan wilayah yang diidentifikasi tetapi pRgn tidak termasuk area yang tumpang tindih.

Tampilkan Nilai

Jenis wilayah. Ini bisa menjadi salah satu nilai berikut:

  • COMPLEXREGION Wilayah kliping baru memiliki batas yang tumpang tindih.

  • ERROR Konteks atau wilayah perangkat tidak valid.

  • NULLREGION Wilayah kliping baru kosong.

  • SIMPLEREGION Wilayah kliping baru tidak memiliki batas yang tumpang tindih.

Keterangan

Hanya salinan wilayah yang dipilih yang digunakan. Wilayah itu sendiri dapat dipilih untuk sejumlah konteks perangkat lain, atau dapat dihapus.

Fungsi ini mengasumsikan bahwa koordinat untuk wilayah tertentu ditentukan dalam unit perangkat. Beberapa perangkat printer mendukung output teks pada resolusi yang lebih tinggi daripada output grafis untuk mempertahankan presisi yang diperlukan untuk mengekspresikan metrik teks. Perangkat ini melaporkan unit perangkat pada resolusi yang lebih tinggi, yaitu, dalam unit teks. Perangkat ini kemudian menskalakan koordinat untuk grafis sehingga beberapa unit perangkat yang dilaporkan hanya memetakan ke 1 unit grafis. Anda harus selalu memanggil SelectClipRgn fungsi menggunakan unit teks.

Aplikasi yang harus mengambil penskalaan objek grafis di GDI dapat menggunakan GETSCALINGFACTOR escape printer untuk menentukan faktor penskalaan. Faktor penskalaan ini memengaruhi kliping. Jika wilayah digunakan untuk mengklip grafik, GDI membagi koordinat dengan faktor penskalakan. Jika wilayah digunakan untuk mengklip teks, GDI tidak membuat penyesuaian penskalaan. Faktor penskalaan 1 menyebabkan koordinat dibagi 2; faktor penskalaan 2 menyebabkan koordinat dibagi 4; dan sebagainya.

CDC::SelectObject

Memilih objek ke dalam konteks perangkat.

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

Parameter

pPen
Penunjuk ke objek yang CPen akan dipilih.

pBrush
Penunjuk ke objek yang CBrush akan dipilih.

pFont
Penunjuk ke objek yang CFont akan dipilih.

pBitmap
Penunjuk ke objek yang CBitmap akan dipilih.

pRgn
Penunjuk ke objek yang CRgn akan dipilih.

pObject
Penunjuk ke objek yang CGdiObject akan dipilih.

Tampilkan Nilai

Penunjuk ke objek yang diganti. Ini adalah penunjuk ke objek dari salah satu kelas yang berasal dari CGdiObject, seperti CPen, tergantung pada versi fungsi mana yang digunakan. Nilai yang dikembalikan adalah NULL jika ada kesalahan. Fungsi ini dapat mengembalikan penunjuk ke objek sementara. Objek sementara ini hanya valid selama pemrosesan satu pesan Windows. Untuk informasi selengkapnya, lihat CGdiObject::FromHandle .

Versi fungsi anggota yang mengambil parameter wilayah melakukan tugas yang sama dengan SelectClipRgn fungsi anggota. Nilai pengembaliannya dapat berupa salah satu hal berikut:

  • COMPLEXREGION Wilayah kliping baru memiliki batas yang tumpang tindih.

  • ERROR Konteks atau wilayah perangkat tidak valid.

  • NULLREGION Wilayah kliping baru kosong.

  • SIMPLEREGION Wilayah kliping baru tidak memiliki batas yang tumpang tindih.

Keterangan

Kelas CDC menyediakan lima versi khusus untuk jenis objek GDI tertentu, termasuk pena, kuas, font, bitmap, dan wilayah. Objek yang baru dipilih menggantikan objek sebelumnya dengan tipe yang sama. Misalnya, jika pObject dari versi SelectObject umum titik ke CPen objek, fungsi mengganti pena saat ini dengan pena yang ditentukan oleh pObject.

Aplikasi hanya dapat memilih bitmap ke dalam konteks perangkat memori dan hanya ke dalam satu konteks perangkat memori pada satu waktu. Format bitmap harus monokrom atau kompatibel dengan konteks perangkat; jika tidak, SelectObject mengembalikan kesalahan.

Untuk Windows 3.1 dan yang lebih baru, SelectObject fungsi mengembalikan nilai yang sama apakah digunakan dalam metafile atau tidak. Di bawah versi Windows sebelumnya, SelectObject mengembalikan nilai bukan nol untuk keberhasilan dan 0 untuk kegagalan saat digunakan dalam metafile.

CDC::SelectPalette

Memilih palet logis yang ditentukan oleh pPalette sebagai objek palet yang dipilih dari konteks perangkat.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

Parameter

pPalette
Mengidentifikasi palet logis yang akan dipilih. Palet ini harus sudah dibuat dengan CPalette fungsi CreatePaletteanggota .

bForceBackground
Menentukan apakah palet logis dipaksa menjadi palet latar belakang. Jika bForceBackground bukan nol, palet yang dipilih selalu berupa palet latar belakang, terlepas dari apakah jendela memiliki fokus input. Jika bForceBackground adalah 0 dan konteks perangkat dilampirkan ke jendela, palet logis adalah palet latar depan saat jendela memiliki fokus input.

Tampilkan Nilai

Penunjuk ke objek yang CPalette mengidentifikasi palet logis yang digantikan oleh palet yang ditentukan oleh pPalette. Ini NULL jika ada kesalahan.

Keterangan

Palet baru menjadi objek palet yang digunakan oleh GDI untuk mengontrol warna yang ditampilkan dalam konteks perangkat dan mengganti palet sebelumnya.

Aplikasi dapat memilih palet logis ke dalam lebih dari satu konteks perangkat. Namun, perubahan pada palet logis akan memengaruhi semua konteks perangkat yang dipilihnya. Jika aplikasi memilih palet ke dalam lebih dari satu konteks perangkat, konteks perangkat semuanya harus termasuk dalam perangkat fisik yang sama.

CDC::SelectStockObject

CGdiObject Memilih objek yang sesuai dengan salah satu pena stok, kuas, atau font yang telah ditentukan sebelumnya.

virtual CGdiObject* SelectStockObject(int nIndex);

Parameter

nIndex
Menentukan jenis objek stok yang diinginkan. Jenis dapat berupa salah satu dari nilai berikut:

  • BLACK_BRUSH Sikat hitam.

  • DKGRAY_BRUSH Kuas abu-abu gelap.

  • GRAY_BRUSH Sikat abu-abu.

  • HOLLOW_BRUSH Kuas berongga.

  • LTGRAY_BRUSH Kuas abu-abu muda.

  • NULL_BRUSH Sikat null.

  • WHITE_BRUSH Sikat putih.

  • BLACK_PEN Pena hitam.

  • NULL_PEN Pena kosong.

  • WHITE_PEN Pena putih.

  • ANSI_FIXED_FONT Font sistem tetap ANSI.

  • ANSI_VAR_FONT Font sistem variabel ANSI.

  • DEVICE_DEFAULT_FONT Font yang bergantung pada perangkat.

  • OEM_FIXED_FONT Font tetap dependen OEM.

  • SYSTEM_FONT Font sistem. Secara default, Windows menggunakan font sistem untuk menggambar menu, kontrol kotak dialog, dan teks lainnya. Namun, yang terbaik adalah tidak mengandalkan SYSTEM_FONT untuk mendapatkan font yang digunakan oleh dialog dan jendela. Sebagai gantinya SystemParametersInfo , gunakan fungsi dengan SPI_GETNONCLIENTMETRICS parameter untuk mengambil font saat ini. SystemParametersInfo memperhitungkan tema saat ini dan menyediakan informasi font untuk teks, menu, dan dialog pesan.

  • SYSTEM_FIXED_FONT Font sistem lebar tetap yang digunakan di Windows sebelum versi 3.0. Objek ini tersedia untuk kompatibilitas dengan versi Windows sebelumnya.

  • DEFAULT_PALETTE Palet warna default. Palet ini terdiri dari 20 warna statis dalam palet sistem.

Tampilkan Nilai

Penunjuk ke CGdiObject objek yang diganti jika fungsi berhasil. Objek aktual yang ditujukan adalah CPenobjek , CBrush, atau CFont . Jika panggilan tidak berhasil, nilai yang dikembalikan adalah NULL.

CDC::SetAbortProc

Menginstal prosedur pembatalan untuk pekerjaan cetak.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

Parameter

lpfn
Penunjuk ke fungsi batalkan untuk diinstal sebagai prosedur pembatalan. Untuk informasi selengkapnya tentang fungsi panggilan balik, lihat Fungsi Panggilan Balik untuk CDC::SetAbortProc.

Tampilkan Nilai

Menentukan hasil SetAbortProc fungsi. Beberapa nilai berikut lebih mungkin daripada yang lain, tetapi semuanya dimungkinkan.

  • SP_ERROR Kesalahan umum.

  • SP_OUTOFDISK Ruang disk tidak cukup saat ini tersedia untuk penampungan, dan tidak ada lagi ruang yang akan tersedia.

  • SP_OUTOFMEMORY Memori tidak cukup tersedia untuk penampungan.

  • SP_USERABORT Pengguna mengakhiri pekerjaan melalui Print Manager.

Keterangan

Jika aplikasi mengizinkan pekerjaan cetak dibatalkan selama penampungan, aplikasi harus mengatur fungsi batal sebelum pekerjaan cetak dimulai dengan StartDoc fungsi anggota. Print Manager memanggil fungsi pembatalan selama penampungan untuk memungkinkan aplikasi membatalkan pekerjaan cetak atau memproses kondisi di luar ruang disk. Jika tidak ada fungsi abort yang diatur, pekerjaan cetak akan gagal jika tidak ada cukup ruang disk untuk penampungan.

Fitur Microsoft Visual C++ menyederhanakan pembuatan fungsi panggilan balik yang diteruskan ke SetAbortProc. Alamat yang diteruskan ke EnumObjects fungsi anggota adalah penunjuk ke fungsi yang diekspor dengan __declspec(dllexport) dan dengan __stdcall konvensi panggilan.

Anda juga tidak perlu mengekspor nama fungsi dalam EXPORTS pernyataan dalam file definisi modul aplikasi Anda. Anda dapat menggunakan pengubah EXPORT fungsi, seperti dalam

BOOL CALLBACK EXPORT AFunction( HDC, int );

menyebabkan pengkompilasi memancarkan catatan ekspor yang tepat untuk ekspor berdasarkan nama tanpa alias. Ini berfungsi untuk sebagian besar kebutuhan. Untuk beberapa kasus khusus, seperti mengekspor fungsi dengan ordinal atau alias ekspor, Anda masih perlu menggunakan EXPORTS pernyataan dalam file definisi modul.

Antarmuka pendaftaran panggilan balik sekarang aman jenis (Anda harus meneruskan penunjuk fungsi yang menunjuk ke jenis fungsi yang tepat untuk panggilan balik tertentu).

Semua fungsi panggilan balik harus menjebak pengecualian Microsoft Foundation sebelum kembali ke Windows, karena pengecualian tidak dapat dilemparkan di seluruh batas panggilan balik. Untuk informasi selengkapnya tentang pengecualian, lihat artikel Pengecualian.

CDC::SetArcDirection

Mengatur arah gambar yang akan digunakan untuk fungsi busur dan persegi panjang.

int SetArcDirection(int nArcDirection);

Parameter

nArcDirection
Menentukan arah busur baru. Parameter ini dapat berupa salah satu nilai berikut:

  • AD_COUNTERCLOCKWISE Gambar digambar berlawanan arah jaga.

  • AD_CLOCKWISE Gambar digambar searah jajaran jajaran jajarannya.

Tampilkan Nilai

Menentukan arah busur lama, jika berhasil; jika tidak, 0.

Keterangan

Arah default berlawanan arah jakal. Fungsi SetArcDirection menentukan arah di mana fungsi berikut menggambar:

Arc Pai
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

Panggil fungsi ini untuk mengatur konteks perangkat atribut, m_hAttribDC.

virtual void SetAttribDC(HDC hDC);

Parameter

hDC
Konteks perangkat Windows.

Keterangan

Fungsi anggota ini tidak melampirkan konteks perangkat ke CDC objek. Hanya konteks perangkat output yang CDC dilampirkan ke objek.

CDC::SetBkColor

Menyetel warna latar belakang saat ini ke warna yang ditentukan.

virtual COLORREF SetBkColor(COLORREF crColor);

Parameter

crColor
Menentukan warna latar belakang baru.

Tampilkan Nilai

Warna latar belakang sebelumnya sebagai nilai warna RGB. Jika terjadi kesalahan, nilai yang dikembalikan adalah 0x80000000.

Keterangan

Jika mode latar belakang adalah OPAQUE, sistem menggunakan warna latar belakang untuk mengisi celah dalam garis bergaya, kesenjangan antara garis yang menetas dalam kuas, dan latar belakang dalam sel karakter. Sistem ini juga menggunakan warna latar belakang saat mengonversi bitmap antara konteks perangkat warna dan monokrom.

Jika perangkat tidak dapat menampilkan warna yang ditentukan, sistem akan mengatur warna latar belakang ke warna fisik terdekat.

CDC::SetBkMode

Mengatur mode latar belakang.

int SetBkMode(int nBkMode);

Parameter

nBkMode
Menentukan mode yang akan diatur. Parameter ini dapat berupa salah satu nilai berikut:

  • OPAQUE Latar belakang diisi dengan warna latar belakang saat ini sebelum teks, sikat tetas, atau pena digambar. Ini adalah mode latar belakang default.

  • TRANSPARENT Latar belakang tidak diubah sebelum menggambar.

Tampilkan Nilai

Mode latar belakang sebelumnya.

Keterangan

Mode latar belakang menentukan apakah sistem menghapus warna latar belakang yang ada pada permukaan gambar sebelum menggambar teks, sikat menetas, atau gaya pena apa pun yang bukan garis padat.

Contoh

Lihat contoh untuk CWnd::OnCtlColor.

CDC::SetBoundsRect

Mengontrol akumulasi informasi persegi panjang pembatas untuk konteks perangkat yang ditentukan.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

Parameter

lpRectBounds
Menunjuk ke RECT struktur atau CRect objek yang digunakan untuk mengatur persegi panjang pembatas. Dimensi persegi diberikan dalam koordinat logis. Parameter ini dapat berupa NULL.

flags
Menentukan bagaimana persegi panjang baru akan dikombinasikan dengan persegi panjang akumulasi. Parameter ini bisa menjadi kombinasi dari nilai berikut:

  • DCB_ACCUMULATE Tambahkan persegi yang ditentukan oleh lpRectBounds ke persegi panjang pembatas (menggunakan operasi gabungan persegi panjang).

  • DCB_DISABLE Matikan akumulasi batas.

  • DCB_ENABLE Aktifkan akumulasi batas. (Pengaturan default untuk akumulasi batas dinonaktifkan.)

Tampilkan Nilai

Status persegi panjang pembatas saat ini, jika fungsi berhasil. Seperti flags, nilai yang dikembalikan dapat berupa kombinasi DCB_ nilai:

  • DCB_ACCUMULATE Persegi panjang pembatas tidak kosong. Nilai ini akan selalu diatur.

  • DCB_DISABLE Akumulasi batas tidak aktif.

  • DCB_ENABLE Akumulasi batas menyala.

Keterangan

Windows dapat mempertahankan persegi panjang pembatas untuk semua operasi menggambar. Persegi panjang ini dapat dikueri dan diatur ulang oleh aplikasi. Batas gambar berguna untuk membatalkan singgahan bitmap.

CDC::SetBrushOrg

Menentukan asal yang akan ditetapkan GDI ke kuas berikutnya yang dipilih aplikasi ke dalam konteks perangkat.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

Parameter

x
Menentukan koordinat x (dalam unit perangkat) dari asal baru. Nilai ini harus dalam rentang 0-7.

y
Menentukan koordinat y (dalam unit perangkat) dari asal baru. Nilai ini harus dalam rentang 0-7.

point
Menentukan koordinat x dan y dari asal baru. Setiap nilai harus dalam rentang 0-7. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Asal kuas sebelumnya dalam unit perangkat.

Keterangan

Koordinat default untuk asal kuas adalah (0, 0). Untuk mengubah asal kuas, panggil UnrealizeObject fungsi untuk CBrush objek, panggil SetBrushOrg, lalu panggil SelectObject fungsi anggota untuk memilih kuas ke dalam konteks perangkat.

Jangan gunakan SetBrushOrg dengan objek stok CBrush .

CDC::SetColorAdjustment

Mengatur nilai penyesuaian warna untuk konteks perangkat menggunakan nilai yang ditentukan.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

Parameter

lpColorAdjust
Menunjuk ke struktur data yang COLORADJUSTMENT berisi nilai penyesuaian warna.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Nilai penyesuaian warna digunakan untuk menyesuaikan warna input bitmap sumber untuk panggilan ke CDC::StretchBlt fungsi anggota saat HALFTONE mode diatur.

CDC::SetDCBrushColor

Mengatur warna kuas konteks perangkat saat ini (DC) ke nilai warna yang ditentukan.

COLORREF SetDCBrushColor(COLORREF crColor);

Parameter

crColor
Menentukan warna kuas baru.

Tampilkan Nilai

Jika fungsi berhasil, nilai pengembalian menentukan warna kuas DC sebelumnya sebagai COLORREF nilai.

Jika fungsi gagal, nilai yang dikembalikan adalah CLR_INVALID.

Keterangan

Metode ini menimulasi fungsionalitas fungsi SetDCBrushColor, seperti yang dijelaskan dalam Windows SDK.

CDC::SetDCPenColor

Mengatur warna pena konteks perangkat saat ini (DC) ke nilai warna yang ditentukan.

COLORREF SetDCPenColor(COLORREF crColor);

Parameter

crColor
Menentukan warna pena baru.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi anggota ini menggunakan fungsi SetDCPenColorWin32 , seperti yang dijelaskan dalam Windows SDK.

CDC::SetGraphicsMode

Mengatur mode grafis untuk konteks perangkat yang ditentukan.

int SetGraphicsMode(int iMode);

Parameter

iMode
Menentukan mode grafik. Untuk daftar nilai yang dapat diambil parameter ini, lihat SetGraphicsMode.

Tampilkan Nilai

Mengembalikan mode grafik lama pada keberhasilan.

Mengembalikan 0 pada kegagalan. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Keterangan

Metode ini membungkus fungsi SetGraphicsModeWindows GDI .

CDC::SetLayout

Panggil fungsi anggota ini untuk mengubah tata letak teks dan grafik untuk konteks perangkat ke kanan ke kiri, tata letak standar untuk budaya seperti Arab dan Ibrani.

DWORD SetLayout(DWORD dwLayout);

Parameter

dwLayout
Tata letak konteks perangkat dan bendera kontrol bitmap. Ini bisa menjadi kombinasi dari nilai berikut.

Nilai Makna
LAYOUT_BITMAPORIENTATIONPRESERVED Menonaktifkan refleksi apa pun untuk panggilan ke CDC::BitBlt dan CDC::StretchBlt.
LAYOUT_RTL Mengatur tata letak horizontal default ke kanan ke kiri.
LAYOUT_LTR Mengatur tata letak default ke kiri ke kanan.

Tampilkan Nilai

Jika berhasil, tata letak konteks perangkat sebelumnya.

Jika tidak berhasil, GDI_ERROR. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Keterangan

Biasanya, Anda tidak akan memanggil SetLayout jendela. Sebaliknya, Anda mengontrol tata letak kanan-ke-kiri di jendela dengan mengatur gaya jendela yang diperluas seperti WS_EX_RTLREADING. Konteks perangkat, seperti printer atau metafile, tidak mewarisi tata letak ini. Satu-satunya cara untuk mengatur konteks perangkat untuk tata letak kanan-ke-kiri adalah dengan memanggil SetLayout.

Jika Anda memanggil SetLayout(LAYOUT_RTL), SetLayout secara otomatis mengubah mode pemetaan menjadi MM_ISOTROPIC. Akibatnya, panggilan berikutnya ke GetMapMode akan kembali MM_ISOTROPIC alih-alih MM_TEXT.

Dalam beberapa kasus, seperti dengan banyak bitmap, Anda mungkin ingin mempertahankan tata letak kiri-ke-kanan. Dalam kasus ini, render gambar dengan memanggil BitBlt atau StretchBlt, lalu atur bendera kontrol bitmap untuk dwLayout ke LAYOUT_BITMAPORIENTATIONPRESERVED.

Setelah Anda mengubah tata letak dengan LAYOUT_RTL bendera, bendera yang biasanya menentukan kanan atau kiri akan dibalik. Untuk menghindari kebingungan, Anda mungkin ingin menentukan nama alternatif untuk bendera standar. Untuk daftar nama bendera alternatif yang disarankan, lihat SetLayout di Windows SDK.

CDC::SetMapMode

Mengatur mode pemetaan.

virtual int SetMapMode(int nMapMode);

Parameter

nMapMode
Menentukan mode pemetaan baru. Ini bisa menjadi salah satu nilai berikut:

  • MM_ANISOTROPIC Unit logis dikonversi menjadi unit arbitrer dengan sumbu berskala sesekali. Mengatur mode pemetaan agar MM_ANISOTROPIC tidak mengubah jendela saat ini atau pengaturan viewport. Untuk mengubah unit, orientasi, dan penskalaan, panggil SetWindowExt fungsi anggota dan SetViewportExt .

  • MM_HIENGLISH Setiap unit logis dikonversi menjadi 0,001 inci. X positif ada di sebelah kanan; y positif sudah habis.

  • MM_HIMETRIC Setiap unit logis dikonversi menjadi 0,01 milimeter. X positif ada di sebelah kanan; y positif sudah habis.

  • MM_ISOTROPIC Unit logis dikonversi menjadi unit arbitrer dengan sumbu yang sama skalanya; artinya, 1 unit di sepanjang sumbu x sama dengan 1 unit di sepanjang sumbu y. SetWindowExt Gunakan fungsi anggota dan SetViewportExt untuk menentukan unit yang diinginkan dan orientasi sumbu. GDI membuat penyesuaian seperlunya untuk memastikan bahwa unit x dan y tetap berukuran sama.

  • MM_LOENGLISH Setiap unit logis dikonversi menjadi 0,01 inci. X positif ada di sebelah kanan; y positif sudah habis.

  • MM_LOMETRIC Setiap unit logis dikonversi menjadi 0,1 milimeter. X positif ada di sebelah kanan; y positif sudah habis.

  • MM_TEXT Setiap unit logis dikonversi menjadi 1 piksel perangkat. X positif ada di sebelah kanan; positif y tidak berfungsi.

  • MM_TWIPS Setiap unit logis dikonversi menjadi 1/20 poin. (Karena titik adalah 1/72 inci, twip adalah 1/1440 inci.) X positif ada di sebelah kanan; y positif sudah habis.

Tampilkan Nilai

Mode pemetaan sebelumnya.

Keterangan

Mode pemetaan mendefinisikan unit pengukuran yang digunakan untuk mengonversi unit logis ke unit perangkat; ini juga mendefinisikan orientasi sumbu x dan y perangkat. GDI menggunakan mode pemetaan untuk mengonversi koordinat logis menjadi koordinat perangkat yang sesuai. Mode ini MM_TEXT memungkinkan aplikasi untuk bekerja dalam piksel perangkat, di mana 1 unit sama dengan 1 piksel. Ukuran fisik piksel bervariasi dari perangkat ke perangkat.

Mode MM_HIENGLISH, , MM_LOENGLISHMM_HIMETRIC, MM_LOMETRIC, dan MM_TWIPS berguna untuk aplikasi yang harus menggambar dalam unit yang bermakna secara fisik (seperti inci atau milimeter). Mode ini MM_ISOTROPIC memastikan rasio aspek 1:1, yang berguna ketika penting untuk mempertahankan bentuk gambar yang tepat. Mode ini MM_ANISOTROPIC memungkinkan koordinat x dan y disesuaikan secara independen.

Catatan

Jika Anda memanggil SetLayout untuk mengubah DC (konteks perangkat) ke tata letak kanan-ke-kiri, SetLayout secara otomatis mengubah mode pemetaan menjadi MM_ISOTROPIC.

Contoh

Lihat contoh untuk CView::OnPrepareDC.

CDC::SetMapperFlags

Mengubah metode yang digunakan oleh pemeta font saat mengonversi font logis menjadi font fisik.

DWORD SetMapperFlags(DWORD dwFlag);

Parameter

dwFlag
Menentukan apakah pemeta font mencoba mencocokkan tinggi dan lebar aspek font ke perangkat. Ketika nilai ini adalah ASPECT_FILTERING, pemeta hanya memilih font yang aspek x dan aspek y sama persis dengan yang ditentukan perangkat.

Tampilkan Nilai

Nilai sebelumnya dari bendera font-mapper.

Keterangan

Aplikasi dapat digunakan SetMapperFlags untuk menyebabkan pemeta font mencoba memilih hanya font fisik yang sama persis dengan rasio aspek perangkat yang ditentukan.

Aplikasi yang hanya menggunakan font raster dapat menggunakan SetMapperFlags fungsi untuk memastikan bahwa font yang dipilih oleh pemeta font menarik dan dapat dibaca pada perangkat yang ditentukan. Aplikasi yang menggunakan font yang dapat diskalakan (TrueType) biasanya tidak menggunakan SetMapperFlags.

Jika tidak ada font fisik yang memiliki rasio aspek yang cocok dengan spesifikasi dalam font logis, GDI memilih rasio aspek baru dan memilih font yang cocok dengan rasio aspek baru ini.

CDC::SetMiterLimit

Mengatur batas untuk panjang gabungan miter untuk konteks perangkat.

BOOL SetMiterLimit(float fMiterLimit);

Parameter

fMiterLimit
Menentukan batas miter baru untuk konteks perangkat.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Panjang miter didefinisikan sebagai jarak dari persimpangan dinding garis di bagian dalam gabungan ke persimpangan dinding garis di bagian luar gabungan. Batas miter adalah rasio maksimum yang diizinkan dari panjang miter ke lebar garis. Batas miter default adalah 10,0.

CDC::SetOutputDC

Panggil fungsi anggota ini untuk mengatur konteks perangkat output, m_hDC.

virtual void SetOutputDC(HDC hDC);

Parameter

hDC
Konteks perangkat Windows.

Keterangan

Fungsi anggota ini hanya dapat dipanggil ketika konteks perangkat belum dilampirkan ke CDC objek. Fungsi anggota ini diatur m_hDC tetapi tidak melampirkan konteks perangkat ke CDC objek.

CDC::SetPixel

Mengatur piksel pada titik yang ditentukan ke perkiraan terdekat dari warna yang ditentukan oleh crColor.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

Parameter

x
Menentukan koordinat x logis dari titik yang akan diatur.

y
Menentukan koordinat y logis dari titik yang akan diatur.

crColor
Nilai COLORREF RGB yang menentukan warna yang digunakan untuk melukis titik. Lihat COLORREF di Windows SDK untuk deskripsi nilai ini.

point
Menentukan koordinat x- dan y logis dari titik yang akan diatur. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Nilai RGB untuk warna yang dicat titik. Nilai ini dapat berbeda dari yang ditentukan oleh crColor jika perkiraan warna tersebut digunakan. Jika fungsi gagal (jika titik berada di luar wilayah kliping), nilai yang dikembalikan adalah -1.

Keterangan

Titik harus berada di wilayah kliping. Jika titik tidak berada di wilayah kliping, fungsi tidak melakukan apa pun.

Tidak semua perangkat mendukung fungsi .SetPixel Untuk menentukan apakah perangkat mendukung SetPixel, panggil GetDeviceCaps fungsi anggota dengan RASTERCAPS indeks dan periksa nilai pengembalian untuk RC_BITBLT bendera.

CDC::SetPixelV

Mengatur piksel pada koordinat yang ditentukan ke perkiraan terdekat dari warna yang ditentukan.

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

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

Parameter

x
Menentukan koordinat x, dalam unit logis, dari titik yang akan diatur.

y
Menentukan koordinat y, dalam unit logis, dari titik yang akan diatur.

crColor
Menentukan warna yang akan digunakan untuk melukis titik.

point
Menentukan koordinat x- dan y logis dari titik yang akan diatur. Anda dapat meneruskan POINT struktur data atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Titik harus berada di wilayah kliping dan bagian permukaan perangkat yang terlihat. Tidak semua perangkat mendukung fungsi anggota. Untuk informasi selengkapnya, lihat RC_BITBLT kemampuan dalam CDC::GetDeviceCaps fungsi anggota. SetPixelV lebih cepat daripada SetPixel karena tidak perlu mengembalikan nilai warna titik yang dicat.

CDC::SetPolyFillMode

Mengatur mode pengisian poligon.

int SetPolyFillMode(int nPolyFillMode);

Parameter

nPolyFillMode
Menentukan mode pengisian baru. Nilai ini mungkin berupa ALTERNATE atau WINDING. Mode default yang diatur di Windows adalah ALTERNATE.

Tampilkan Nilai

Mode pengisian sebelumnya, jika berhasil; jika tidak, 0.

Keterangan

Ketika mode pengisian poligon adalah ALTERNATE, sistem mengisi area antara sisi poligon bernomor ganjil dan bernomor genap pada setiap baris pemindaian. Artinya, sistem mengisi area antara sisi pertama dan kedua, antara sisi ketiga dan keempat, dan sebagainya. Mode ini adalah default.

Ketika mode pengisian poligon adalah WINDING, sistem menggunakan arah di mana gambar digambar untuk menentukan apakah akan mengisi area. Setiap segmen garis dalam poligon digambar secara searah jarang atau arah berlawanan arah jarang. Setiap kali garis imajiner digambar dari area tertutup ke bagian luar gambar melewati segmen garis searah jaring jam, hitungan akan bertambah bertahap. Ketika garis melewati segmen garis berlawanan arah jaring, jumlahnya dikurangi. Area diisi jika jumlahnya bukan nol ketika garis mencapai bagian luar gambar.

CDC::SetROP2

Mengatur mode gambar saat ini.

int SetROP2(int nDrawMode);

Parameter

nDrawMode
Menentukan mode menggambar baru. Ini bisa menjadi salah satu nilai berikut:

  • R2_BLACK Piksel selalu hitam.

  • R2_WHITE Piksel selalu putih.

  • R2_NOP Piksel tetap tidak berubah.

  • R2_NOT Pixel adalah kebalikan dari warna layar.

  • R2_COPYPEN Pixel adalah warna pena.

  • R2_NOTCOPYPEN Piksel adalah kebalikan dari warna pena.

  • R2_MERGEPENNOT Piksel adalah kombinasi warna pena dan inversi warna layar (piksel akhir = (~ piksel layar) | pena).

  • R2_MASKPENNOT Piksel adalah kombinasi warna yang umum untuk pena dan invers layar (piksel akhir = (~ piksel layar) & pena).

  • R2_MERGENOTPEN Piksel adalah kombinasi warna layar dan inversi warna pena (piksel akhir = (~ pena) | piksel layar).

  • R2_MASKNOTPEN Piksel adalah kombinasi warna yang umum untuk layar dan inversi piksel layar pena (piksel akhir = (~ pena & ).

  • R2_MERGEPEN Piksel adalah kombinasi warna pena dan warna layar (piksel akhir = piksel layar pena | ).

  • R2_NOTMERGEPEN Piksel adalah inversi R2_MERGEPEN warna (piksel akhir = ~ (piksel layar pena | )).

  • R2_MASKPEN Piksel adalah kombinasi warna yang umum untuk pena dan layar (piksel akhir = piksel layar pena & ).

  • R2_NOTMASKPEN Piksel adalah inversi R2_MASKPEN warna (piksel akhir = ~ (piksel layar pena & )).

  • R2_XORPEN Pixel adalah kombinasi warna yang ada di pena atau di layar, tetapi tidak di keduanya (piksel akhir = piksel layar pena ^ ).

  • R2_NOTXORPEN Piksel adalah inversi R2_XORPEN warna (piksel akhir = ~ (piksel layar pena ^ )).

Tampilkan Nilai

Mode menggambar sebelumnya.

Ini bisa menjadi salah satu nilai yang diberikan di Windows SDK.

Keterangan

Mode menggambar menentukan bagaimana warna pena dan interior objek yang diisi dikombinasikan dengan warna yang sudah ada di permukaan tampilan.

Mode menggambar hanya untuk perangkat raster; ini tidak berlaku untuk perangkat vektor. Mode gambar adalah kode operasi raster biner yang mewakili semua kemungkinan kombinasi Boolean dari dua variabel, menggunakan operator &biner , , |dan ^ (eksklusif |), dan operasi ~unary .

CDC::SetStretchBltMode

Mengatur mode peregangan bitmap untuk StretchBlt fungsi anggota.

int SetStretchBltMode(int nStretchMode);

Parameter

nStretchMode
Menentukan mode peregangan. Ini bisa menjadi salah satu nilai berikut:

Nilai Deskripsi
BLACKONWHITE Melakukan operasi Boolean & menggunakan nilai warna untuk piksel yang dihilangkan dan yang sudah ada. Jika bitmap adalah bitmap monokrom, mode ini mempertahankan piksel hitam dengan mengorbankan piksel putih.
COLORONCOLOR Menghapus piksel. Mode ini menghapus semua baris piksel yang dihilangkan tanpa mencoba mempertahankan informasinya.
HALFTONE Memetakan piksel dari persegi panjang sumber ke dalam blok piksel di persegi panjang tujuan. Warna rata-rata di atas blok tujuan piksel memperkirakan warna piksel sumber.
Setelah mengatur HALFTONE mode peregangan, aplikasi harus memanggil fungsi SetBrushOrgEx Win32 untuk mengatur asal sikat. Jika gagal melakukannya, ketidakselarasan sikat terjadi.
STRETCH_ANDSCANS Windows 95/98: Sama seperti BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98: Sama seperti COLORONCOLOR
STRETCH_HALFTONE Windows 95/98: Sama seperti HALFTONE.
STRETCH_ORSCANS Windows 95/98: Sama seperti WHITEONBLACK
WHITEONBLACK Melakukan operasi Boolean | menggunakan nilai warna untuk piksel yang dihilangkan dan yang sudah ada. Jika bitmap adalah bitmap monokrom, mode ini mempertahankan piksel putih dengan mengorbankan piksel hitam.

Tampilkan Nilai

Mode peregangan sebelumnya. Bisa berupa STRETCH_ANDSCANS, STRETCH_DELETESCANS, atau STRETCH_ORSCANS.

Keterangan

Mode peregangan bitmap menentukan bagaimana informasi dihapus dari bitmap yang dikompresi dengan menggunakan fungsi .

Mode BLACKONWHITE(STRETCH_ANDSCANS) dan WHITEONBLACK(STRETCH_ORSCANS) biasanya digunakan untuk mempertahankan piksel latar depan dalam bitmap monokrom. Mode COLORONCOLOR(STRETCH_DELETESCANS) biasanya digunakan untuk mempertahankan warna dalam bitmap warna.

Mode ini HALFTONE membutuhkan lebih banyak pemrosesan gambar sumber daripada tiga mode lainnya; lebih lambat daripada yang lain, tetapi menghasilkan gambar berkualitas lebih tinggi. Selain ituHALFTONE, SetBrushOrgEx harus dipanggil setelah mengatur mode untuk menghindari ketidakselarasan kuas.

Mode peregangan lainnya mungkin juga tersedia tergantung pada kemampuan driver perangkat.

CDC::SetTextAlign

Mengatur bendera perataan teks.

UINT SetTextAlign(UINT nFlags);

Parameter

nFlags
Menentukan bendera perataan teks. Bendera menentukan hubungan antara titik dan persegi panjang yang mengikat teks. Titik dapat berupa posisi atau koordinat saat ini yang ditentukan oleh fungsi output teks. Persegi panjang yang mengikat teks ditentukan oleh sel karakter yang berdekatan dalam string teks. Parameter nFlags dapat berupa satu atau beberapa bendera dari tiga kategori berikut. Pilih hanya satu bendera dari setiap kategori. Kategori pertama memengaruhi perataan teks dalam arah x:

  • TA_CENTER Meratakan titik dengan pusat horizontal persegi panjang pembatas.

  • TA_LEFT Menyelaraskan titik dengan sisi kiri persegi panjang pembatas. Ini adalah pengaturan default.

  • TA_RIGHT Menyelaraskan titik dengan sisi kanan persegi panjang pembatas.

Kategori kedua memengaruhi perataan teks dalam arah y:

  • TA_BASELINE Meratakan titik dengan garis dasar font yang dipilih.

  • TA_BOTTOM Meratakan titik dengan bagian bawah persegi panjang pembatas.

  • TA_TOP Menyelaraskan titik dengan bagian atas persegi panjang pembatas. Ini adalah pengaturan default.

Kategori ketiga menentukan apakah posisi saat ini diperbarui saat teks ditulis:

  • TA_NOUPDATECP Tidak memperbarui posisi saat ini setelah setiap panggilan ke fungsi output teks. Ini adalah pengaturan default.

  • TA_UPDATECP Memperbarui posisi x saat ini setelah setiap panggilan ke fungsi output teks. Posisi baru berada di sisi kanan persegi panjang pembatas untuk teks. Ketika bendera ini diatur, koordinat yang ditentukan dalam panggilan ke TextOut fungsi anggota diabaikan.

Tampilkan Nilai

Pengaturan perataan teks sebelumnya, jika berhasil. Byte urutan rendah berisi pengaturan horizontal dan byte urutan tinggi berisi pengaturan vertikal; jika tidak, 0.

Keterangan

Fungsi TextOut anggota dan ExtTextOut menggunakan bendera ini saat memosisikan string teks pada tampilan atau perangkat. Bendera menentukan hubungan antara titik tertentu dan persegi panjang yang mengikat teks. Koordinat titik ini diteruskan sebagai parameter ke TextOut fungsi anggota. Persegi panjang yang mengikat teks dibentuk oleh sel karakter yang berdekatan dalam string teks.

CDC::SetTextCharacterExtra

Mengatur jumlah penspasian antarkarakter.

int SetTextCharacterExtra(int nCharExtra);

Parameter

nCharExtra
Menentukan jumlah ruang tambahan (dalam unit logis) yang akan ditambahkan ke setiap karakter. Jika mode pemetaan saat ini tidak MM_TEXT, nCharExtra diubah dan dibulatkan ke piksel terdekat.

Tampilkan Nilai

Jumlah penspasian antarkarakter sebelumnya.

Keterangan

GDI menambahkan penspasian ini ke setiap karakter, termasuk karakter jeda, saat menulis baris teks ke konteks perangkat. Nilai default untuk jumlah penspasian antarkarakter adalah 0.

CDC::SetTextColor

Mengatur warna teks ke warna yang ditentukan.

virtual COLORREF SetTextColor(COLORREF crColor);

Parameter

crColor
Menentukan warna teks sebagai nilai warna RGB.

Tampilkan Nilai

Nilai RGB untuk warna teks sebelumnya.

Keterangan

Sistem menggunakan warna teks ini saat menulis teks ke konteks perangkat ini dan juga ketika mengonversi bitmap antara konteks perangkat warna dan monokrom.

Jika perangkat tidak dapat mewakili warna yang ditentukan, sistem mengatur warna teks ke warna fisik terdekat. Warna latar belakang untuk karakter ditentukan oleh SetBkColor fungsi anggota dan SetBkMode .

Contoh

Lihat contoh untuk CWnd::OnCtlColor.

CDC::SetTextJustification

Menambahkan spasi ke karakter pemisah dalam string.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

Parameter

nBreakExtra
Menentukan total ruang tambahan yang akan ditambahkan ke baris teks (dalam unit logis). Jika mode pemetaan saat ini tidak MM_TEXT, nilai yang diberikan oleh parameter ini dikonversi ke mode pemetaan saat ini dan dibulatkan ke unit perangkat terdekat.

nBreakCount
Menentukan jumlah karakter jeda dalam baris.

Tampilkan Nilai

Satu jika fungsi berhasil; jika tidak, 0.

Keterangan

Aplikasi dapat menggunakan GetTextMetrics fungsi anggota untuk mengambil karakter pemisah font.

SetTextJustification Setelah fungsi anggota dipanggil, panggilan ke fungsi output teks (seperti TextOut) mendistribusikan ruang tambahan yang ditentukan secara merata di antara jumlah karakter jeda yang ditentukan. Karakter break biasanya adalah karakter spasi (ASCII 32), tetapi dapat didefinisikan oleh font sebagai beberapa karakter lainnya.

Fungsi GetTextExtent anggota biasanya digunakan dengan SetTextJustification. GetTextExtent menghitung lebar baris tertentu sebelum perataan. Aplikasi dapat menentukan berapa banyak ruang yang akan ditentukan dalam nBreakExtra parameter dengan mengurangi nilai yang dikembalikan dari GetTextExtent lebar string setelah perataan.

Fungsi SetTextJustification ini dapat digunakan untuk meratakan garis yang berisi beberapa eksekusi dalam font yang berbeda. Dalam hal ini, garis harus dibuat piecemeal dengan menyelaraskan dan menulis setiap eksekusi secara terpisah.

Karena kesalahan pembulatan dapat terjadi selama perataan, sistem menyimpan istilah kesalahan yang berjalan yang menentukan kesalahan saat ini. Saat meratakan baris yang berisi beberapa eksekusi, GetTextExtent secara otomatis menggunakan istilah kesalahan ini saat menghitung sejauh mana eksekusi berikutnya. Ini memungkinkan fungsi output teks untuk memadukan kesalahan ke dalam eksekusi baru.

Setelah setiap baris diselaraskan, istilah kesalahan ini harus dibersihkan untuk mencegahnya dimasukkan ke baris berikutnya. Istilah dapat dibersihkan dengan memanggil SetTextJustification dengan nBreakExtra diatur ke 0.

CDC::SetViewportExt

Mengatur tingkat x dan y dari viewport konteks perangkat.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

Parameter

cx
Menentukan tingkat x dari viewport (dalam unit perangkat).

cy
Menentukan tingkat y dari viewport (dalam unit perangkat).

size
Menentukan tingkat x dan y dari viewport (dalam unit perangkat).

Tampilkan Nilai

Tingkat sebelumnya dari viewport sebagai CSize objek. Ketika kesalahan terjadi, koordinat x- dan y dari objek yang dikembalikan CSize keduanya diatur ke 0.

Keterangan

Viewport, bersama dengan jendela konteks perangkat, menentukan bagaimana GDI memetakan titik dalam sistem koordinat logis untuk menunjuk dalam sistem koordinat perangkat yang sebenarnya. Dengan kata lain, mereka menentukan bagaimana GDI mengonversi koordinat logis menjadi koordinat perangkat.

Saat mode pemetaan berikut diatur, panggilan ke SetWindowExt dan SetViewportExt diabaikan:

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

Ketika MM_ISOTROPIC mode diatur, aplikasi harus memanggil SetWindowExt fungsi anggota sebelum memanggil SetViewportExt.

Contoh

Lihat contoh untuk CView::OnPrepareDC.

CDC::SetViewportOrg

Mengatur asal viewport konteks perangkat.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

Parameter

x
Menentukan koordinat x (dalam unit perangkat) dari asal viewport. Nilai harus berada dalam rentang sistem koordinat perangkat.

y
Menentukan koordinat y (dalam unit perangkat) dari asal viewport. Nilai harus berada dalam rentang sistem koordinat perangkat.

point
Menentukan asal viewport. Nilai harus berada dalam rentang sistem koordinat perangkat. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Asal sebelumnya dari viewport (dalam koordinat perangkat) sebagai CPoint objek.

Keterangan

Viewport, bersama dengan jendela konteks perangkat, menentukan bagaimana GDI memetakan titik dalam sistem koordinat logis untuk menunjuk dalam sistem koordinat perangkat yang sebenarnya. Dengan kata lain, mereka menentukan bagaimana GDI mengonversi koordinat logis menjadi koordinat perangkat.

Asal viewport menandai titik dalam sistem koordinat perangkat tempat GDI memetakan asal jendela, titik dalam sistem koordinat logis yang ditentukan oleh SetWindowOrg fungsi anggota. GDI memetakan semua titik lain dengan mengikuti proses yang sama yang diperlukan untuk memetakan asal jendela ke asal viewport. Misalnya, semua titik dalam lingkaran di sekitar titik di asal jendela akan berada dalam lingkaran di sekitar titik di asal viewport. Demikian pula, semua titik dalam garis yang melewati asal jendela akan berada di garis yang melewati asal viewport.

Contoh

Lihat contoh untuk CView::OnPrepareDC.

CDC::SetWindowExt

Mengatur tingkat x dan y dari jendela yang terkait dengan konteks perangkat.

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

Parameter

cx
Menentukan tingkat x (dalam unit logis) jendela.

cy
Menentukan tingkat y (dalam unit logis) jendela.

size
Menentukan tingkat x dan y (dalam unit logis) jendela.

Tampilkan Nilai

Jangkauan jendela sebelumnya (dalam unit logis) sebagai CSize objek. Jika terjadi kesalahan, koordinat x dan y dari objek yang dikembalikan CSize keduanya diatur ke 0.

Keterangan

Jendela, bersama dengan viewport konteks perangkat, menentukan bagaimana GDI memetakan titik dalam sistem koordinat logis untuk menunjuk dalam sistem koordinat perangkat.

Saat mode pemetaan berikut diatur, panggilan ke SetWindowExt dan SetViewportExt fungsi diabaikan:

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

Ketika MM_ISOTROPIC mode diatur, aplikasi harus memanggil SetWindowExt fungsi anggota sebelum memanggil SetViewportExt.

Contoh

Lihat contoh untuk CView::OnPrepareDC.

CDC::SetWindowOrg

Mengatur asal jendela konteks perangkat.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

Parameter

x
Menentukan koordinat x logis dari asal baru jendela.

y
Menentukan koordinat y logis dari asal baru jendela.

point
Menentukan koordinat logis dari asal baru jendela. Anda dapat meneruskan POINT struktur atau CPoint objek untuk parameter ini.

Tampilkan Nilai

Asal jendela sebelumnya sebagai CPoint objek.

Keterangan

Jendela, bersama dengan viewport konteks perangkat, menentukan bagaimana GDI memetakan titik dalam sistem koordinat logis untuk menunjuk dalam sistem koordinat perangkat.

Asal jendela menandai titik dalam sistem koordinat logis tempat GDI memetakan asal viewport, titik dalam sistem koordinat perangkat yang ditentukan oleh SetWindowOrg fungsi. GDI memetakan semua titik lain dengan mengikuti proses yang sama yang diperlukan untuk memetakan asal jendela ke asal viewport. Misalnya, semua titik dalam lingkaran di sekitar titik di asal jendela akan berada dalam lingkaran di sekitar titik di asal viewport. Demikian pula, semua titik dalam garis yang melewati asal jendela akan berada di garis yang melewati asal viewport.

CDC::SetWorldTransform

Mengatur transformasi linier dua dimensi antara ruang dunia dan ruang halaman untuk konteks perangkat yang ditentukan. Transformasi ini dapat digunakan untuk menskalakan, memutar, membelah, atau menerjemahkan output grafis.

BOOL SetWorldTransform(const XFORM& rXform);

Parameter

rXform
Referensi ke XFORM struktur yang berisi data transformasi.

Tampilkan Nilai

Mengembalikan nilai bukan nol pada keberhasilan.

Mengembalikan 0 pada kegagalan.

Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Keterangan

Metode ini membungkus fungsi SetWorldTransformWindows GDI .

CDC::StartDoc

Memberi tahu driver perangkat bahwa pekerjaan cetak baru dimulai dan bahwa semua panggilan berikutnya StartPage dan EndPage harus ditampung di bawah pekerjaan yang sama sampai EndDoc panggilan terjadi.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

Parameter

lpDocInfo
Menunjuk ke struktur yang DOCINFO berisi nama file dokumen dan nama file output.

lpszDocName
Penunjuk ke string yang berisi nama file dokumen.

Tampilkan Nilai

Jika fungsi berhasil, nilai pengembalian lebih besar dari nol. Nilai ini adalah pengidentifikasi pekerjaan cetak untuk dokumen.

Jika fungsi gagal, nilai pengembalian kurang dari atau sama dengan nol.

Keterangan

Ini memastikan bahwa dokumen yang lebih panjang dari satu halaman tidak akan diselingi dengan pekerjaan lain.

Untuk Windows versi 3.1 dan yang lebih baru, fungsi ini menggantikan STARTDOC escape printer. Menggunakan fungsi ini memastikan bahwa dokumen yang berisi lebih dari satu halaman tidak diselingi dengan pekerjaan cetak lainnya.

StartDoc tidak boleh digunakan di dalam metafiles.

Contoh

Fragmen kode ini mendapatkan printer default, membuka pekerjaan cetak, dan mem-spool satu halaman dengan "Hello, World!" di atasnya. Karena teks yang dicetak oleh kode ini tidak diskalakan ke unit logis printer, teks output mungkin dalam huruf kecil sehingga hasilnya tidak dapat dibaca. Fungsi penskalaan CDC, seperti SetMapMode, , SetViewportOrgdan SetWindowExt, dapat digunakan untuk memperbaiki penskalaan.

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

Panggil fungsi anggota ini untuk menyiapkan pengandar pencetak untuk menerima data.

int StartPage();

Tampilkan Nilai

Lebih besar dari atau sama dengan 0 jika fungsi berhasil, atau nilai negatif jika terjadi kesalahan.

Keterangan

StartPage menggantikan NEWFRAME dan BANDINFO melarikan diri.

Untuk gambaran umum urutan panggilan pencetakan, lihat StartDoc fungsi anggota.

Sistem menonaktifkan ResetDC fungsi anggota antara panggilan ke StartPage dan EndPage.

Contoh

Lihat contoh untuk CDC::StartDoc.

CDC::StretchBlt

Menyalin bitmap dari persegi panjang sumber ke persegi panjang tujuan, meregangkan atau mengompresi bitmap jika perlu agar sesuai dengan dimensi persegi panjang tujuan.

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

Parameter

x
Menentukan koordinat x (dalam unit logis) dari sudut kiri atas persegi panjang tujuan.

y
Menentukan koordinat y (dalam unit logis) dari sudut kiri atas persegi panjang tujuan.

nWidth
Menentukan lebar (dalam unit logis) dari persegi panjang tujuan.

nHeight
Menentukan tinggi (dalam unit logis) persegi panjang tujuan.

pSrcDC
Menentukan konteks perangkat sumber.

xSrc
Menentukan koordinat x (dalam unit logis) dari sudut kiri atas persegi panjang sumber.

ySrc
Menentukan koordinat y (dalam unit logis) dari sudut kiri atas persegi panjang sumber.

nSrcWidth
Menentukan lebar (dalam unit logis) dari persegi panjang sumber.

nSrcHeight
Menentukan tinggi (dalam unit logis) dari persegi panjang sumber.

dwRop
Menentukan operasi raster yang akan dilakukan. Kode operasi raster menentukan bagaimana GDI menggabungkan warna dalam operasi output yang melibatkan kuas saat ini, bitmap sumber yang mungkin, dan bitmap tujuan. Parameter ini mungkin salah satu nilai berikut:

  • BLACKNESS Mengubah semua output menjadi hitam.

  • DSTINVERT Menginversi bitmap tujuan.

  • MERGECOPY Menggabungkan pola dan bitmap sumber menggunakan operator Boolean AND .

  • MERGEPAINT Menggabungkan bitmap sumber terbalik dengan bitmap tujuan menggunakan operator Boolean OR .

  • NOTSRCCOPY Menyalin bitmap sumber terbalik ke tujuan.

  • NOTSRCERASE Membalikkan hasil menggabungkan bitmap tujuan dan sumber menggunakan operator Boolean OR .

  • PATCOPY Menyalin pola ke bitmap tujuan.

  • PATINVERT Menggabungkan bitmap tujuan dengan pola menggunakan operator Boolean XOR .

  • PATPAINTMenggabungkan bitmap sumber terbalik dengan pola menggunakan operator OR Boolean. Menggabungkan hasil operasi ini dengan bitmap tujuan menggunakan operator OR Boolean.

  • SRCAND Menggabungkan piksel tujuan dan bitmap sumber menggunakan operator Boolean AND .

  • SRCCOPY Menyalin bitmap sumber ke bitmap tujuan.

  • SRCERASE Membalikkan bitmap tujuan dan menggabungkan hasilnya dengan bitmap sumber menggunakan operator Boolean AND .

  • SRCINVERT Menggabungkan piksel tujuan dan bitmap sumber menggunakan operator Boolean XOR .

  • SRCPAINTMenggabungkan piksel tujuan dan bitmap sumber menggunakan operator OR Boolean.

  • WHITENESS Mengubah semua output menjadi putih.

Tampilkan Nilai

Bukan nol jika bitmap digambar; jika tidak, 0.

Keterangan

Fungsi ini menggunakan mode peregangan konteks perangkat tujuan (diatur oleh SetStretchBltMode) untuk menentukan cara meregangkan atau mengompresi bitmap.

Fungsi memindahkan StretchBlt bitmap dari perangkat sumber yang diberikan oleh pSrcDC ke perangkat tujuan yang diwakili oleh objek konteks perangkat yang fungsi anggotanya sedang dipanggil. Parameter xSrc, , nSrcWidthySrc, dan nSrcHeight menentukan sudut kiri atas dan dimensi persegi panjang sumber. Parameter x, y, nWidth, dan nHeight memberikan sudut kiri atas dan dimensi persegi panjang tujuan. Operasi raster yang ditentukan oleh dwRop menentukan bagaimana bitmap sumber dan bit yang sudah ada pada perangkat tujuan digabungkan.

Fungsi ini StretchBlt membuat gambar cermin bitmap jika tanda-tanda nSrcWidth parameter dan dan nWidth atau nSrcHeight nHeight berbeda. Jika nSrcWidth dan nWidth memiliki tanda yang berbeda, fungsi membuat gambar cermin bitmap di sepanjang sumbu x. Jika nSrcHeight dan nHeight memiliki tanda yang berbeda, fungsi membuat gambar cermin bitmap di sepanjang sumbu y.

Fungsi ini StretchBlt meregangkan atau mengompresi bitmap sumber dalam memori lalu menyalin hasilnya ke tujuan. Jika pola akan digabungkan dengan hasilnya, pola tidak digabungkan sampai bitmap sumber yang direntangkan disalin ke tujuan. Jika kuas digunakan, itu adalah kuas yang dipilih dalam konteks perangkat tujuan. Koordinat tujuan diubah sesuai dengan konteks perangkat tujuan; koordinat sumber diubah sesuai dengan konteks perangkat sumber.

Jika bitmap tujuan, sumber, dan pola tidak memiliki format warna yang sama, StretchBlt mengonversi bitmap sumber dan pola agar sesuai dengan bitmap tujuan. Warna latar depan dan latar belakang konteks perangkat tujuan digunakan dalam konversi.

Jika StretchBlt harus mengonversi bitmap monokrom menjadi warna, bit putih (1) diatur ke warna latar belakang dan bit hitam (0) ke warna latar depan. Untuk mengonversi warna ke monokrom, ini mengatur piksel yang cocok dengan warna latar belakang menjadi putih (1) dan mengatur semua piksel lain ke hitam (0). Warna latar depan dan latar belakang konteks perangkat dengan warna digunakan.

Tidak semua perangkat mendukung fungsi .StretchBlt Untuk menentukan apakah perangkat mendukung StretchBlt, panggil GetDeviceCaps fungsi anggota dengan RASTERCAPS indeks dan periksa nilai pengembalian untuk RC_STRETCHBLT bendera.

CDC::StrokeAndFillPath

Menutup setiap gambar terbuka di jalur, membelai garis luar jalur dengan menggunakan pena saat ini, dan mengisi interiornya dengan menggunakan kuas saat ini.

BOOL StrokeAndFillPath();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Konteks perangkat harus berisi jalur tertutup. Fungsi StrokeAndFillPath anggota memiliki efek yang sama dengan menutup semua angka terbuka di jalur, dan membelai dan mengisi jalur secara terpisah, kecuali bahwa wilayah yang diisi tidak akan tumpang tindih dengan wilayah goresan bahkan jika pena lebar.

CDC::StrokePath

Merender jalur yang ditentukan dengan menggunakan pena saat ini.

BOOL StrokePath();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Konteks perangkat harus berisi jalur tertutup.

CDC::TabbedTextOut

Panggil fungsi anggota ini untuk menulis string karakter di lokasi yang ditentukan, memperluas tab ke nilai yang ditentukan dalam array posisi tab-stop.

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

Parameter

x
Menentukan koordinat x logis dari titik awal string.

y
Menentukan koordinat y logis dari titik awal string.

lpszString
Arahkan ke string karakter untuk menggambar. Anda dapat meneruskan penunjuk ke array karakter atau CString objek untuk parameter ini.

nCount
Menentukan panjang string yang ditujukkan oleh lpszString.

nTabPositions
Menentukan jumlah nilai dalam array posisi tab-stop.

lpnTabStopPositions
Menunjuk ke array yang berisi posisi tab-stop (dalam unit logis). Perhentian tab harus diurutkan dalam urutan yang meningkat; nilai x terkecil harus menjadi item pertama dalam array.

nTabOrigin
Menentukan koordinat x dari posisi awal dari tab mana yang diperluas (dalam unit logis).

str
Objek CString yang berisi karakter yang ditentukan.

Tampilkan Nilai

Dimensi string (dalam unit logis) sebagai CSize objek.

Keterangan

Teks ditulis dalam font yang saat ini dipilih. Jika nTabPositions adalah 0 dan lpnTabStopPositions adalah NULL, tab diperluas menjadi delapan kali lebar karakter rata-rata.

Jika nTabPositions adalah 1, perhentian tab dipisahkan oleh jarak yang ditentukan oleh nilai pertama dalam lpnTabStopPositions array. lpnTabStopPositions Jika array berisi lebih dari satu nilai, perhentian tab diatur untuk setiap nilai dalam array, hingga angka yang ditentukan oleh nTabPositions. Parameter nTabOrigin memungkinkan aplikasi untuk memanggil TabbedTextOut fungsi beberapa kali untuk satu baris. Jika aplikasi memanggil fungsi lebih dari sekali dengan nTabOrigin diatur ke nilai yang sama setiap kali, fungsi memperluas semua tab relatif terhadap posisi yang ditentukan oleh nTabOrigin.

Secara default, posisi saat ini tidak digunakan atau diperbarui oleh fungsi. Jika aplikasi perlu memperbarui posisi saat ini saat memanggil fungsi, aplikasi dapat memanggil SetTextAlign fungsi anggota dengan nFlags diatur ke TA_UPDATECP. Ketika bendera ini diatur, Windows mengabaikan x parameter dan y pada panggilan berikutnya ke TabbedTextOut, menggunakan posisi saat ini sebagai gantinya.

CDC::TextOut

Menulis string karakter pada lokasi yang ditentukan menggunakan font yang saat ini dipilih.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

Parameter

x
Menentukan koordinat x logis dari titik awal teks.

y
Menentukan koordinat y logis dari titik awal teks.

lpszString
Arahkan ke string karakter yang akan digambar.

nCount
Menentukan jumlah karakter dalam string.

str
Objek CString yang berisi karakter yang akan digambar.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Asal karakter berada di sudut kiri atas sel karakter. Secara default, posisi saat ini tidak digunakan atau diperbarui oleh fungsi.

Jika aplikasi perlu memperbarui posisi saat ini saat memanggil TextOut, aplikasi dapat memanggil SetTextAlign fungsi anggota dengan nFlags diatur ke TA_UPDATECP. Ketika bendera ini diatur, Windows mengabaikan x parameter dan y pada panggilan berikutnya ke TextOut, menggunakan posisi saat ini sebagai gantinya.

Contoh

Lihat contoh untuk CDC::BeginPath.

CDC::TransparentBlt

Panggil fungsi anggota ini untuk mentransfer bit-blok data warna, yang sesuai dengan persegi panjang piksel dari konteks perangkat sumber yang ditentukan, ke dalam konteks perangkat tujuan.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

Parameter

xDest
Menentukan koordinat x, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.

yDest
Menentukan koordinat y, dalam unit logis, dari sudut kiri atas persegi panjang tujuan.

nDestWidth
Menentukan lebar, dalam unit logis, dari persegi panjang tujuan.

nDestHeight
Menentukan tinggi, dalam unit logis, dari persegi panjang tujuan.

pSrcDC
Penunjuk ke konteks perangkat sumber.

xSrc
Menentukan koordinat x, dalam unit logis, dari persegi panjang sumber.

ySrc
Menentukan koordinat y, dalam unit logis, dari persegi panjang sumber.

nSrcWidth
Menentukan lebar, dalam unit logis, dari persegi panjang sumber.

nSrcHeight
Menentukan tinggi, dalam unit logis, dari persegi panjang sumber.

clrTransparent
Warna RGB dalam bitmap sumber untuk diperlakukan sebagai transparan.

Tampilkan Nilai

TRUE jika berhasil; jika tidak FALSE.

Keterangan

TransparentBlt memungkinkan transparansi; artinya, warna RGB yang ditunjukkan oleh clrTransparent dirender transparan untuk transfer.

Untuk informasi selengkapnya, lihat TransparentBlt di Windows SDK.

CDC::UpdateColors

Memperbarui area klien konteks perangkat dengan mencocokkan warna saat ini di area klien ke palet sistem berdasarkan piksel demi piksel.

void UpdateColors();

Keterangan

Jendela tidak aktif dengan palet logis yang direalisasikan dapat memanggil UpdateColors sebagai alternatif untuk menggambar ulang area kliennya ketika palet sistem berubah.

Untuk informasi selengkapnya tentang menggunakan palet warna, lihat UpdateColors di Windows SDK.

Fungsi UpdateColors anggota biasanya memperbarui area klien lebih cepat daripada menggambar ulang area. Namun, karena fungsi melakukan terjemahan warna berdasarkan warna setiap piksel sebelum palet sistem berubah, setiap panggilan ke fungsi ini menghasilkan hilangnya beberapa akurasi warna.

CDC::WidenPath

Mendefiniskan ulang jalur saat ini sebagai area yang akan dicat jika jalur di-stroke menggunakan pena yang saat ini dipilih ke dalam konteks perangkat.

BOOL WidenPath();

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Fungsi ini berhasil hanya jika pena saat ini adalah pena geometrik yang dibuat oleh versi CreatePen kedua fungsi anggota, atau jika pena dibuat dengan versi CreatePen pertama dan memiliki lebar, dalam unit perangkat, lebih besar dari 1. Konteks perangkat harus berisi jalur tertutup. Setiap kurva Bzier di jalur dikonversi ke urutan garis lurus yang mendekati kurva yang diperlebar. Dengan demikian, tidak ada kurva Bzier yang tetap berada di jalur setelah WidenPath dipanggil.

Lihat juga

CObject Kelas
Bagan Hierarki
CPaintDC Kelas
CWindowDC Kelas
CClientDC Kelas
CMetaFileDC Kelas