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 Arc dengan , 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_hAttribDC konteks 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_hDC konteks 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
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
atauNEXTBAND
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::Arc
dengan , kecuali bahwa posisi saat ini diperbarui. Titik ( , x1
y1
) 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_hDC
konteks perangkat output, dan dalam m_hAttribDC
konteks 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 AfxRegisterWndClass
global .
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 ( , x1
y1
) dan ( x2
, ) y2
menentukan sudut kiri atas dan kanan bawah, masing-masing, dari persegi panjang yang membatasi elips yang merupakan bagian dari akord. Parameter ( x3
, y3
) dan ( x4
, ) y4
menentukan 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::GetDeviceCaps
anggota .
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
, , CreateIC
atau 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 untukhDC
sementara 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_HIENGLISH
MM_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 statusDFCS_BUTTONCHECK
Kotak centangDFCS_BUTTONPUSH
Tombol tekanDFCS_BUTTONRADIO
Tombol radioDFCS_BUTTONRADIOIMAGE
Gambar untuk tombol radio (gambar kebutuhan tidak sama)DFCS_BUTTONRADIOMASK
Masker untuk tombol radio (nonsquare membutuhkan masker)
DFC_CAPTION
DFCS_CAPTIONCLOSE
Tombol TutupDFCS_CAPTIONHELP
Tombol BantuanDFCS_CAPTIONMAX
Tombol MaksimalkanDFCS_CAPTIONMIN
Tombol MinimalkanDFCS_CAPTIONRESTORE
Tombol Pulihkan
DFC_MENU
DFCS_MENUARROW
Panah submenuDFCS_MENUBULLET
PeluruDFCS_MENUCHECK
Tanda centang
DFC_SCROLL
DFCS_SCROLLCOMBOBOX
Bilah gulir kotak komboDFCS_SCROLLDOWN
Panah bawah bilah gulirDFCS_SCROLLLEFT
Panah kiri bilah gulirDFCS_SCROLLRIGHT
Panah kanan bilah gulirDFCS_SCROLLSIZEGRIP
Pegangan ukuran di sudut kanan bawah jendelaDFCS_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::LoadStandardIcon
atau 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_EXTERNALLEADING
DT_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_EXTERNALLEADING
DT_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
, x2
dan 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 MakeProcInstance
Windows , 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
- x1
absolut , 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 olehcrColor
. Gaya ini identik dengan pengisian yang dilakukan olehFloodFill
.FLOODFILLSURFACE
Area isian ditentukan oleh warna yang ditentukan olehcrColor
. 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 ExtFloodFill
teknologi 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 denganSetBkColor
fungsi anggota danGetBkColor
.)
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, lpDxWidths
unit 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 CreateHatchBrush
anggota , , CreatePatternBrush
dan 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. FillRect
membandingkan nilai top
, , bottom
left
, 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::FillSolidRect
dengan ; 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 , , CreatePatternBrush
CreateSolidBrush
, atau diambil oleh GetStockObject
CreateHatchBrush
.
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::FillRect
dengan ; 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 GetDCPenColor
Win32 , 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 dwTable
parameter , , dwOffset
dan 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 GetGraphicsMode
Windows 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 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_hDC
konteks 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_hDC
konteks 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 dalamlpPoints
memulai gambar yang putus-putus.PT_LINETO
Menentukan bahwa titik sebelumnya dan titik yang sesuai dilpPoints
adalah titik akhir baris.PT_BEZIERTO
Menentukan bahwa titik yang sesuai adalahlpPoints
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 terakhirPT_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_DELETESCANS
atau 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_hAttribDC
konteks 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:
Terapkan operator bitwise OR (
|
) ke bendera dan bendera terkait, dikelompokkan sebagai berikut:TA_LEFT
,TA_CENTER
, danTA_RIGHT
TA_BASELINE
,TA_BOTTOM
, danTA_TOP
TA_NOUPDATECP
danTA_UPDATECP
Terapkan operator C++ bitwise AND (
&
) ke hasil dan nilai pengembalian .GetTextAlign
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 TextOut
anggota teks-output GDI , , ExtTextOut
dan 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
, NULL
nMaxExtent
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 GetWorldTransform
Windows 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_HIENGLISH
MM_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
, , y1
x2
, 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 ModifyWorldTransform
Windows 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
, x2
dan y2
(atau oleh lpRect
). Titik awal dan akhir busur ditentukan oleh x3
, , y3
, x4
dan 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 PlayMetaFile
kedua , 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 setelahPT_LINETO
atauPT_BEZIERTO
jenis untuk titik ini selesai. Garis digambar dari titik ini ke yang terbaruPT_MOVETO
atauMoveTo
titik.Bendera ini dikombinasikan dengan
PT_LINETO
jenis untuk garis, atau denganPT_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::MoveTo
fungsi 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::MoveTo
dari , 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
, NULL
Windows 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
ketikaRGN_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 olehpRgn
.RGN_COPY
Wilayah kliping baru adalah salinan wilayah yang diidentifikasi olehpRgn
. Ini adalah fungsionalitas identik dengan versiSelectClipRgn
pertama . Jika wilayah yang diidentifikasi olehpRgn
adalahNULL
, 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 olehpRgn
.RGN_OR
Wilayah kliping baru menggabungkan wilayah kliping saat ini dan wilayah yang diidentifikasi olehpRgn
.RGN_XOR
Wilayah kliping baru menggabungkan wilayah kliping saat ini dan wilayah yang diidentifikasi tetapipRgn
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 CreatePalette
anggota .
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 mengandalkanSYSTEM_FONT
untuk mendapatkan font yang digunakan oleh dialog dan jendela. Sebagai gantinyaSystemParametersInfo
, gunakan fungsi denganSPI_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 CPen
objek , 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 olehlpRectBounds
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 SetDCPenColor
Win32 , 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 SetGraphicsMode
Windows 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 agarMM_ANISOTROPIC
tidak mengubah jendela saat ini atau pengaturan viewport. Untuk mengubah unit, orientasi, dan penskalaan, panggilSetWindowExt
fungsi anggota danSetViewportExt
.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 danSetViewportExt
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_LOENGLISH
MM_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 inversiR2_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 inversiR2_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 inversiR2_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 keTextOut
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 SetWorldTransform
Windows 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
, , SetViewportOrg
dan 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 .PATPAINT
Menggabungkan 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 .SRCPAINT
Menggabungkan 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
, , nSrcWidth
ySrc
, 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