Bagikan melalui


Kelas CGdiObject

Menyediakan kelas dasar untuk berbagai jenis objek antarmuka perangkat grafis (GDI) Windows seperti bitmap, wilayah, kuas, pena, palet, dan font.

Sintaks

class CGdiObject : public CObject

Anggota

Konstruktor Publik

Nama Deskripsi
CGdiObject::CGdiObject Membuat CGdiObject objek.

Metode Publik

Nama Deskripsi
CGdiObject::Lampirkan Melampirkan objek GDI Windows ke CGdiObject objek.
CGdiObject::CreateStockObject Mengambil handel ke salah satu pena stok, kuas, atau font yang telah ditentukan sebelumnya.
CGdiObject::D eleteObject Menghapus objek GDI Windows yang dilampirkan ke CGdiObject objek dari memori dengan membebaskan semua penyimpanan sistem yang terkait dengan objek.
CGdiObject::D eleteTempMap Menghapus objek sementara CGdiObject yang dibuat oleh FromHandle.
CGdiObject::D etach Mencopot objek GDI Windows dari CGdiObject objek dan mengembalikan handel ke objek GDI Windows.
CGdiObject::FromHandle Mengembalikan penunjuk ke objek yang CGdiObject diberikan handel ke objek GDI Windows.
CGdiObject::GetObject Mengisi buffer dengan data yang menjelaskan objek Windows GDI yang dilampirkan ke CGdiObject objek.
CGdiObject::GetObjectType Mengambil jenis objek GDI.
CGdiObject::GetSafeHandle Mengembalikan m_hObject kecuali this null, dalam hal ini NULL dikembalikan.
CGdiObject::UnrealizeObject Mengatur ulang asal kuas atau mengatur ulang palet logis.

Operator Publik

Nama Deskripsi
CGdiObject::operator != Menentukan apakah dua objek GDI secara logis tidak sama.
CGdiObject::operator == Menentukan apakah dua objek GDI secara logis sama.
CGdiObject::operator HGDIOBJ Mengambil HANDLE ke objek GDI Windows yang terpasang.

Anggota Data Publik

Nama Deskripsi
CGdiObject::m_hObject HANDLE yang berisi HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN, atau HFONT yang terpasang pada objek ini.

Keterangan

Anda tidak pernah membuat secara CGdiObject langsung. Sebaliknya, Anda membuat objek dari salah satu kelas turunannya, seperti CPen atau CBrush.

Untuk informasi selengkapnya tentang CGdiObject, lihat Objek Grafik.

Hierarki Warisan

CObject

CGdiObject

Persyaratan

Header: afxwin.h

CGdiObject::Lampirkan

Melampirkan objek GDI Windows ke CGdiObject objek.

BOOL Attach(HGDIOBJ hObject);

Parameter

hObject
HANDLE ke objek GDI Windows (misalnya, HPEN atau HBRUSH).

Tampilkan Nilai

Bukan nol jika lampiran berhasil; jika tidak, 0.

CGdiObject::CGdiObject

Membuat CGdiObject objek.

CGdiObject();

Keterangan

Anda tidak pernah membuat secara CGdiObject langsung. Sebaliknya, Anda membuat objek dari salah satu kelas turunannya, seperti CPen atau Cbrush.

CGdiObject::CreateStockObject

Mengambil handel ke salah satu stok pena GDI Windows yang telah ditentukan sebelumnya, kuas, atau font, dan melampirkan objek GDI ke CGdiObject objek.

BOOL CreateStockObject(int nIndex);

Parameter

nIndex
Konstanta yang menentukan jenis objek stok yang diinginkan. Lihat parameter fnObject untuk GetStockObject di Windows SDK untuk deskripsi nilai yang sesuai.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; jika tidak, 0.

Keterangan

Panggil fungsi ini dengan salah satu kelas turunan yang sesuai dengan jenis objek Windows GDI, seperti CPen untuk pena stok.

CGdiObject::D eleteObject

Menghapus objek Windows GDI terlampir dari memori dengan membebaskan semua penyimpanan sistem yang terkait dengan objek GDI Windows.

BOOL DeleteObject();

Tampilkan Nilai

Bukan nol jika objek GDI berhasil dihapus; jika tidak, 0.

Keterangan

Penyimpanan yang CGdiObject terkait dengan objek tidak terpengaruh oleh panggilan ini. Aplikasi tidak boleh memanggil DeleteObject CGdiObject objek yang saat ini dipilih ke dalam konteks perangkat.

Ketika kuas pola dihapus, bitmap yang terkait dengan kuas tidak dihapus. Bitmap harus dihapus secara independen.

CGdiObject::D eleteTempMap

Dipanggil secara otomatis oleh CWinApp handler idle-time, DeleteTempMap menghapus objek sementara CGdiObject yang dibuat oleh FromHandle.

static void PASCAL DeleteTempMap();

Keterangan

DeleteTempMap melepaskan objek GDI Windows yang dilampirkan ke objek sementara CGdiObject sebelum menghapus CGdiObject objek.

Contoh

// DeleteTempMap() is a static member and so does not need to
// be called within the scope of an instantiated CGdiObject object.
CGdiObject::DeleteTempMap();

CGdiObject::D etach

Mencopot objek GDI Windows dari CGdiObject objek dan mengembalikan handel ke objek GDI Windows.

HGDIOBJ Detach();

Tampilkan Nilai

HANDLE objek GDI Windows dilepas; jika tidak, NULL jika tidak ada objek GDI yang terpasang.

CGdiObject::FromHandle

Mengembalikan penunjuk ke objek yang CGdiObject diberikan handel ke objek GDI Windows.

static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);

Parameter

hObject
HANDLE ke objek GDI Windows.

Tampilkan Nilai

Penunjuk ke yang CGdiObject mungkin bersifat sementara atau permanen.

Keterangan

CGdiObject Jika objek belum dilampirkan ke objek GDI Windows, objek sementara CGdiObject dibuat dan dilampirkan.

Objek sementara CGdiObject ini hanya valid hingga kali berikutnya aplikasi memiliki waktu menganggur dalam perulangan peristiwanya, pada saat itu semua objek grafik sementara dihapus. Cara lain untuk mengatakan ini adalah bahwa objek sementara hanya valid selama pemrosesan satu pesan jendela.

CGdiObject::GetObject

Mengisi buffer dengan data yang menentukan objek tertentu.

int GetObject(
    int nCount,
    LPVOID lpObject) const;

Parameter

nCount
Menentukan jumlah byte yang akan disalin ke dalam buffer lpObject .

lpObject
Menunjuk ke buffer yang disediakan pengguna untuk menerima informasi.

Tampilkan Nilai

Jumlah byte yang diambil; jika tidak, 0 jika terjadi kesalahan.

Keterangan

Fungsi mengambil struktur data yang jenisnya bergantung pada jenis objek grafik, seperti yang ditunjukkan oleh daftar berikut:

Objek Jenis buffer
CPen LOGPEN
CBrush LOGBRUSH
CFont LOGFONT
CBitmap BITMAP
CPalette WORD
CRgn Tidak didukung

Jika objek adalah CBitmap objek, GetObject hanya mengembalikan informasi format lebar, tinggi, dan warna bitmap. Bit aktual dapat diambil dengan menggunakan CBitmap::GetBitmapBits.

Jika objek adalah CPalette objek, GetObject mengambil WORD yang menentukan jumlah entri dalam palet. Fungsi ini tidak mengambil struktur LOGPALETTE yang menentukan palet. Aplikasi bisa mendapatkan informasi tentang entri palet dengan memanggil CPalette::GetPaletteEntries.

CGdiObject::GetObjectType

Mengambil jenis objek GDI.

UINT GetObjectType() const;

Tampilkan Nilai

Jenis objek, jika berhasil; jika tidak, 0. Nilainya dapat berupa salah satu dari berikut ini:

  • OBJ_BITMAP Bitmap

  • sikat OBJ_BRUSH

  • OBJ_FONT Font

  • Palet OBJ_PAL

  • pena OBJ_PEN

  • pena OBJ_EXTPEN Diperpanjang

  • Wilayah OBJ_REGION

  • konteks Perangkat OBJ_DC

  • konteks perangkat memori OBJ_MEMDC

  • OBJ_METAFILE Metafile

  • konteks perangkat metafile OBJ_METADC

  • metafile OBJ_ENHMETAFILE Ditingkatkan

  • OBJ_ENHMETADC konteks perangkat metafile yang disempurnakan

CGdiObject::GetSafeHandle

Mengembalikan m_hObject kecuali this null, dalam hal ini NULL dikembalikan.

HGDIOBJ GetSafeHandle() const;

Tampilkan Nilai

HANDLE ke objek GDI Windows terlampir; jika tidak, NULL jika tidak ada objek yang terpasang.

Keterangan

Ini adalah bagian dari paradigma antarmuka penanganan umum dan berguna ketika NULL adalah nilai yang valid atau khusus untuk handel.

Contoh

Lihat contoh untuk CWnd::IsWindowEnabled.

CGdiObject::m_hObject

HANDLE yang berisi HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE, atau HFONT yang terpasang pada objek ini.

HGDIOBJ m_hObject;

CGdiObject::operator !=

Menentukan apakah dua objek GDI secara logis tidak sama.

BOOL operator!=(const CGdiObject& obj) const;

Parameter

Obj
Penunjuk ke CGdiObject.

Keterangan

Menentukan apakah objek GDI di sisi kiri tidak sama dengan objek GDI di sisi kanan.

CGdiObject::operator ==

Menentukan apakah dua objek GDI secara logis sama.

BOOL operator==(const CGdiObject& obj) const;

Parameter

Obj
Referensi ke CGdiObject.

Keterangan

Menentukan apakah objek GDI di sisi kiri sama dengan objek GDI di sisi kanan.

CGdiObject::operator HGDIOBJ

Mengambil HANDLE ke objek GDI Windows yang terpasang; jika tidak, NULL jika tidak ada objek yang terpasang.

operator HGDIOBJ() const;

CGdiObject::UnrealizeObject

Mengatur ulang asal kuas atau mengatur ulang palet logis.

BOOL UnrealizeObject();

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Sementara UnrealizeObject itu adalah fungsi CGdiObject anggota kelas, itu harus dipanggil hanya pada CBrush objek atau CPalette .

Untuk CBrush objek, UnrealizeObject mengarahkan sistem untuk mengatur ulang asal kuas yang diberikan saat berikutnya dipilih ke dalam konteks perangkat. Jika objek adalah CPalette objek, UnrealizeObject mengarahkan sistem untuk mewujudkan palet seolah-olah sebelumnya tidak direalisasikan. Lain kali aplikasi memanggil fungsi CDC::RealPalette untuk palet yang ditentukan, sistem sepenuhnya memetakan ulang palet logis ke palet sistem.

Fungsi UnrealizeObject tidak boleh digunakan dengan objek stok. Fungsi UnrealizeObject harus dipanggil setiap kali asal kuas baru diatur (dengan fungsi CDC::SetBrushOrg ). Fungsi UnrealizeObject tidak boleh dipanggil untuk kuas yang saat ini dipilih atau palet yang saat ini dipilih dari konteks tampilan apa pun.

Lihat juga

Bagan Hierarki
Kelas CBitmap
Kelas CBrush
Kelas CFont
Kelas CPalette
Kelas CPen
Kelas CRgn