Bagikan melalui


Kelas COleControl

Kelas dasar yang kuat untuk mengembangkan kontrol OLE.

Sintaks

class COleControl : public CWnd

Anggota

Konstruktor Publik

Nama Deskripsi
COleControl::COleControl COleControl Membuat objek.

Metode Publik

Nama Deskripsi
COleControl::AmbientAppearance Mengambil tampilan kontrol saat ini.
COleControl::AmbientBackColor Mengembalikan nilai properti BackColor sekitar.
COleControl::AmbientDisplayName Mengembalikan nama kontrol seperti yang ditentukan oleh kontainer.
COleControl::AmbientFont Mengembalikan nilai properti Font sekitar.
COleControl::AmbientForeColor Mengembalikan nilai properti ForeColor sekitar.
COleControl::AmbientLocaleID Mengembalikan ID lokal kontainer.
COleControl::AmbientScaleUnits Mengembalikan jenis unit yang digunakan oleh kontainer.
COleControl::AmbientShowGrabHandles Menentukan apakah handel ambil harus ditampilkan.
COleControl::AmbientShowHatching Menentukan apakah penetasan harus ditampilkan.
COleControl::AmbientTextAlign Mengembalikan jenis perataan teks yang ditentukan oleh kontainer.
COleControl::AmbientUIDead Menentukan apakah kontrol harus merespons tindakan antarmuka pengguna.
COleControl::AmbientUserMode Menentukan mode kontainer.
COleControl::BoundPropertyChanged Memberi tahu kontainer bahwa properti terikat telah diubah.
COleControl::BoundPropertyRequestEdit Meminta izin untuk mengedit nilai properti.
COleControl::ClientToParent Menerjemahkan titik relatif terhadap asal kontrol ke titik yang relatif terhadap asal kontainernya.
COleControl::ClipCaretRect Menyesuaikan persegi panjang karet jika tumpang tindih dengan kontrol.
COleControl::ControlInfoChanged Panggil fungsi ini setelah set mnemonics yang ditangani oleh kontrol telah berubah.
COleControl::D isplayError Menampilkan peristiwa Kesalahan stok kepada pengguna kontrol.
COleControl::D oClick Implementasi metode stok DoClick .
COleControl::D oPropExchange Menserialisasikan properti COleControl objek.
COleControl::D oSuperclassPaint Redraw kontrol OLE yang telah disubkelas dari kontrol Windows.
COleControl::EnableSimpleFrame Mengaktifkan dukungan bingkai sederhana untuk kontrol.
COleControl::ExchangeExtent Menserialisasikan lebar dan tinggi kontrol.
COleControl::ExchangeStockProps Menserialisasikan properti stok kontrol.
COleControl::ExchangeVersion Menserialisasikan nomor versi kontrol.
COleControl::FireClick Menembakkan peristiwa stok Click .
COleControl::FireDblClick Menembakkan peristiwa stok DblClick .
COleControl::FireError Menembakkan peristiwa stok Error .
COleControl::FireEvent Mengaktifkan peristiwa kustom.
COleControl::FireKeyDown Menembakkan peristiwa stok KeyDown .
COleControl::FireKeyPress Menembakkan peristiwa stok KeyPress .
COleControl::FireKeyUp Menembakkan peristiwa stok KeyUp .
COleControl::FireMouseDown Menembakkan peristiwa stok MouseDown .
COleControl::FireMouseMove Menembakkan peristiwa stok MouseMove .
COleControl::FireMouseUp Menembakkan peristiwa stok MouseUp .
COleControl::FireReadyStateChange Mengaktifkan peristiwa saat status siap kontrol berubah.
COleControl::GetActivationPolicy Mengubah perilaku aktivasi default kontrol yang mendukung IPointerInactive antarmuka.
COleControl::GetAmbientProperty Mengembalikan nilai properti sekitar yang ditentukan.
COleControl::GetAppearance Mengembalikan nilai properti Tampilan saham.
COleControl::GetBackColor Mengembalikan nilai properti BackColor stok.
COleControl::GetBorderStyle Mengembalikan nilai properti BorderStyle saham.
COleControl::GetCapture Menentukan apakah objek kontrol tanpa jendela dan diaktifkan memiliki tangkapan mouse.
COleControl::GetClassID Mengambil ID kelas OLE kontrol.
COleControl::GetClientOffset Mengambil perbedaan antara sudut kiri atas area persegi panjang kontrol dan sudut kiri atas area kliennya.
COleControl::GetClientRect Mengambil ukuran area klien kontrol.
COleControl::GetClientSite Mengkueri objek untuk penunjuk ke situs kliennya saat ini dalam kontainernya.
COleControl::GetControlFlags Mengambil pengaturan bendera kontrol.
COleControl::GetControlSize Mengembalikan posisi dan ukuran kontrol OLE.
COleControl::GetDC Menyediakan sarana bagi kontrol tanpa jendela untuk mendapatkan konteks perangkat dari kontainernya.
COleControl::GetEnabled Mengembalikan nilai properti stok Diaktifkan.
COleControl::GetExtendedControl Mengambil penunjuk ke objek kontrol yang diperluas milik kontainer.
COleControl::GetFocus Menentukan apakah kontrol memiliki fokus.
COleControl::GetFont Mengembalikan nilai properti Font stok.
COleControl::GetFontTextMetrics Mengembalikan metrik CFontHolder objek.
COleControl::GetForeColor Mengembalikan nilai properti ForeColor saham.
COleControl::GetHwnd Mengembalikan nilai properti hWnd stok.
COleControl::GetMessageString Menyediakan teks bilah status untuk item menu.
COleControl::GetNotSupported Mencegah akses ke nilai properti kontrol oleh pengguna.
COleControl::GetReadyState Mengembalikan status kesiapan kontrol.
COleControl::GetRectInContainer Mengembalikan persegi panjang kontrol relatif terhadap kontainernya.
COleControl::GetStockTextMetrics Mengembalikan metrik properti Font stok.
COleControl::GetText Mengembalikan nilai properti Teks atau Keterangan stok.
COleControl::GetWindowlessDropTarget Ambil alih untuk memungkinkan kontrol tanpa jendela menjadi target operasi seret dan lepas.
COleControl::InitializeIIDs Menginformasikan kelas dasar IID yang akan digunakan kontrol.
COleControl::InternalGetFont Mengembalikan CFontHolder objek untuk properti Font stok.
COleControl::InternalGetText Mengambil properti Teks atau Teks stok.
COleControl::InternalSetReadyState Mengatur status kesiapan kontrol dan mengaktifkan peristiwa siap-perubahan status.
COleControl::InvalidateControl Membatalkan area kontrol yang ditampilkan, menyebabkannya digambar ulang.
COleControl::InvalidateRgn Membatalkan area klien jendela kontainer dalam wilayah tertentu. Dapat digunakan untuk menggambar ulang kontrol tanpa jendela di wilayah tersebut.
COleControl::IsConvertingVBX Memungkinkan pemuatan khusus kontrol OLE.
COleControl::IsModified Menentukan apakah status kontrol telah berubah.
COleControl::IsOptimizedDraw Menunjukkan apakah kontainer mendukung gambar yang dioptimalkan untuk operasi gambar saat ini.
COleControl::IsSubclassedControl Dipanggil untuk menentukan apakah kontrol mensubkelas kontrol Windows.
COleControl::Load Mengatur ulang data asinkron sebelumnya dan memulai beban baru properti asinkron kontrol.
COleControl::LockInPlaceActive Menentukan apakah kontrol Anda dapat dinonaktifkan oleh kontainer.
COleControl::OnAmbientPropertyChange Dipanggil ketika properti sekitar diubah.
COleControl::OnAppearanceChanged Dipanggil ketika properti Tampilan saham diubah.
COleControl::OnBackColorChanged Dipanggil ketika properti BackColor stok diubah.
COleControl::OnBorderStyleChanged Dipanggil saat properti BorderStyle saham diubah.
COleControl::OnClick Dipanggil untuk mengaktifkan peristiwa Klik stok.
COleControl::OnClose Memberi tahu kontrol yang IOleControl::Close telah dipanggil.
COleControl::OnDoVerb Dipanggil setelah kata kerja kontrol dijalankan.
COleControl::OnDraw Dipanggil ketika kontrol diminta untuk menggambar ulang dirinya sendiri.
COleControl::OnDrawMetafile Dipanggil oleh kontainer ketika kontrol diminta untuk menggambar ulang dirinya sendiri menggunakan konteks perangkat metafile.
COleControl::OnSedit Dipanggil oleh kontainer ke UI Aktifkan kontrol OLE.
COleControl::OnEnabledChanged Dipanggil saat properti stok Diaktifkan diubah.
COleControl::OnEnumVerbs Dipanggil oleh kontainer untuk menghitung kata kerja kontrol.
COleControl::OnEventAdvise Dipanggil saat penanganan aktivitas tersambung atau terputus dari kontrol.
COleControl::OnFontChanged Dipanggil ketika properti Font stok diubah.
COleControl::OnForeColorChanged Dipanggil ketika properti ForeColor saham diubah.
COleControl::OnFreezeEvents Dipanggil ketika peristiwa kontrol dibekukan atau tidak dibekukan.
COleControl::OnGetColorSet Memberi tahu kontrol yang IOleObject::GetColorSet telah dipanggil.
COleControl::OnGetControlInfo Menyediakan informasi mnemonic ke kontainer.
COleControl::OnGetDisplayString Dipanggil untuk mendapatkan string untuk mewakili nilai properti.
COleControl::OnGetInPlaceMenu Meminta handel menu kontrol yang akan digabungkan dengan menu kontainer.
COleControl::OnGetNaturalExtent Ambil alih untuk mengambil ukuran tampilan kontrol yang paling dekat dengan ukuran yang diusulkan dan misalnya mode tenda.
COleControl::OnGetPredefinedStrings Mengembalikan string yang mewakili nilai yang mungkin untuk properti.
COleControl::OnGetPredefinedValue Mengembalikan nilai yang sesuai dengan string yang telah ditentukan sebelumnya.
COleControl::OnGetViewExtent Ambil alih untuk mengambil ukuran area tampilan kontrol (dapat digunakan untuk mengaktifkan gambar dua-pass).
COleControl::OnGetViewRect Ambil alih untuk mengonversi ukuran kontrol menjadi persegi panjang yang dimulai pada posisi tertentu.
COleControl::OnGetViewStatus Ambil alih untuk mengambil status tampilan kontrol.
COleControl::OnHideToolBars Dipanggil oleh kontainer ketika kontrol dinonaktifkan UI.
COleControl::OnInactiveMouseMove Ambil alih agar kontainer untuk kontrol tidak aktif di bawah pengiriman penunjuk mouse WM_MOUSEMOVE pesan ke kontrol.
COleControl::OnInactiveSetCursor Ambil alih agar kontainer untuk kontrol tidak aktif di bawah pengiriman penunjuk mouse WM_SETCURSOR pesan ke kontrol.
COleControl::OnKeyDownEvent Dipanggil setelah peristiwa KeyDown saham diaktifkan.
COleControl::OnKeyPressEvent Dipanggil setelah peristiwa KeyPress saham dipecat.
COleControl::OnKeyUpEvent Dipanggil setelah peristiwa KeyUp stok dipecat.
COleControl::OnMapPropertyToPage Menunjukkan halaman properti mana yang akan digunakan untuk mengedit properti.
COleControl::OnMnemonic Dipanggil ketika tombol mnemonik kontrol telah ditekan.
COleControl::OnProperties Dipanggil ketika kata kerja "Properti" kontrol telah dipanggil.
COleControl::OnQueryHitPoint Ambil alih untuk mengkueri apakah tampilan kontrol tumpang tindih dengan titik tertentu.
COleControl::OnQueryHitRect Ambil alih untuk mengkueri apakah tampilan kontrol tumpang tindih setiap titik dalam persegi panjang tertentu.
COleControl::OnRenderData Dipanggil oleh kerangka kerja untuk mengambil data dalam format yang ditentukan.
COleControl::OnRenderFileData Dipanggil oleh kerangka kerja untuk mengambil data dari file dalam format yang ditentukan.
COleControl::OnRenderGlobalData Dipanggil oleh kerangka kerja untuk mengambil data dari memori global dalam format yang ditentukan.
COleControl::OnResetState Mereset properti kontrol ke nilai default.
COleControl::OnSetClientSite Memberi tahu kontrol yang IOleControl::SetClientSite telah dipanggil.
COleControl::OnSetData Mengganti data kontrol dengan nilai lain.
COleControl::OnSetExtent Dipanggil setelah tingkat kontrol berubah.
COleControl::OnSetObjectRects Dipanggil setelah dimensi kontrol diubah.
COleControl::OnShowToolBars Dipanggil ketika kontrol telah diaktifkan UI.
COleControl::OnTextChanged Dipanggil saat properti Teks atau Keterangan stok diubah.
COleControl::OnWindowlessMessage Memproses pesan jendela (selain pesan mouse dan keyboard) untuk kontrol tanpa jendela.
COleControl::P arentToClient Menerjemahkan titik yang relatif terhadap asal kontainer ke titik yang relatif terhadap asal kontrol.
COleControl::P ostModalDialog Memberi tahu kontainer bahwa kotak dialog modal telah ditutup.
COleControl::P reModalDialog Memberi tahu kontainer bahwa kotak dialog modal akan ditampilkan.
COleControl::RecreateControlWindow Menghancurkan dan membuat ulang jendela kontrol.
COleControl::Refresh Memaksa pengecatan ulang tampilan kontrol.
COleControl::ReleaseCapture Melepaskan tangkapan mouse.
COleControl::ReleaseDC Merilis konteks perangkat tampilan kontainer kontrol tanpa jendela.
COleControl::ReparentControlWindow Mereset induk jendela kontrol.
COleControl::ResetStockProps Menginisialisasi COleControl properti stok ke nilai defaultnya.
COleControl::ResetVersion Menginisialisasi nomor versi ke nilai tertentu.
COleControl::ScrollWindow Memungkinkan kontrol tanpa jendela untuk menggulir area dalam gambar aktif di tempatnya pada tampilan.
COleControl::SelectFontObject Memilih properti Font kustom ke dalam konteks perangkat.
COleControl::SelectStockFont Memilih properti Font stok ke dalam konteks perangkat.
COleControl::SerializeExtent Menserialisasikan atau menginisialisasi ruang tampilan untuk kontrol.
COleControl::SerializeStockProps Menserialisasikan atau menginisialisasi COleControl properti stok.
COleControl::SerializeVersion Menserialisasikan atau menginisialisasi informasi versi kontrol.
COleControl::SetAppearance Mengatur nilai properti Tampilan saham.
COleControl::SetBackColor Mengatur nilai properti BackColor stok.
COleControl::SetBorderStyle Mengatur nilai properti BorderStyle saham.
COleControl::SetCapture Menyebabkan jendela kontainer kontrol mengambil alih tangkapan mouse atas nama kontrol.
COleControl::SetControlSize Mengatur posisi dan ukuran kontrol OLE.
COleControl::SetEnabled Mengatur nilai properti stok Diaktifkan.
COleControl::SetFocus Menyebabkan jendela kontainer kontrol mengambil alih fokus input pada nama kontrol.
COleControl::SetFont Mengatur nilai properti Font stok.
COleControl::SetForeColor Mengatur nilai properti ForeColor saham.
COleControl::SetInitialSize Mengatur ukuran kontrol OLE saat pertama kali ditampilkan dalam kontainer.
COleControl::SetModifiedFlag Mengubah status kontrol yang dimodifikasi.
COleControl::SetNotPermitted Menunjukkan bahwa permintaan edit telah gagal.
COleControl::SetNotSupported Mencegah modifikasi pada nilai properti kontrol oleh pengguna.
COleControl::SetRectInContainer Mengatur persegi panjang kontrol relatif terhadap kontainernya.
COleControl::SetText Mengatur nilai properti Teks atau Keterangan stok.
COleControl::ThrowError Menandakan bahwa terjadi kesalahan dalam kontrol OLE.
COleControl::TransformCoords Mengubah nilai koordinat antara kontainer dan kontrol.
COleControl::TranslateColor Mengonversi nilai OLE_COLOR menjadi nilai COLORREF.
COleControl::WillAmbientsBeValidDuringLoad Menentukan apakah properti sekitar akan tersedia saat kontrol dimuat berikutnya.
COleControl::WindowProc Menyediakan prosedur Windows untuk objek COleControl .

Metode yang Dilindungi

Nama Deskripsi
COleControl::D rawContent Dipanggil oleh kerangka kerja ketika tampilan kontrol perlu diperbarui.
COleControl::D rawMetafile Dipanggil oleh kerangka kerja saat konteks perangkat metafile sedang digunakan.
COleControl::IsInvokeAllowed Mengaktifkan pemanggilan metode otomatisasi.
COleControl::SetInitialDataFormats Dipanggil oleh kerangka kerja untuk menginisialisasi daftar format data yang didukung oleh kontrol.

Keterangan

Berasal dari CWnd, kelas ini mewarisi semua fungsionalitas objek jendela Windows ditambah fungsionalitas tambahan khusus untuk OLE, seperti penembakan peristiwa dan kemampuan untuk mendukung metode dan properti.

Kontrol OLE dapat dimasukkan ke dalam aplikasi kontainer OLE dan berkomunikasi dengan kontainer dengan menggunakan sistem dua arah dari penembakan peristiwa dan mengekspos metode dan properti ke kontainer. Perhatikan bahwa kontainer OLE standar hanya mendukung fungsionalitas dasar kontrol OLE. Mereka tidak dapat mendukung fitur yang diperluas dari kontrol OLE. Penembakan peristiwa terjadi ketika peristiwa dikirim ke kontainer sebagai akibat dari tindakan tertentu yang terjadi dalam kontrol. Pada gilirannya, kontainer berkomunikasi dengan kontrol dengan menggunakan serangkaian metode dan properti yang terekspos yang dianalogikan dengan fungsi anggota dan anggota data kelas C++. Pendekatan ini memungkinkan pengembang untuk mengontrol tampilan kontrol dan memberi tahu kontainer ketika tindakan tertentu terjadi.

Kontrol Tanpa Jendela

Kontrol OLE dapat digunakan di tempat aktif tanpa jendela. Kontrol tanpa jendela memiliki keuntungan signifikan:

  • Kontrol tanpa jendela bisa transparan dan tidak persegi panjang

  • Kontrol tanpa jendela mengurangi ukuran instans dan waktu pembuatan objek

Kontrol tidak memerlukan jendela. Layanan yang ditawarkan jendela dapat dengan mudah disediakan melalui satu jendela bersama (biasanya kontainer) dan sedikit kode pengiriman. Memiliki jendela sebagian besar merupakan komplikasi yang tidak perlu pada objek.

Ketika aktivasi tanpa jendela digunakan, kontainer (yang memang memiliki jendela) bertanggung jawab untuk menyediakan layanan yang seharusnya disediakan oleh jendela kontrol sendiri. Misalnya, jika kontrol Anda perlu mengkueri fokus keyboard, mengkueri tangkapan mouse, atau mendapatkan konteks perangkat, operasi ini dikelola oleh kontainer. Fungsi COleControl anggota operasi tanpa jendela memanggil operasi ini pada kontainer.

Ketika aktivasi tanpa jendela diaktifkan, kontainer mendelegasikan pesan input ke antarmuka kontrol IOleInPlaceObjectWindowless (ekstensi IOleInPlaceObject untuk dukungan tanpa jendela). COleControlImplementasi antarmuka ini akan mengirimkan pesan ini melalui peta pesan kontrol Anda, setelah menyesuaikan koordinat mouse dengan tepat. Anda dapat memproses pesan ini seperti pesan jendela biasa, dengan menambahkan entri yang sesuai ke peta pesan.

Dalam kontrol tanpa jendela, Anda harus selalu menggunakan COleControl fungsi anggota alih-alih fungsi anggota yang sesuai CWnd atau fungsi Windows API terkait.

Objek kontrol OLE juga dapat membuat jendela hanya ketika menjadi aktif, tetapi jumlah pekerjaan yang diperlukan untuk transisi aktif-tidak aktif naik dan kecepatan transisi turun. Ada kasus ketika ini adalah masalah: sebagai contoh, pertimbangkan kisi kotak teks. Saat mengursor ke atas dan ke bawah melalui kolom, setiap kontrol harus diaktifkan di tempat lalu dinonaktifkan. Kecepatan transisi tidak aktif/aktif akan secara langsung memengaruhi kecepatan gulir.

Untuk informasi selengkapnya tentang mengembangkan kerangka kerja kontrol OLE, lihat artikel Kontrol dan Gambaran Umum ActiveX MFC: Membuat Program Kontrol ActiveX MFC. Untuk informasi tentang mengoptimalkan kontrol OLE, termasuk kontrol tanpa jendela dan bebas kedap- jendela, lihat Kontrol ActiveX MFC: Pengoptimalan.

Hierarki Warisan

CObject

CCmdTarget

CWnd

COleControl

Persyaratan

Header: afxctl.h

COleControl::AmbientBackColor

Mengembalikan nilai properti BackColor sekitar.

OLE_COLOR AmbientBackColor();

Tampilkan Nilai

Nilai properti BackColor sekitar kontainer saat ini, jika ada. Jika properti tidak didukung, fungsi ini mengembalikan warna latar belakang Windows yang ditentukan sistem.

Keterangan

Properti BackColor sekitar tersedia untuk semua kontrol dan ditentukan oleh kontainer. Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientDisplayName

Nama kontainer yang telah ditetapkan ke kontrol dapat digunakan dalam pesan kesalahan yang ditampilkan kepada pengguna.

CString AmbientDisplayName();

Tampilkan Nilai

Nama kontrol OLE. Defaultnya adalah string panjang nol.

Keterangan

Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientFont

Mengembalikan nilai properti Font sekitar.

LPFONTDISP AmbientFont();

Tampilkan Nilai

Penunjuk ke antarmuka pengiriman Font sekitar kontainer. Nilai defaultnya adalah NULL. Jika pengembalian tidak sama dengan NULL, Anda bertanggung jawab untuk merilis font dengan memanggil fungsi anggota IUnknown::Release-nya.

Keterangan

Properti Font sekitar didefinisikan oleh kontainer dan tersedia untuk semua kontrol. Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientForeColor

Mengembalikan nilai properti ForeColor sekitar.

OLE_COLOR AmbientForeColor();

Tampilkan Nilai

Nilai properti ForeColor sekitar kontainer saat ini, jika ada. Jika tidak didukung, fungsi ini mengembalikan warna teks Windows yang ditentukan sistem.

Keterangan

Properti ForeColor sekitar tersedia untuk semua kontrol dan ditentukan oleh kontainer. Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientLocaleID

Mengembalikan ID lokal kontainer.

LCID AmbientLocaleID();

Tampilkan Nilai

Nilai properti LocaleID kontainer, jika ada. Jika properti ini tidak didukung, fungsi ini mengembalikan 0.

Keterangan

Kontrol dapat menggunakan LocaleID untuk menyesuaikan antarmuka penggunanya untuk lokal tertentu. Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientAppearance

Mengambil pengaturan tampilan saat ini untuk objek kontrol.

short AmbientAppearance();

Tampilkan Nilai

Tampilan kontrol:

  • 0 Penampilan datar

  • Penampilan 1 3D

Keterangan

Panggil fungsi ini untuk mengambil nilai properti DISPID_AMBIENT_APPEARANCE saat ini untuk kontrol.

COleControl::AmbientScaleUnits

Mengembalikan jenis unit yang digunakan oleh kontainer.

CString AmbientScaleUnits();

Tampilkan Nilai

String yang berisi ScaleUnits sekitar kontainer. Jika properti ini tidak didukung, fungsi ini mengembalikan string panjang nol.

Keterangan

Properti ScaleUnits sekitar kontainer dapat digunakan untuk menampilkan posisi atau dimensi, berlabel dengan unit yang dipilih, seperti twips atau sentimeter. Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientShowGrabHandles

Menentukan apakah kontainer memungkinkan kontrol untuk menampilkan handel ambil untuk dirinya sendiri saat aktif.

BOOL AmbientShowGrabHandles();

Tampilkan Nilai

Nonzero jika handel ambil harus ditampilkan; jika tidak, 0. Jika properti ini tidak didukung, fungsi ini mengembalikan nonzero.

Keterangan

Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientShowHatching

Menentukan apakah kontainer memungkinkan kontrol untuk menampilkan dirinya sendiri dengan pola yang ditetaskan saat UI aktif.

BOOL AmbientShowHatching();

Tampilkan Nilai

Nonzero jika pola yang menetas harus ditampilkan; jika tidak, 0. Jika properti ini tidak didukung, fungsi ini mengembalikan nonzero.

Keterangan

Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientTextAlign

Menentukan perataan teks sekitar yang lebih disukai oleh kontainer kontrol.

short AmbientTextAlign();

Tampilkan Nilai

Status properti TextAlign sekitar kontainer. Jika properti ini tidak didukung, fungsi ini mengembalikan 0.

Berikut ini adalah daftar nilai pengembalian yang valid:

Nilai hasil Makna
0 Perataan umum (angka di sebelah kanan, teks ke kiri).
1 Rata kiri
2 Pusat
3 Rata kanan

Keterangan

Properti ini tersedia untuk semua kontrol yang disematkan dan ditentukan oleh kontainer. Perhatikan bahwa kontainer tidak diperlukan untuk mendukung properti ini.

COleControl::AmbientUIDead

Menentukan apakah kontainer ingin kontrol merespons tindakan antarmuka pengguna.

BOOL AmbientUIDead();

Tampilkan Nilai

Bukan nol jika kontrol harus merespons tindakan antarmuka pengguna; jika tidak, 0. Jika properti ini tidak didukung, fungsi ini mengembalikan 0.

Keterangan

Misalnya, kontainer mungkin mengatur ini ke TRUE dalam mode desain.

COleControl::AmbientUserMode

Menentukan apakah kontainer berada dalam mode desain atau mode pengguna.

BOOL AmbientUserMode();

Tampilkan Nilai

Nonzero jika kontainer dalam mode pengguna; jika tidak, 0 (dalam mode desain). Jika properti ini tidak didukung, fungsi ini mengembalikan TRUE.

Keterangan

Misalnya, kontainer mungkin mengatur ini ke FALSE dalam mode desain.

COleControl::BoundPropertyChanged

Memberi sinyal bahwa nilai properti terikat telah berubah.

void BoundPropertyChanged(DISPID dispid);

Parameter

dispid
ID pengiriman properti terikat kontrol.

Keterangan

Ini harus dipanggil setiap kali nilai properti berubah, bahkan dalam kasus di mana perubahan tidak dilakukan melalui metode Set properti. Ketahui properti terikat yang dipetakan ke variabel anggota. Setiap kali variabel anggota tersebut berubah, BoundPropertyChanged harus dipanggil.

COleControl::BoundPropertyRequestEdit

Meminta izin dari IPropertyNotifySink antarmuka untuk mengubah nilai properti terikat yang disediakan oleh kontrol.

BOOL BoundPropertyRequestEdit(DISPID dispid);

Parameter

dispid
ID pengiriman properti terikat kontrol.

Tampilkan Nilai

Nonzero jika perubahan diizinkan; jika tidak, 0. Nilai defaultnya adalah nonzero.

Keterangan

Jika izin ditolak, kontrol tidak boleh membiarkan nilai properti berubah. Ini dapat dilakukan dengan mengabaikan atau gagal tindakan yang mencoba mengubah nilai properti.

COleControl::ClientToParent

Menerjemahkan koordinat pPoint ke dalam koordinat induk.

virtual void ClientToParent(
    LPCRECT lprcBounds,
    LPPOINT pPoint) const;

Parameter

lprcBounds
Penunjuk ke batas kontrol OLE dalam kontainer. Bukan area klien tetapi area seluruh kontrol termasuk batas dan bilah gulir.

pPoint
Pointer ke titik area klien OLE untuk diterjemahkan ke dalam koordinat induk (kontainer).

Keterangan

Pada pPoint input relatif terhadap asal area klien kontrol OLE (sudut kiri atas area klien kontrol). Pada pPoint output relatif terhadap asal induk (sudut kiri atas kontainer).

COleControl::ClipCaretRect

Menyesuaikan persegi panjang karet jika seluruhnya atau sebagian ditutupi oleh objek buram yang tumpang tindih.

BOOL ClipCaretRect(LPRECT lpRect);

Parameter

lpRect
Pada input, penunjuk ke struktur RECT yang berisi area karet yang akan disesuaikan. Pada output, area caret yang disesuaikan, atau NULL jika persegi panjang caret sepenuhnya tercakup.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Tanda sisipan adalah garis berkedip, blok, atau bitmap yang biasanya menunjukkan di mana teks atau grafik akan disisipkan.

Objek tanpa jendela tidak dapat dengan aman menunjukkan tanda sisipan tanpa terlebih dahulu memeriksa apakah tanda sisipan sebagian atau benar-benar disembunyikan dengan objek yang tumpang tindih. Untuk memungkinkan hal itu, objek dapat digunakan ClipCaretRect untuk menyesuaikan tanda sisipan (dikurangi) untuk memastikannya cocok di wilayah kliping.

Objek yang membuat tanda sisipan harus mengirimkan persegi panjang tanda sisir ke ClipCaretRect dan menggunakan persegi panjang yang disesuaikan untuk tanda sisipan. Jika tanda sisipan sepenuhnya disembunyikan, metode ini akan mengembalikan FALSE dan tanda sisipan tidak boleh ditampilkan sama sekali dalam kasus ini.

COleControl::COleControl

Membuat COleControl objek.

COleControl();

Keterangan

Fungsi ini biasanya tidak dipanggil secara langsung. Sebaliknya, kontrol OLE biasanya dibuat oleh pabrik kelasnya.

COleControl::ControlInfoChanged

Panggil fungsi ini ketika set mnemonics yang didukung oleh kontrol telah berubah.

void ControlInfoChanged();

Keterangan

Setelah menerima pemberitahuan ini, kontainer kontrol mendapatkan set mnemonics baru dengan melakukan panggilan ke IOleControl::GetControlInfo. Perhatikan bahwa kontainer tidak diperlukan untuk merespons pemberitahuan ini.

COleControl::D isplayError

Dipanggil oleh kerangka kerja setelah peristiwa Kesalahan stok ditangani (kecuali penanganan aktivitas telah menekan tampilan kesalahan).

virtual void DisplayError(
    SCODE scode,
    LPCTSTR lpszDescription,
    LPCTSTR lpszSource,
    LPCTSTR lpszHelpFile,
    UINT nHelpID);

Parameter

scode
Nilai kode status yang akan dilaporkan. Untuk daftar lengkap kemungkinan kode, lihat artikel Kontrol ActiveX: Topik Tingkat Lanjut.

lpszDescription
Deskripsi kesalahan yang dilaporkan.

lpszSource
Nama modul yang menghasilkan kesalahan (biasanya, nama modul kontrol OLE).

lpszHelpFile
Nama file bantuan yang berisi deskripsi kesalahan.

nHelpID
ID Konteks Bantuan dari kesalahan yang dilaporkan.

Keterangan

Perilaku default menampilkan kotak pesan yang berisi deskripsi kesalahan, yang terkandung dalam lpszDescription.

Ambil alih fungsi ini untuk menyesuaikan bagaimana kesalahan ditampilkan.

COleControl::D oClick

Mensimulasikan tindakan klik mouse pada kontrol.

void DoClick();

Keterangan

Fungsi anggota yang dapat COleControl::OnClick diambil alih akan dipanggil, dan peristiwa Klik stok akan diaktifkan, jika didukung oleh kontrol.

Fungsi ini didukung oleh COleControl kelas dasar sebagai metode stok, yang disebut DoClick. Untuk informasi selengkapnya, lihat artikel Kontrol ActiveX: Metode.

COleControl::D oPropExchange

Dipanggil oleh kerangka kerja saat memuat atau menyimpan kontrol dari representasi penyimpanan persisten, seperti aliran atau kumpulan properti.

virtual void DoPropExchange(CPropExchange* pPX);

Parameter

pPX
Penunjuk ke CPropExchange objek. Kerangka kerja menyediakan objek ini untuk menetapkan konteks pertukaran properti, termasuk arahnya.

Keterangan

Fungsi ini biasanya melakukan panggilan ke keluarga fungsi PX_ untuk memuat atau menyimpan properti tertentu yang ditentukan pengguna dari kontrol OLE.

Jika Wizard Kontrol telah digunakan untuk membuat proyek kontrol OLE, versi yang ditimpa dari fungsi ini akan membuat serialisasi properti stok yang didukung dengan COleControl panggilan ke fungsi kelas dasar, COleControl::DoPropExchange. Saat Anda menambahkan properti yang ditentukan pengguna ke kontrol OLE, Anda harus memodifikasi fungsi ini untuk membuat serial properti baru Anda. Untuk informasi selengkapnya tentang serialisasi, lihat artikel Kontrol ActiveX: Serialisasi.

COleControl::D oSuperclassPaint

Redraw kontrol OLE yang telah disubkelas dari kontrol Windows.

void DoSuperclassPaint(
    CDC* pDC,
    const CRect& rcBounds);

Parameter

pDC
Penunjuk ke konteks perangkat kontainer kontrol.

rcBounds
Area di mana kontrol akan digambar.

Keterangan

Panggil fungsi ini untuk menangani lukisan kontrol OLE nonaktif dengan benar. Fungsi ini hanya boleh digunakan jika kontrol OLE mensubkelas kontrol Windows dan harus dipanggil dalam OnDraw fungsi kontrol Anda.

Untuk informasi selengkapnya tentang fungsi ini dan subkelas kontrol Windows, lihat artikel Kontrol ActiveX: Subkelas Kontrol Windows.

COleControl::D rawContent

Dipanggil oleh kerangka kerja ketika tampilan kontrol perlu diperbarui.

void DrawContent(
    CDC* pDC,
    CRect& rc);

Parameter

pDC
Penunjuk ke konteks perangkat.

Rc
Area persegi panjang yang akan digambar.

Keterangan

Fungsi ini secara langsung memanggil fungsi yang dapat OnDraw diganti.

COleControl::D rawMetafile

Dipanggil oleh kerangka kerja saat konteks perangkat metafile sedang digunakan.

void DrawMetafile(
    CDC* pDC,
    CRect& rc);

Parameter

pDC
Penunjuk ke konteks perangkat metafile.

Rc
Area persegi panjang yang akan digambar.

COleControl::EnableSimpleFrame

Mengaktifkan karakteristik bingkai sederhana untuk kontrol OLE.

void EnableSimpleFrame();

Keterangan

Karakteristik ini memungkinkan kontrol untuk mendukung penahanan visual kontrol lain, tetapi bukan penahanan OLE yang benar. Contohnya adalah kotak grup dengan beberapa kontrol di dalamnya. Kontrol ini tidak terkandung OLE, tetapi berada dalam kotak grup yang sama.

COleControl::ExchangeExtent

Menserialisasikan atau menginisialisasi status tingkat kontrol (dimensinya dalam unit HIMETRIC).

BOOL ExchangeExtent(CPropExchange* pPX);

Parameter

pPX
Penunjuk ke objek CPropExchange . Kerangka kerja menyediakan objek ini untuk menetapkan konteks pertukaran properti, termasuk arahnya.

Tampilkan Nilai

Bukan nol jika fungsi berhasil; 0 jika tidak.

Keterangan

Fungsi ini biasanya dipanggil oleh implementasi default .COleControl::DoPropExchange

COleControl::ExchangeStockProps

Menserialisasikan atau menginisialisasi status properti stok kontrol.

void ExchangeStockProps(CPropExchange* pPX);

Parameter

pPX
Penunjuk ke objek CPropExchange . Kerangka kerja menyediakan objek ini untuk menetapkan konteks pertukaran properti, termasuk arahnya.

Keterangan

Fungsi ini biasanya dipanggil oleh implementasi default .COleControl::DoPropExchange

COleControl::ExchangeVersion

Menserialisasikan atau menginisialisasi status informasi versi kontrol.

BOOL ExchangeVersion(
    CPropExchange* pPX,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Parameter

pPX
Penunjuk ke CPropExchange objek. Kerangka kerja menyediakan objek ini untuk menetapkan konteks pertukaran properti, termasuk arahnya.

dwVersionDefault
Nomor versi kontrol saat ini.

bConvert
Menunjukkan apakah data persisten harus dikonversi ke format terbaru saat disimpan, atau dipertahankan dalam format yang sama yang dimuat.

Tampilkan Nilai

Nonzero dari fungsi berhasil; 0 jika tidak.

Keterangan

Biasanya, ini akan menjadi fungsi pertama yang disebut oleh penimpaan kontrol dari COleControl::DoPropExchange. Saat memuat, fungsi ini membaca nomor versi data persisten, dan mengatur atribut versi objek CPropExchange yang sesuai. Saat menyimpan, fungsi ini menulis nomor versi data persisten.

Untuk informasi selengkapnya tentang persistensi dan penerapan versi, lihat artikel Kontrol ActiveX: Serialisasi.

COleControl::FireClick

Dipanggil oleh kerangka kerja ketika mouse diklik kontrol aktif.

void FireClick();

Keterangan

Jika peristiwa ini didefinisikan sebagai peristiwa kustom, Anda menentukan kapan peristiwa diaktifkan.

Agar pengaktifan otomatis peristiwa Klik terjadi, peta Peristiwa kontrol harus memiliki peristiwa Klik stok yang ditentukan.

COleControl::FireDblClick

Dipanggil oleh kerangka kerja ketika mouse diklik dua kali melalui kontrol aktif.

void FireDblClick();

Keterangan

Jika peristiwa ini didefinisikan sebagai peristiwa kustom, Anda menentukan kapan peristiwa diaktifkan.

Agar penembakan otomatis peristiwa DblClick terjadi, peta Peristiwa kontrol harus memiliki peristiwa DblClick stok yang ditentukan.

COleControl::FireError

Mengaktifkan peristiwa Kesalahan stok.

void FireError(
    SCODE scode,
    LPCTSTR lpszDescription,
    UINT nHelpID = 0);

Parameter

scode
Nilai kode status yang akan dilaporkan. Untuk daftar lengkap kemungkinan kode, lihat artikel Kontrol ActiveX: Topik Tingkat Lanjut.

lpszDescription
Deskripsi kesalahan yang dilaporkan.

nHelpID
ID Bantuan kesalahan yang dilaporkan.

Keterangan

Kejadian ini menyediakan cara memberi sinyal, di tempat yang sesuai dalam kode Anda, bahwa kesalahan telah terjadi dalam kontrol Anda. Tidak seperti peristiwa stok lainnya, seperti Klik atau MouseMove, Kesalahan tidak pernah diaktifkan oleh kerangka kerja.

Untuk melaporkan kesalahan yang terjadi selama properti mendapatkan fungsi, fungsi kumpulan properti, atau metode otomatisasi, panggil COleControl::ThrowError.

Implementasi peristiwa Kesalahan Saham kontrol OLE menggunakan nilai SCODE. Jika kontrol Anda menggunakan kejadian ini, dan dimaksudkan untuk digunakan di Visual Basic 4.0, Anda akan menerima kesalahan karena nilai SCODE tidak didukung di Visual Basic.

Untuk memperbaikinya, ubah parameter SCODE secara manual di kontrol . File ODL ke long. Selain itu, setiap peristiwa, metode, atau properti kustom yang menggunakan parameter SCODE juga menyebabkan masalah yang sama.

COleControl::FireEvent

Mengaktifkan peristiwa yang ditentukan pengguna dari kontrol Anda dengan sejumlah argumen opsional, .

void AFX_CDECL FireEvent(
    DISPID dispid,
    BYTE* pbParams,
...);

Parameter

dispid
ID pengiriman peristiwa yang akan ditembakkan.

pbParams
Deskriptor untuk jenis parameter peristiwa.

Keterangan

Biasanya fungsi ini tidak boleh dipanggil secara langsung. Sebagai gantinya, Anda akan memanggil fungsi pemecahan peristiwa di bagian peta peristiwa dari deklarasi kelas kontrol Anda.

Argumen pbParams adalah daftar VTS_ yang dipisahkan spasi. Satu atau beberapa nilai ini, dipisahkan oleh spasi (bukan koma), menentukan daftar parameter fungsi. Kemungkinan nilainya adalah sebagai berikut:

Simbol Jenis parameter
VTS_COLOR OLE_COLOR
VTS_FONT IFontDisp*
VTS_HANDLE HWND
VTS_PICTURE IPictureDisp*
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_XSIZE_HIMETRIC

Catatan

Konstanta varian tambahan telah ditentukan untuk semua jenis varian, dengan pengecualian VTS_FONT dan VTS_PICTURE, yang menyediakan pointer ke konstanta data varian. Konstanta ini diberi nama menggunakan konvensi VTS_P<CONSTANT-NAME> . Misalnya, VTS_PCOLOR adalah penunjuk ke konstanta VTS_COLOR.

COleControl::FireKeyDown

Dipanggil oleh kerangka kerja saat tombol ditekan saat kontrol aktif UI.

void FireKeyDown(
    USHORT* pnChar,
    short nShiftState);

Parameter

pnChar
Penunjuk ke nilai kode kunci virtual dari tombol yang ditekan. Untuk daftar kode kunci virtual standar, lihat Winuser.h

nShiftState
Berisi kombinasi bendera berikut:

  • SHIFT_MASK Tombol SHIFT ditekan selama tindakan.

  • CTRL_MASK Tombol CTRL ditekan selama tindakan.

  • ALT_MASK Tombol ALT ditekan selama tindakan.

Keterangan

Jika peristiwa ini didefinisikan sebagai peristiwa kustom, Anda menentukan kapan peristiwa diaktifkan.

Agar penembakan otomatis peristiwa KeyDown terjadi, peta Peristiwa kontrol harus memiliki peristiwa KeyDown stok yang ditentukan.

COleControl::FireKeyPress

Dipanggil oleh kerangka kerja saat tombol ditekan dan dirilis saat kontrol kustom adalah UI Active dalam kontainer.

void FireKeyPress(USHORT* pnChar);

Parameter

pnChar
Penunjuk ke nilai karakter tombol yang ditekan.

Keterangan

Jika peristiwa ini didefinisikan sebagai peristiwa kustom, Anda menentukan kapan peristiwa diaktifkan.

Penerima acara dapat memodifikasi pnChar, misalnya, mengonversi semua karakter huruf kecil menjadi huruf besar. Jika Anda ingin memeriksa karakter yang dimodifikasi, ambil alih OnKeyPressEvent.

Agar penembakan otomatis peristiwa KeyPress terjadi, peta Peristiwa kontrol harus memiliki peristiwa KeyPress stok yang ditentukan.

COleControl::FireKeyUp

Dipanggil oleh kerangka kerja saat kunci dirilis saat kontrol kustom adalah UI Active dalam kontainer.

void FireKeyUp(
    USHORT* pnChar,
    short nShiftState);

Parameter

pnChar
Penunjuk ke nilai kode kunci virtual dari kunci yang dirilis. Untuk daftar kode kunci virtual standar, lihat Winuser.h

nShiftState
Berisi kombinasi bendera berikut:

  • SHIFT_MASK Tombol SHIFT ditekan selama tindakan.

  • CTRL_MASK Tombol CTRL ditekan selama tindakan.

  • ALT_MASK Tombol ALT ditekan selama tindakan.

Keterangan

Jika peristiwa ini didefinisikan sebagai peristiwa kustom, Anda menentukan kapan peristiwa diaktifkan.

Agar penembakan otomatis peristiwa KeyUp terjadi, peta Peristiwa kontrol harus memiliki peristiwa KeyUp stok yang ditentukan.

COleControl::FireMouseDown

Dipanggil oleh kerangka kerja ketika tombol mouse ditekan melalui kontrol kustom aktif.

void FireMouseDown(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parameter

nButton
Nilai numerik tombol mouse ditekan. Ini bisa berisi salah satu nilai berikut:

  • LEFT_BUTTON Tombol mouse kiri ditekan ke bawah.

  • MIDDLE_BUTTON Tombol mouse tengah ditekan ke bawah.

  • RIGHT_BUTTON Tombol tetikus kanan ditekan ke bawah.

nShiftState
Berisi kombinasi bendera berikut:

  • SHIFT_MASK Tombol SHIFT ditekan selama tindakan.

  • CTRL_MASK Tombol CTRL ditekan selama tindakan.

  • ALT_MASK Tombol ALT ditekan selama tindakan.

x
Koordinat x kursor saat tombol mouse ditekan ke bawah. Koordinat relatif terhadap sudut kiri atas jendela kontrol.

y
Koordinat y kursor ketika tombol mouse ditekan ke bawah. Koordinat relatif terhadap sudut kiri atas jendela kontrol.

Keterangan

Jika peristiwa ini didefinisikan sebagai peristiwa kustom, Anda menentukan kapan peristiwa diaktifkan.

Agar penembakan otomatis peristiwa MouseDown terjadi, peta Peristiwa kontrol harus memiliki aktivitas MouseDown stok yang ditentukan.

COleControl::FireMouseMove

Dipanggil oleh kerangka kerja saat kursor dipindahkan melalui kontrol kustom aktif.

void FireMouseMove(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parameter

nButton
Nilai numerik tombol mouse ditekan. Berisi kombinasi nilai berikut:

  • LEFT_BUTTON Tombol mouse kiri ditekan ke bawah selama tindakan.

  • MIDDLE_BUTTON Tombol mouse tengah ditekan selama tindakan.

  • RIGHT_BUTTON Tombol kanan mouse ditekan selama tindakan.

nShiftState
Berisi kombinasi bendera berikut:

  • SHIFT_MASK Tombol SHIFT ditekan selama tindakan.

  • CTRL_MASK Tombol CTRL ditekan selama tindakan.

  • ALT_MASK Tombol ALT ditekan selama tindakan.

x
Koordinat x kursor. Koordinat relatif terhadap sudut kiri atas jendela kontrol.

y
Koordinat y kursor. Koordinat relatif terhadap sudut kiri atas jendela kontrol.

Keterangan

Jika peristiwa ini didefinisikan sebagai peristiwa kustom, Anda menentukan kapan peristiwa diaktifkan.

Agar penembakan otomatis peristiwa MouseMove terjadi, peta Peristiwa kontrol harus memiliki aktivitas MouseMove stok yang ditentukan.

COleControl::FireMouseUp

Dipanggil oleh kerangka kerja ketika tombol mouse dilepaskan melalui kontrol kustom aktif.

void FireMouseUp(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parameter

nButton
Nilai numerik tombol mouse dilepaskan. Ini dapat memiliki salah satu nilai berikut:

  • LEFT_BUTTON Tombol kiri mouse dilepaskan.

  • MIDDLE_BUTTON Tombol mouse tengah dilepaskan.

  • RIGHT_BUTTON Tombol kanan mouse dilepaskan.

nShiftState
Berisi kombinasi bendera berikut:

  • SHIFT_MASK Tombol SHIFT ditekan selama tindakan.

  • CTRL_MASK Tombol CTRL ditekan selama tindakan.

  • ALT_MASK Tombol ALT ditekan selama tindakan.

x
Koordinat x kursor saat tombol mouse dilepaskan. Koordinat relatif terhadap sudut kiri atas jendela kontrol.

y
Koordinat y kursor ketika tombol mouse dilepaskan. Koordinat relatif terhadap sudut kiri atas jendela kontrol.

Keterangan

Jika peristiwa ini didefinisikan sebagai peristiwa kustom, Anda menentukan kapan peristiwa diaktifkan.

Agar penembakan otomatis peristiwa MouseUp terjadi, peta Peristiwa kontrol harus memiliki aktivitas MouseUp stok yang ditentukan.

COleControl::FireReadyStateChange

Mengaktifkan peristiwa dengan nilai saat ini dari status siap kontrol.

void FireReadyStateChange();

Keterangan

Status siap bisa menjadi salah satu nilai berikut:

Nama Deskripsi
READYSTATE_UNINITIALIZED Status inisialisasi default
READYSTATE_LOADING Kontrol sedang memuat propertinya
READYSTATE_LOADED Kontrol telah diinisialisasi
READYSTATE_INTERACTIVE Kontrol memiliki cukup data untuk menjadi interaktif tetapi tidak semua data asinkron belum dimuat
READYSTATE_COMPLETE Kontrol memiliki semua datanya

Gunakan GetReadyState untuk menentukan kesiapan kontrol saat ini.

InternalSetReadyState mengubah status siap ke nilai yang disediakan, lalu memanggil FireReadyStateChange.

COleControl::GetActivationPolicy

Mengubah perilaku aktivasi default kontrol yang mendukung IPointerInactive antarmuka.

virtual DWORD GetActivationPolicy();

Tampilkan Nilai

Kombinasi bendera dari enumerasi POINTERINACTIVE. Bendera yang mungkin adalah:

Nama Deskripsi
POINTERINACTIVE_ACTIVATEONENTRY Objek harus diaktifkan di tempat ketika mouse memasukinya selama operasi pemindahan mouse.
POINTERINACTIVE_DEACTIVATEONLEAVE Objek harus dinonaktifkan ketika mouse meninggalkan objek selama operasi pemindahan mouse.
POINTERINACTIVE_ACTIVATEONDRAG Objek harus diaktifkan di tempat ketika mouse diseret di atasnya selama operasi seret dan letakkan.

Keterangan

IPointerInactive Ketika antarmuka diaktifkan, kontainer akan mendelegasikan WM_SETCURSOR dan WM_MOUSEMOVE pesan ke dalamnya. COleControlImplementasi antarmuka ini akan mengirimkan pesan ini melalui peta pesan kontrol Anda, setelah menyesuaikan koordinat mouse dengan tepat.

Setiap kali kontainer menerima pesan WM_SETCURSOR atau WM_MOUSEMOVE dengan penunjuk mouse di atas objek tidak aktif yang mendukung IPointerInactive, kontainer harus memanggil GetActivationPolicy antarmuka dan mengembalikan bendera dari enumerasi POINTERINACTIVE.

Anda dapat memproses pesan ini seperti pesan jendela biasa, dengan menambahkan entri yang sesuai ke peta pesan. Di handler Anda, hindari menggunakan m_hWnd variabel anggota (atau fungsi anggota apa pun yang menggunakannya) tanpa terlebih dahulu memeriksa bahwa nilainya non-NULL.

Objek apa pun yang dimaksudkan untuk melakukan lebih dari mengatur kursor mouse dan/atau menembakkan peristiwa pemindahan mouse, seperti memberikan umpan balik visual khusus, harus mengembalikan bendera POINTERINACTIVE_ACTIVATEONENTRY dan menggambar umpan balik hanya saat aktif. Jika objek mengembalikan bendera ini, kontainer harus segera mengaktifkannya di tempat dan kemudian meneruskannya pesan yang sama yang memicu panggilan ke GetActivationPolicy.

Jika bendera POINTERINACTIVE_ACTIVATEONENTRY dan POINTERINACTIVE_DEACTIVATEONLEAVE dikembalikan, maka objek hanya akan diaktifkan ketika mouse berada di atas objek. Jika hanya bendera POINTERINACTIVE_ACTIVATEONENTRY yang dikembalikan, maka objek hanya akan diaktifkan sekali ketika mouse pertama kali memasuki objek.

Anda mungkin juga ingin kontrol yang tidak aktif menjadi target operasi seret dan letakkan OLE. Ini memerlukan pengaktifan kontrol saat pengguna menyeret objek di atasnya, sehingga jendela kontrol dapat didaftarkan sebagai target penurunan. Untuk menyebabkan aktivasi terjadi selama seret, kembalikan bendera POINTERINACTIVE_ACTIVATEONDRAG:

DWORD CMyAxCtrl::GetActivationPolicy()
{
   return POINTERINACTIVE_ACTIVATEONDRAG;
}

Informasi yang dikomunikasikan oleh GetActivationPolicy tidak boleh di-cache oleh kontainer. Sebagai gantinya, metode ini harus dipanggil setiap kali mouse memasuki objek yang tidak aktif.

Jika objek tidak aktif tidak meminta untuk diaktifkan di tempat ketika mouse memasukinya, kontainernya harus mengirimkan pesan WM_SETCURSOR berikutnya ke objek ini dengan memanggil OnInactiveSetCursor selama penunjuk mouse tetap berada di atas objek.

Mengaktifkan IPointerInactive antarmuka biasanya berarti Anda ingin kontrol mampu memproses pesan mouse setiap saat. Untuk mendapatkan perilaku ini dalam kontainer yang tidak mendukung IPointerInactive antarmuka, Anda harus mengaktifkan kontrol Anda selalu ketika terlihat, yang berarti kontrol harus memiliki bendera OLEMISC_ACTIVATEWHENVISIBLE di antara bendera lain-lain. Namun, untuk mencegah bendera ini berlaku dalam kontainer yang mendukung IPointerInactive, Anda juga dapat menentukan bendera OLEMISC_IGNOREACTIVATEWHENVISIBLE:

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

COleControl::GetAmbientProperty

Mendapatkan nilai properti sekitar kontainer.

BOOL GetAmbientProperty(
    DISPID dispid,
    VARTYPE vtProp,
    void* pvProp);

Parameter

dwDispid
ID pengiriman properti sekitar yang diinginkan.

vtProp
Tag jenis varian yang menentukan jenis nilai yang akan dikembalikan dalam pvProp.

pvProp
Penunjuk ke alamat variabel yang akan menerima nilai properti atau mengembalikan nilai. Jenis aktual penunjuk ini harus cocok dengan jenis yang ditentukan oleh vtProp.

vtProp Jenis pvProp
VT_BOOL BOOL*
VT_BSTR CString*
VT_I2 short*
VT_I4 long*
VT_R4 float*
VT_R8 double*
VT_CY CY*
VT_COLOR OLE_COLOR*
VT_DISPATCH LPDISPATCH*
VT_FONT LPFONTDISP*

Tampilkan Nilai

Bukan nol jika properti sekitar didukung; jika tidak, 0.

Keterangan

Jika Anda menggunakan GetAmbientProperty untuk mengambil properti DisplayName dan ScaleUnits sekitar, atur vtProp ke VT_BSTR dan pvProp ke CString*. Jika Anda mengambil properti Font sekitar, atur vtProp ke VT_FONT dan pvProp ke LPFONTDISP*.

Perhatikan bahwa fungsi telah disediakan untuk properti sekitar umum, seperti AmbientBackColor dan AmbientFont.

COleControl::GetAppearance

Mengimplementasikan fungsi Get dari properti Tampilan saham kontrol Anda.

short GetAppearance ();

Tampilkan Nilai

Nilai pengembalian menentukan pengaturan tampilan saat ini sebagai short nilai (VT_I2), jika berhasil. Nilai ini nol jika tampilan kontrol datar dan 1 jika tampilan kontrol adalah 3D.

COleControl::GetBackColor

Mengimplementasikan fungsi Get dari properti BackColor saham kontrol Anda.

OLE_COLOR GetBackColor();

Tampilkan Nilai

Nilai pengembalian menentukan warna latar belakang saat ini sebagai nilai OLE_COLOR, jika berhasil. Nilai ini dapat diterjemahkan ke nilai COLORREF dengan panggilan ke TranslateColor.

COleControl::GetBorderStyle

Menerapkan fungsi Dapatkan properti BorderStyle saham kontrol Anda.

short GetBorderStyle();

Tampilkan Nilai

1 jika kontrol memiliki batas normal; 0 jika kontrol tidak memiliki batas.

COleControl::GetCapture

Menentukan apakah COleControl objek memiliki tangkapan mouse.

CWnd* GetCapture();

Tampilkan Nilai

Jika kontrol diaktifkan dan tanpa jendela, mengembalikan this jika kontrol saat ini memiliki tangkapan mouse (seperti yang ditentukan oleh kontainer kontrol), atau NULL jika tidak memiliki tangkapan.

Jika tidak, mengembalikan CWnd objek yang memiliki tangkapan mouse (sama dengan CWnd::GetCapture).

Keterangan

Kontrol tanpa jendela yang diaktifkan menerima tangkapan mouse saat SetCapture dipanggil.

COleControl::GetClassID

Dipanggil oleh kerangka kerja untuk mengambil ID kelas OLE kontrol.

virtual HRESULT GetClassID(LPCLSID pclsid) = 0;

Parameter

pclsid
Penunjuk ke lokasi ID kelas.

Tampilkan Nilai

Bukan nol jika panggilan tidak berhasil; jika tidak, 0.

Keterangan

Biasanya diimplementasikan oleh IMPLEMENT_OLECREATE_EX.

COleControl::GetClientOffset

Mengambil perbedaan antara sudut kiri atas area persegi panjang kontrol dan sudut kiri atas area kliennya.

virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;

Parameter

pdxOffset
Penunjuk ke offset horizontal area klien kontrol OLE.

pdyOffset
Penunjuk ke offset vertikal area klien kontrol OLE.

Keterangan

Kontrol OLE memiliki area persegi panjang dalam kontainernya. Area klien kontrol adalah area kontrol yang tidak termasuk batas dan bilah gulir. Offset yang diambil oleh GetClientOffset adalah perbedaan antara sudut kiri atas area persegi panjang kontrol dan sudut kiri atas area kliennya. Jika kontrol Anda memiliki elemen non-klien selain batas standar dan bilah gulir, ambil alih fungsi anggota ini untuk menentukan offset.

COleControl::GetClientRect

Mengambil ukuran area klien kontrol.

virtual void GetClientRect(LPRECT lpRect) const;

Parameter

lpRect
Penunjuk ke struktur yang RECT berisi dimensi area klien kontrol tanpa jendela; yaitu, ukuran kontrol dikurangi batas jendela, bingkai, bilah gulir, dan sebagainya. Parameter lpRect menunjukkan ukuran persegi panjang klien kontrol, bukan posisinya.

COleControl::GetClientSite

Mengkueri objek untuk penunjuk ke situs kliennya saat ini dalam kontainernya.

LPOLECLIENTSITE GetClientSite();

Tampilkan Nilai

Penunjuk ke situs klien kontrol saat ini dalam kontainernya.

Keterangan

Pointer yang dikembalikan menunjuk ke instans IOleClientSite. Antarmuka IOleClientSite , yang diimplementasikan oleh kontainer, adalah tampilan objek dari konteksnya: di mana ia berlabuh dalam dokumen, di mana ia mendapatkan penyimpanan, antarmuka pengguna, dan sumber daya lainnya.

COleControl::GetControlFlags

Mengambil pengaturan bendera kontrol.

virtual DWORD GetControlFlags();

Tampilkan Nilai

Kombinasi ORed dari bendera dalam enumerasi ControlFlags:

enum ControlFlags {
    fastBeginPaint = 0x0001,
    clipPaintDC = 0x0002,
    pointerInactive = 0x0004,
    noFlickerActivate = 0x0008,
    windowlessActivate = 0x0010,
    canOptimizeDraw = 0x0020,
    };

Keterangan

Secara default, GetControlFlags mengembalikan fastBeginPaint | clipPaintDC.

Nama Deskripsi
fastBeginPaint Jika diatur, menggunakan fungsi cat mulai yang disesuaikan untuk kontrol OLE alih-alih API BeginPaint (diatur secara default).
clipPaintDC Jika tidak diatur, menonaktifkan panggilan yang IntersectClipRect akan dilakukan dan COleControl mendapatkan keuntungan kecepatan kecil. Jika Anda menggunakan aktivasi tanpa jendela, bendera tidak berpengaruh.
pointerInactive Jika diatur, berikan interaksi mouse saat kontrol Anda tidak aktif dengan mengaktifkan COleControlimplementasi IPointerInactive antarmuka, yang dinonaktifkan secara default.
noFlickerActivate Jika diatur, hilangkan operasi gambar tambahan dan kedipan visual yang menyertainya. Gunakan saat kontrol Anda menggambar dirinya sendiri secara identik dalam status tidak aktif dan aktif. Jika Anda menggunakan aktivasi tanpa jendela, bendera tidak berpengaruh.
windowlessActivate Jika diatur, menunjukkan kontrol Anda menggunakan aktivasi tanpa jendela.
canOptimizeDraw Jika diatur, menunjukkan bahwa kontrol akan melakukan gambar yang dioptimalkan, jika kontainer mendukungnya.

Untuk informasi selengkapnya tentang GetControlFlags dan pengoptimalan kontrol OLE lainnya, lihat Kontrol ActiveX: Pengoptimalan.

COleControl::GetControlSize

Mengambil ukuran jendela kontrol OLE.

void GetControlSize(
    int* pcx,
    int* pcy);

Parameter

pcx
Menentukan lebar kontrol dalam piksel.

pcy
Menentukan tinggi kontrol dalam piksel.

Keterangan

Perhatikan bahwa semua koordinat untuk jendela kontrol relatif terhadap sudut kiri atas kontrol.

COleControl::GetDC

Menyediakan objek tanpa jendela untuk mendapatkan konteks perangkat layar (atau kompatibel) dari kontainernya.

CDC* GetDC(
    LPCRECT lprcRect = NULL,
    DWORD dwFlags = OLEDC_PAINTBKGND);

Parameter

lprcRect
Penunjuk ke persegi panjang kontrol tanpa jendela ingin digambar ulang, dalam koordinat klien kontrol. NULL berarti tingkat objek penuh.

dwFlags
Atribut gambar konteks perangkat. Pilihannya adalah:

  • OLEDC_NODRAW Menunjukkan bahwa objek tidak akan menggunakan konteks perangkat untuk melakukan gambar apa pun tetapi hanya untuk mendapatkan informasi tentang perangkat tampilan. Kontainer hanya boleh melewati DC jendela tanpa pemrosesan lebih lanjut.

  • OLEDC_PAINTBKGND Meminta agar kontainer melukis latar belakang sebelum mengembalikan DC. Objek harus menggunakan bendera ini jika meminta DC untuk menggambar ulang area dengan latar belakang transparan.

  • OLEDC_OFFSCREEN Menginformasikan kontainer bahwa objek ingin dirender ke bitmap di luar layar yang kemudian harus disalin ke layar. Objek harus menggunakan bendera ini ketika operasi menggambar yang akan dilakukannya menghasilkan banyak kedipan. Kontainer bebas untuk mematuhi permintaan ini atau tidak. Namun, jika bendera ini tidak diatur, kontainer harus menyerahkan kembali DC di layar. Ini memungkinkan objek untuk melakukan operasi layar langsung seperti menampilkan pilihan (melalui operasi XOR ).

Tampilkan Nilai

Penunjuk ke konteks perangkat tampilan untuk area klien kontainer CWnd jika berhasil; jika tidak, nilai yang dikembalikan adalah NULL. Konteks perangkat tampilan dapat digunakan dalam fungsi GDI berikutnya untuk menggambar di area klien jendela kontainer.

Keterangan

Fungsi anggota ReleaseDC harus dipanggil untuk merilis konteks setelah pengecatan. Saat memanggil GetDC, objek melewati persegi panjang yang ingin mereka gambar dalam koordinat klien mereka sendiri. GetDC menerjemahkannya ke koordinat area klien kontainer. Objek tidak boleh meminta persegi panjang gambar yang diinginkan lebih besar dari persegi panjang area kliennya sendiri, yang ukurannya dapat diambil dengan GetClientRect. Ini mencegah objek menggambar secara tidak sengaja di mana objek tersebut tidak seharusnya.

COleControl::GetEnabled

Mengimplementasikan fungsi Get dari properti Aktifkan stok kontrol Anda.

BOOL GetEnabled();

Tampilkan Nilai

Bukan nol jika kontrol diaktifkan; jika tidak, 0.

COleControl::GetExtendedControl

Mendapatkan penunjuk ke objek yang dikelola oleh kontainer yang mewakili kontrol dengan sekumpulan properti yang diperluas.

LPDISPATCH GetExtendedControl();

Tampilkan Nilai

Penunjuk ke objek kontrol kontainer yang diperluas. Jika tidak ada objek yang tersedia, nilainya adalah NULL.

Objek ini dapat dimanipulasi melalui antarmukanya IDispatch . Anda juga dapat menggunakan QueryInterface untuk mendapatkan antarmuka lain yang tersedia yang disediakan oleh objek. Namun, objek tidak diperlukan untuk mendukung serangkaian antarmuka tertentu. Perhatikan bahwa mengandalkan fitur spesifik objek kontrol kontainer yang diperluas membatasi portabilitas kontrol Anda ke kontainer sewenang-wenang lainnya.

Keterangan

Fungsi yang memanggil fungsi ini bertanggung jawab untuk melepaskan pointer setelah selesai dengan objek. Perhatikan bahwa kontainer tidak diperlukan untuk mendukung objek ini.

COleControl::GetFocus

Menentukan apakah COleControl objek memiliki fokus.

CWnd* GetFocus();

Tampilkan Nilai

Jika kontrol diaktifkan dan tanpa jendela, mengembalikan this jika kontrol saat ini memiliki fokus keyboard (seperti yang ditentukan oleh kontainer kontrol), atau NULL jika tidak memiliki fokus.

Jika tidak, mengembalikan CWnd objek yang memiliki fokus (sama dengan CWnd::GetFocus).

Keterangan

Kontrol tanpa jendela yang diaktifkan menerima fokus saat SetFocus dipanggil.

COleControl::GetFont

Mengimplementasikan fungsi Get dari properti Font stok.

LPFONTDISP GetFont();

Tampilkan Nilai

Penunjuk ke antarmuka pengiriman font properti Font saham kontrol.

Keterangan

Perhatikan bahwa pemanggil harus melepaskan objek setelah selesai. Dalam implementasi kontrol, gunakan InternalGetFont untuk mengakses objek Font saham kontrol. Untuk informasi selengkapnya tentang menggunakan font di kontrol Anda, lihat artikel Kontrol ActiveX: Menggunakan Font dalam Kontrol ActiveX.

COleControl::GetFontTextMetrics

Mengukur metrik teks untuk objek apa pun CFontHolder yang dimiliki oleh kontrol.

void GetFontTextMetrics(
    LPTEXTMETRIC lptm,
    CFontHolder& fontHolder);

Parameter

lptm
Penunjuk ke struktur TEXTMETRIC .

FontHolder
Referensi ke objek CFontHolder .

Keterangan

Font seperti itu dapat dipilih dengan fungsi COleControl::SelectFontObject . GetFontTextMetrics akan menginisialisasi struktur yang TEXTMETRIC diacu oleh lptm dengan informasi metrik yang valid tentang fontHolderfont jika berhasil, atau mengisi struktur dengan nol jika tidak berhasil. Anda harus menggunakan fungsi ini alih-alih GetTextMetrics saat melukis kontrol Anda karena kontrol, seperti objek OLE yang disematkan, mungkin diperlukan untuk merender diri mereka ke dalam metafile.

Struktur TEXTMETRIC untuk font default disegarkan saat fungsi SelectFontObject dipanggil. Anda harus memanggil GetFontTextMetrics hanya setelah memilih properti Font stok untuk memastikan informasi yang disediakannya valid.

COleControl::GetForeColor

Menerapkan fungsi Get dari properti ForeColor saham.

OLE_COLOR GetForeColor();

Tampilkan Nilai

Nilai pengembalian menentukan warna latar depan saat ini sebagai nilai OLE_COLOR, jika berhasil. Nilai ini dapat diterjemahkan ke nilai COLORREF dengan panggilan ke TranslateColor.

COleControl::GetHwnd

Mengimplementasikan fungsi Get dari properti hWnd stok.

OLE_HANDLE GetHwnd();

Tampilkan Nilai

Handel jendela kontrol OLE, jika ada; jika tidak, NULL.

COleControl::GetMessageString

Dipanggil oleh kerangka kerja untuk mendapatkan string singkat yang menjelaskan tujuan item menu yang diidentifikasi oleh nID.

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

Parameter

Nid
ID item menu.

rMessage
Referensi ke objek CString tempat string akan dikembalikan.

Keterangan

Ini dapat digunakan untuk mendapatkan pesan untuk ditampilkan di bilah status saat item menu disorot. Implementasi default mencoba memuat sumber daya string yang diidentifikasi oleh nID.

COleControl::GetNotSupported

Mencegah akses ke nilai properti kontrol oleh pengguna.

void GetNotSupported();

Keterangan

Panggil fungsi ini sebagai pengganti fungsi Dapatkan properti apa pun di mana pengambilan properti oleh pengguna kontrol tidak didukung. Salah satu contohnya adalah properti yang hanya ditulis.

COleControl::GetReadyState

Mengembalikan status kesiapan kontrol.

long GetReadyState();

Tampilkan Nilai

Status kesiapan kontrol, salah satu nilai berikut:

Nama Deskripsi
READYSTATE_UNINITIALIZED Status inisialisasi default
READYSTATE_LOADING Kontrol sedang memuat propertinya
READYSTATE_LOADED Kontrol telah diinisialisasi
READYSTATE_INTERACTIVE Kontrol memiliki cukup data untuk menjadi interaktif tetapi tidak semua data asinkron belum dimuat
READYSTATE_COMPLETE Kontrol memiliki semua datanya

Keterangan

Sebagian besar kontrol sederhana tidak perlu membedakan antara LOADED dan INTERACTIVE. Namun, kontrol yang mendukung properti jalur data mungkin tidak siap untuk interaktif sampai setidaknya beberapa data diterima secara asinkron. Kontrol harus mencoba menjadi interaktif sesegera mungkin.

COleControl::GetRectInContainer

Mendapatkan koordinat persegi panjang kontrol relatif terhadap kontainer, yang dinyatakan dalam unit perangkat.

BOOL GetRectInContainer(LPRECT lpRect);

Parameter

lpRect
Penunjuk ke struktur persegi panjang tempat koordinat kontrol akan disalin.

Tampilkan Nilai

Nonzero jika kontrol aktif di tempat; jika tidak, 0.

Keterangan

Persegi panjang hanya valid jika kontrol aktif di tempat.

COleControl::GetStockTextMetrics

Mengukur metrik teks untuk properti Font saham kontrol, yang dapat dipilih dengan fungsi SelectStockFont .

void GetStockTextMetrics(LPTEXTMETRIC lptm);

Parameter

lptm
Penunjuk ke struktur TEXTMETRIC .

Keterangan

Fungsi ini GetStockTextMetrics akan menginisialisasi struktur yang TEXTMETRIC diacu oleh lptm dengan informasi metrik yang valid jika berhasil, atau mengisi struktur dengan nol jika tidak berhasil. Gunakan fungsi ini alih-alih GetTextMetrics saat melukis kontrol Anda karena kontrol, seperti objek OLE yang disematkan, mungkin diperlukan untuk merender diri mereka ke dalam metafile.

Struktur TEXTMETRIC untuk font default disegarkan ketika SelectStockFont fungsi dipanggil. Anda harus memanggil fungsi ini hanya setelah memilih font stok untuk memastikan informasi yang disediakannya valid.

COleControl::GetText

Mengimplementasikan fungsi Get dari properti Teks atau Keterangan stok.

BSTR GetText();

Tampilkan Nilai

Nilai string teks kontrol saat ini atau string panjang nol jika tidak ada string yang ada.

Catatan

Untuk informasi selengkapnya tentang jenis data BSTR, lihat Jenis Data di bagian Makro dan Global.

Keterangan

Perhatikan bahwa pemanggil fungsi ini harus memanggil SysFreeString string yang dikembalikan untuk membebaskan sumber daya. Dalam implementasi kontrol, gunakan InternalGetText untuk mengakses properti Teks atau Keterangan saham kontrol.

COleControl::GetWindowlessDropTarget

Ambil alih GetWindowlessDropTarget saat Anda ingin kontrol tanpa jendela menjadi target operasi seret dan letakkan OLE.

virtual IDropTarget* GetWindowlessDropTarget();

Tampilkan Nilai

Arahkan ke antarmuka objek IDropTarget . Karena tidak memiliki jendela, objek tanpa jendela tidak dapat mendaftarkan IDropTarget antarmuka. Namun, untuk berpartisipasi dalam seret dan letakkan, objek tanpa jendela masih dapat mengimplementasikan antarmuka dan mengembalikannya di GetWindowlessDropTarget.

Keterangan

Biasanya, ini akan mengharuskan jendela kontrol didaftarkan sebagai target penurunan. Tetapi karena kontrol tidak memiliki jendela sendiri, kontainer akan menggunakan jendelanya sendiri sebagai target penurunan. Kontrol hanya perlu menyediakan implementasi IDropTarget antarmuka tempat kontainer dapat mendelegasikan panggilan pada waktu yang tepat. Contohnya:

IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
   m_xDropTarget.AddRef();
   return &m_xDropTarget;
}

COleControl::InitializeIIDs

Menginformasikan kelas dasar IID yang akan digunakan kontrol.

void InitializeIIDs(
    const IID* piidPrimary,
    const IID* piidEvents);

Parameter

piidPrimary
Arahkan ke ID antarmuka antarmuka pengiriman utama kontrol.

piidEvents
Arahkan ke ID antarmuka antarmuka peristiwa kontrol.

Keterangan

Panggil fungsi ini di konstruktor kontrol untuk menginformasikan kelas dasar ID antarmuka yang akan digunakan kontrol Anda.

COleControl::InternalGetFont

Mengakses properti Font stok kontrol Anda

CFontHolder& InternalGetFont();

Tampilkan Nilai

Referensi ke objek CFontHolder yang berisi objek Font stok.

COleControl::InternalGetText

Mengakses properti Teks atau Keterangan stok kontrol Anda.

const CString& InternalGetText();

Tampilkan Nilai

Referensi ke string teks kontrol.

COleControl::InternalSetReadyState

Mengatur status kesiapan kontrol.

void InternalSetReadyState(long lNewReadyState);

Parameter

lNewReadyState
Status kesiapan yang akan diatur untuk kontrol, salah satu nilai berikut:

Nama Deskripsi
READYSTATE_UNINITIALIZED Status inisialisasi default
READYSTATE_LOADING Kontrol sedang memuat propertinya
READYSTATE_LOADED Kontrol telah diinisialisasi
READYSTATE_INTERACTIVE Kontrol memiliki cukup data untuk menjadi interaktif tetapi tidak semua data asinkron belum dimuat
READYSTATE_COMPLETE Kontrol memiliki semua datanya

Keterangan

Sebagian besar kontrol sederhana tidak perlu membedakan antara LOADED dan INTERACTIVE. Namun, kontrol yang mendukung properti jalur data mungkin tidak siap untuk interaktif sampai setidaknya beberapa data diterima secara asinkron. Kontrol harus mencoba menjadi interaktif sesegera mungkin.

COleControl::InvalidateControl

Memaksa kontrol untuk menggambar ulang dirinya sendiri.

void InvalidateControl(
    LPCRECT lpRect = NULL,
    BOOL bErase = TRUE);

Parameter

lpRect
Penunjuk ke wilayah kontrol yang akan dibatalkan.

bErase
Menentukan apakah latar belakang dalam wilayah pembaruan akan dihapus saat wilayah pembaruan diproses.

Keterangan

Jika lpRect memiliki nilai NULL, seluruh kontrol akan digambar ulang. Jika lpRect bukan NULL, ini menunjukkan bagian dari persegi panjang kontrol yang akan dibatalkan. Dalam kasus di mana kontrol tidak memiliki jendela, atau saat ini tidak aktif, persegi panjang diabaikan, dan panggilan dilakukan ke fungsi anggota IAdviseSink::OnViewChange situs klien. Gunakan fungsi ini alih-alih CWnd::InvalidateRect atau InvalidateRect.

COleControl::InvalidateRgn

Membatalkan area klien jendela kontainer dalam wilayah tertentu.

void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);

Parameter

pRgn
Penunjuk ke objek CRgn yang mengidentifikasi wilayah tampilan objek OLE untuk membatalkan, dalam koordinat klien dari jendela yang berisi. Jika parameter ini NULL, sejauh ini adalah seluruh objek.

bErase
Menentukan apakah latar belakang dalam wilayah yang tidak valid akan dihapus. Jika TRUE, latar belakang akan dihapus. Jika FALSE, latar belakang tetap tidak berubah.

Keterangan

Ini dapat digunakan untuk menggambar ulang kontrol tanpa jendela dalam kontainer. Wilayah yang tidak valid, bersama dengan semua area lain di wilayah pembaruan, ditandai untuk pengecatan saat pesan WM_PAINT berikutnya dikirim.

Jika bErase TRUE untuk bagian mana pun dari wilayah pembaruan, latar belakang di seluruh wilayah, bukan hanya di bagian yang diberikan, dihapus.

COleControl::IsConvertingVBX

Memungkinkan pemuatan khusus kontrol OLE.

BOOL IsConvertingVBX();

Tampilkan Nilai

Bukan nol jika kontrol sedang dikonversi; jika tidak, 0.

Keterangan

Saat mengonversi formulir yang menggunakan kontrol VBX ke yang menggunakan kontrol OLE, kode pemuatan khusus untuk kontrol OLE mungkin diperlukan. Misalnya, jika Anda memuat instans kontrol OLE, Anda mungkin memiliki panggilan untuk PX_Font di DoPropExchange:

PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);

Namun, kontrol VBX tidak memiliki objek Font; setiap properti font disimpan satu per satu. Dalam hal ini, Anda akan menggunakan IsConvertingVBX untuk membedakan antara dua kasus ini:

if (!IsConvertingVBX())
{
   PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
   PX_String(pPX, _T("FontName"), tempString, DefaultName);
   m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
   PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
   m_pMyFont->m_pFont->put_Underline(tempBool);
}

Kasus lain adalah jika kontrol VBX Anda menyimpan data biner milik Anda (dalam penanganan pesan VBM_SAVEPROPERTY), dan kontrol OLE Anda menyimpan data binernya dalam format yang berbeda. Jika Anda ingin kontrol OLE Kompatibel mundur dengan kontrol VBX, Anda dapat membaca format lama dan baru menggunakan fungsi dengan IsConvertingVBX membedakan apakah kontrol VBX atau kontrol OLE sedang dimuat.

Dalam fungsi kontrol DoPropExchange , Anda dapat memeriksa kondisi ini dan jika benar, jalankan kode beban khusus untuk konversi ini (seperti contoh sebelumnya). Jika kontrol tidak dikonversi, Anda dapat menjalankan kode beban normal. Kemampuan ini hanya berlaku untuk kontrol yang dikonversi dari rekan VBX.

COleControl::IsInvokeAllowed

Mengaktifkan pemanggilan metode otomatisasi.

BOOL IsInvokeAllowed(DISPID dispid);

Tampilkan Nilai

Bukan nol jika kontrol telah diinisialisasi; jika tidak, 0.

Keterangan

Implementasi IDispatch::Invoke panggilan IsInvokeAllowed kerangka kerja untuk menentukan apakah fungsi tertentu (diidentifikasi oleh dispid) dapat dipanggil. Perilaku default untuk kontrol OLE adalah memungkinkan metode otomatisasi dipanggil hanya jika kontrol telah diinisialisasi; namun, IsInvokeAllowed adalah fungsi virtual dan dapat ditimpa jika perlu (misalnya, ketika kontrol digunakan sebagai server otomatisasi).

COleControl::IsModified

Menentukan apakah status kontrol telah dimodifikasi.

BOOL IsModified();

Tampilkan Nilai

Bukan nol jika status kontrol telah dimodifikasi sejak terakhir disimpan; jika tidak, 0.

Keterangan

Status kontrol dimodifikasi saat properti mengubah nilai.

COleControl::IsOptimizedDraw

Menentukan apakah kontainer mendukung gambar yang dioptimalkan untuk operasi menggambar saat ini.

BOOL IsOptimizedDraw();

Tampilkan Nilai

TRUE jika kontainer mendukung gambar yang dioptimalkan untuk operasi menggambar saat ini; jika tidak FALSE.

Keterangan

Jika gambar yang dioptimalkan didukung, kontrol tidak perlu memilih objek lama (pena, kuas, font, dll.) ke dalam konteks perangkat saat menggambar selesai.

COleControl::IsSubclassedControl

Dipanggil oleh kerangka kerja untuk menentukan apakah kontrol mensubkelas kontrol Windows.

virtual BOOL IsSubclassedControl();

Tampilkan Nilai

Bukan nol jika kontrol disubkelas; jika tidak, 0.

Keterangan

Anda harus mengambil alih fungsi ini dan mengembalikan TRUE jika kontrol OLE Anda mensubkelas kontrol Windows.

COleControl::Load

Mengatur ulang data sebelumnya yang dimuat secara asinkron dan memulai pemuatan baru properti asinkron kontrol.

void Load(LPCTSTR strNewPath, CDataPathProperty& prop);

Parameter

strNewPath
Penunjuk ke string yang berisi jalur yang mereferensikan lokasi absolut properti kontrol asinkron.

menopang
Objek CDataPathProperty yang mengimplementasikan properti kontrol asinkron.

COleControl::LockInPlaceActive

Mencegah kontainer menonaktifkan kontrol Anda.

BOOL LockInPlaceActive(BOOL bLock);

Parameter

halangi
TRUE jika status aktif kontrol di tempat akan dikunci; FALSE jika akan dibuka kuncinya.

Tampilkan Nilai

Bukan nol jika kunci berhasil; jika tidak, 0.

Keterangan

Perhatikan bahwa setiap penguncian kontrol harus dipasangkan dengan membuka kunci kontrol setelah selesai. Anda hanya boleh mengunci kontrol untuk waktu singkat, seperti saat menembakkan peristiwa.

COleControl::OnAmbientPropertyChange

Dipanggil oleh kerangka kerja ketika properti sekitar kontainer telah mengubah nilai.

virtual void OnAmbientPropertyChange(DISPID dispid);

Parameter

dispID
ID pengiriman properti sekitar yang berubah, atau DISPID_UNKNOWN jika beberapa properti telah berubah.

COleControl::OnAppearanceChanged

Dipanggil oleh kerangka kerja ketika nilai properti Tampilan saham telah berubah.

virtual void OnAppearanceChanged ();

Keterangan

Ambil alih fungsi ini jika Anda ingin pemberitahuan setelah properti ini berubah. Implementasi default memanggil InvalidateControl.

COleControl::OnBackColorChanged

Dipanggil oleh kerangka kerja ketika nilai properti BackColor stok telah berubah.

virtual void OnBackColorChanged();

Keterangan

Ambil alih fungsi ini jika Anda ingin pemberitahuan setelah properti ini berubah. Implementasi default memanggil InvalidateControl.

COleControl::OnBorderStyleChanged

Dipanggil oleh kerangka kerja ketika nilai properti BorderStyle saham telah berubah.

virtual void OnBorderStyleChanged();

Keterangan

Implementasi default memanggil InvalidateControl.

Ambil alih fungsi ini jika Anda ingin pemberitahuan setelah properti ini berubah.

COleControl::OnClick

Dipanggil oleh kerangka kerja ketika tombol mouse telah diklik atau metode stok DoClick telah dipanggil.

virtual void OnClick(USHORT iButton);

Parameter

iButton
Indeks tombol mouse. Bisa memiliki salah satu nilai berikut:

  • LEFT_BUTTON Tombol kiri mouse diklik.

  • MIDDLE_BUTTON Tombol mouse tengah diklik.

  • RIGHT_BUTTON Tombol kanan mouse diklik.

Keterangan

Implementasi default memanggil COleControl::FireClick.

Ambil alih fungsi anggota ini untuk mengubah atau memperluas penanganan default.

COleControl::OnClose

Dipanggil oleh kerangka kerja ketika kontainer telah memanggil fungsi kontrol IOleControl::Close .

virtual void OnClose(DWORD dwSaveOption);

Parameter

dwSaveOption
Bendera yang menunjukkan apakah objek harus disimpan sebelum memuat. Nilai yang valid adalah:

  • OLECLOSE_SAVEIFDIRTY

  • OLECLOSE_NOSAVE

  • OLECLOSE_PROMPTSAVE

Keterangan

Secara default, OnClose menyimpan objek kontrol jika telah dimodifikasi dan dwSaveOption OLECLOSE_SAVEIFDIRTY atau OLECLOSE_PROMPTSAVE.

COleControl::OnDoVerb

Dipanggil oleh kerangka kerja ketika kontainer memanggil IOleObject::DoVerb fungsi anggota.

virtual BOOL OnDoVerb(
    LONG iVerb,
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parameter

iVerb
Indeks kata kerja kontrol yang akan dipanggil.

lpMsg
Penunjuk ke pesan Windows yang menyebabkan kata kerja dipanggil.

hWndParent
Handel ke jendela induk kontrol. Jika eksekusi kata kerja membuat jendela (atau jendela), hWndParent harus digunakan sebagai induk.

lpRect
Penunjuk ke struktur RECT tempat koordinat kontrol, relatif terhadap kontainer, akan disalin.

Tampilkan Nilai

Bukan nol jika panggilan berhasil; jika tidak, 0.

Keterangan

Implementasi default menggunakan entri peta pesan ON_OLEVERB dan ON_STDOLEVERB untuk menentukan fungsi yang tepat untuk dipanggil.

Ambil alih fungsi ini untuk mengubah penanganan kata kerja default.

COleControl::OnDraw

Dipanggil oleh kerangka kerja untuk menggambar kontrol OLE dalam persegi panjang pembatas yang ditentukan menggunakan konteks perangkat yang ditentukan.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rcBounds,
    const CRect& rcInvalid);

Parameter

pDC
Konteks perangkat tempat gambar terjadi.

rcBounds
Area persegi panjang kontrol, termasuk batas.

rcInvalid
Area persegi panjang kontrol yang tidak valid.

Keterangan

OnDraw biasanya dipanggil untuk tampilan layar, melewati konteks perangkat layar sebagai pDC. Parameter rcBounds mengidentifikasi persegi panjang dalam konteks perangkat target (relatif terhadap mode pemetaannya saat ini). Parameter rcInvalid adalah persegi panjang aktual yang tidak valid. Dalam beberapa kasus, ini akan menjadi area yang lebih kecil daripada rcBounds.

COleControl::OnDrawMetafile

Dipanggil oleh kerangka kerja untuk menggambar kontrol OLE dalam persegi panjang pembatas yang ditentukan menggunakan konteks perangkat metafile yang ditentukan.

virtual void OnDrawMetafile(
    CDC* pDC,
    const CRect& rcBounds);

Parameter

pDC
Konteks perangkat tempat gambar terjadi.

rcBounds
Area persegi panjang kontrol, termasuk batas.

Keterangan

Implementasi default memanggil fungsi OnDraw .

COleControl::OnSedit

Menyebabkan kontrol menjadi UI diaktifkan.

virtual BOOL OnEdit(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parameter

lpMsg
Penunjuk ke pesan Windows yang memanggil kata kerja.

hWndParent
Handel ke jendela induk kontrol.

lpRect
Penunjuk ke persegi panjang yang digunakan oleh kontrol dalam kontainer.

Tampilkan Nilai

Bukan nol jika panggilan berhasil; jika tidak, 0.

Keterangan

Ini memiliki efek yang sama seperti memanggil kata kerja OLEIVERB_UIACTIVATE kontrol.

Fungsi ini biasanya digunakan sebagai fungsi handler untuk entri peta pesan ON_OLEVERB. Ini membuat kata kerja "Edit" tersedia pada menu "Objek" kontrol. Contohnya:

ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)

COleControl::OnEnabledChanged

Dipanggil oleh kerangka kerja ketika nilai properti stok Diaktifkan telah berubah.

virtual void OnEnabledChanged();

Keterangan

Ambil alih fungsi ini jika Anda ingin pemberitahuan setelah properti ini berubah. Implementasi default memanggil InvalidateControl.

COleControl::OnEnumVerbs

Dipanggil oleh kerangka kerja ketika kontainer memanggil IOleObject::EnumVerbs fungsi anggota.

virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);

Parameter

ppenumOleVerb
Penunjuk ke IEnumOLEVERB objek yang menghitung kata kerja kontrol.

Tampilkan Nilai

Bukan nol jika kata kerja tersedia; jika tidak, 0.

Keterangan

Implementasi default menghitung entri ON_OLEVERB dalam peta pesan.

Ambil alih fungsi ini untuk mengubah cara default menghitung kata kerja.

COleControl::OnEventAdvise

Dipanggil oleh kerangka kerja saat penanganan aktivitas tersambung atau terputus dari kontrol OLE.

virtual void OnEventAdvise(BOOL bAdvise);

Parameter

bAdvise
TRUE menunjukkan bahwa penanganan aktivitas telah tersambung ke kontrol. FALSE menunjukkan bahwa penanganan aktivitas telah terputus dari kontrol.

COleControl::OnFontChanged

Dipanggil oleh kerangka kerja ketika nilai properti Font saham telah berubah.

virtual void OnFontChanged();

Keterangan

Implementasi default memanggil COleControl::InvalidateControl. Jika kontrol mensubkelas kontrol Windows, implementasi default juga mengirim pesan WM_SETFONT ke jendela kontrol.

Ambil alih fungsi ini jika Anda ingin pemberitahuan setelah properti ini berubah.

Contoh

void CMyAxCtrl::OnFontChanged()
{
   // Always set it to the container's font
   if (m_MyEdit.m_hWnd != NULL)
   {
      IFontDisp *pFontDisp = NULL;
      IFont *pFont = NULL;
      HRESULT hr;

      // Get the container's FontDisp interface
      pFontDisp = AmbientFont();
      if (pFontDisp)
      {
         hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
         if (FAILED(hr))
         {
            pFontDisp->Release();
            return;
         }
      }

      HFONT hFont = NULL;
      if (pFont)
      {
         pFont->get_hFont(&hFont);
         m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
      }

      pFontDisp->Release();
   }

   // Invalidate the control
   m_MyEdit.Invalidate();
   m_MyEdit.UpdateWindow();

   COleControl::OnFontChanged();
}

COleControl::OnForeColorChanged

Dipanggil oleh kerangka kerja ketika nilai properti ForeColor saham telah berubah.

virtual void OnForeColorChanged();

Keterangan

Implementasi default memanggil InvalidateControl.

Ambil alih fungsi ini jika Anda ingin pemberitahuan setelah properti ini berubah.

COleControl::OnFreezeEvents

Dipanggil oleh kerangka kerja setelah kontainer memanggil IOleControl::FreezeEvents.

virtual void OnFreezeEvents(BOOL bFreeze);

Parameter

bFreeze
TRUE jika penanganan peristiwa kontrol dibekukan; jika tidak FALSE.

Keterangan

Implementasi default tidak melakukan apa pun.

Ambil alih fungsi ini jika Anda menginginkan perilaku tambahan saat penanganan peristiwa dibekukan atau tidak dibekukan.

COleControl::OnGetColorSet

Dipanggil oleh kerangka kerja ketika kontainer memanggil IViewObject::GetColorSet fungsi anggota.

virtual BOOL OnGetColorSet(
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    LPLOGPALETTE* ppColorSet);

Parameter

ptd
Arahkan ke perangkat target tempat gambar harus dirender. Jika nilai ini NULL, gambar harus dirender untuk perangkat target default, biasanya perangkat tampilan.

hicTargetDev
Menentukan konteks informasi pada perangkat target yang ditunjukkan oleh ptd. Parameter ini bisa menjadi konteks perangkat, tetapi belum tentu satu. Jika ptd adalah NULL, hicTargetDev juga harus NULL.

ppColorSet
Penunjuk ke lokasi tempat kumpulan warna yang akan digunakan harus disalin. Jika fungsi tidak mengembalikan set warna, NULL dikembalikan.

Tampilkan Nilai

Bukan nol jika kumpulan warna yang valid dikembalikan; jika tidak, 0.

Keterangan

Kontainer memanggil fungsi ini untuk mendapatkan semua warna yang diperlukan untuk menggambar kontrol OLE. Kontainer dapat menggunakan set warna yang diperoleh bersama dengan warna yang dibutuhkan untuk mengatur palet warna keseluruhan. Implementasi default mengembalikan FALSE.

Ambil alih fungsi ini untuk melakukan pemrosesan khusus permintaan ini.

COleControl::OnGetControlInfo

Dipanggil oleh kerangka kerja ketika kontainer kontrol telah meminta informasi tentang kontrol.

virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);

Parameter

pControlInfo
Penunjuk ke struktur CONTROLINFO yang akan diisi.

Keterangan

Informasi ini terutama terdiri dari deskripsi kunci mnemonic kontrol. Implementasi default mengisi pControlInfo dengan informasi default.

Ambil alih fungsi ini jika kontrol Anda perlu memproses kunci mnemonic.

COleControl::OnGetDisplayString

Dipanggil oleh kerangka kerja untuk mendapatkan string yang mewakili nilai properti saat ini yang diidentifikasi oleh dispid.

virtual BOOL OnGetDisplayString(
    DISPID dispid,
    CString& strValue);

Parameter

dispid
ID pengiriman properti kontrol.

strValue
Referensi ke objek CString tempat string akan dikembalikan.

Tampilkan Nilai

Bukan nol jika string telah dikembalikan dalam strValue; jika tidak, 0.

Keterangan

Ambil alih fungsi ini jika kontrol Anda memiliki properti yang nilainya tidak dapat langsung dikonversi ke string dan Anda ingin nilai properti ditampilkan di browser properti yang disediakan kontainer.

COleControl::OnGetInPlaceMenu

Dipanggil oleh kerangka kerja ketika kontrol diaktifkan UI untuk mendapatkan menu yang akan digabungkan ke dalam menu kontainer yang ada.

virtual HMENU OnGetInPlaceMenu();

Tampilkan Nilai

Handel menu kontrol, atau NULL jika kontrol tidak memilikinya. Implementasi default mengembalikan NULL.

Keterangan

Untuk informasi selengkapnya tentang menggabungkan sumber daya OLE, lihat artikel Menu dan Sumber Daya (OLE).

COleControl::OnGetNaturalExtent

Dipanggil oleh kerangka kerja sebagai respons terhadap permintaan kontainer IViewObjectEx::GetNaturalExtent .

virtual BOOL OnGetNaturalExtent(
    DWORD dwAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    DVEXTENTINFO* pExtentInfo,
    LPSIZEL psizel);

Parameter

dwAspect
Menentukan bagaimana objek akan diwakili. Representasi mencakup konten, ikon, gambar mini, atau dokumen cetak. Nilai yang valid diambil dari enumerasi DVASPECT atau DVASPECT2.

lindex
Bagian dari objek yang menarik. Saat ini hanya -1 yang valid.

ptd
Arahkan ke struktur DVTARGETDEVICE yang menentukan perangkat target yang ukuran objeknya harus dikembalikan.

hicTargetDev
Menentukan konteks informasi untuk perangkat target yang ditunjukkan oleh parameter ptd tempat objek dapat mengekstrak metrik perangkat dan menguji kemampuan perangkat. Jika ptd adalah NULL, objek harus mengabaikan nilai dalam parameter hicTargetDev .

pExtentInfo
Menunjuk ke DVEXTENTINFO struktur yang menentukan data ukuran. Strukturnya DVEXTENTINFO adalah:

typedef struct tagExtentInfo
{
    UINT cb;
    DWORD dwExtentMode;
    SIZEL sizelProposed;
}   DVEXTENTINFO;

Anggota dwExtentMode struktur dapat mengambil salah satu dari dua nilai:

  • DVEXTENT_CONTENT Menanyakan seberapa besar kontrol harus sesuai dengan konten (snap-to-size)

  • DVEXTENT_INTEGRAL Saat mengubah ukuran, berikan ukuran yang diusulkan ke kontrol

psizel
Menunjuk ke data ukuran yang dikembalikan oleh kontrol. Data ukuran yang dikembalikan diatur ke -1 untuk dimensi apa pun yang tidak disesuaikan.

Tampilkan Nilai

Bukan nol jika berhasil mengembalikan atau menyesuaikan ukuran; jika tidak, 0.

Keterangan

Ambil alih fungsi ini untuk mengembalikan ukuran tampilan objek yang paling dekat dengan ukuran dan ex mode tenda yang diusulkan dalam DVEXTENTINFO struktur. Implementasi default mengembalikan FALSE dan tidak membuat penyesuaian pada ukuran.

COleControl::OnGetPredefinedStrings

Dipanggil oleh kerangka kerja untuk mendapatkan sekumpulan string yang telah ditentukan sebelumnya yang mewakili nilai yang mungkin untuk properti.

virtual BOOL OnGetPredefinedStrings(
    DISPID dispid,
    CStringArray* pStringArray,
    CDWordArray* pCookieArray);

Parameter

dispid
ID pengiriman properti kontrol.

pStringArray
Array string yang akan diisi dengan nilai yang dikembalikan.

pCookieArray
Array DWORD yang akan diisi dengan nilai yang dikembalikan.

Tampilkan Nilai

Nonzero jika elemen telah ditambahkan ke pStringArray dan pCookieArray.

Keterangan

Ambil alih fungsi ini jika kontrol Anda memiliki properti dengan sekumpulan nilai yang mungkin dapat diwakili oleh string. Untuk setiap elemen yang ditambahkan ke pStringArray, Anda harus menambahkan elemen "cookie" yang sesuai ke pCookieArray. Nilai "cookie" ini nantinya dapat diteruskan oleh kerangka kerja ke COleControl::OnGetPredefinedValue fungsi .

COleControl::OnGetPredefinedValue

Dipanggil oleh kerangka kerja untuk mendapatkan nilai yang sesuai dengan salah satu string yang telah ditentukan sebelumnya dikembalikan oleh penimpaan COleControl::OnGetPredefinedStrings.

virtual BOOL OnGetPredefinedValue(
    DISPID dispid,
    DWORD dwCookie,
    VARIANT* lpvarOut);

Parameter

dispid
ID pengiriman properti kontrol.

dwCookie
Nilai cookie yang sebelumnya dikembalikan oleh penimpaan .COleControl::OnGetPredefinedStrings

lpvarOut
Penunjuk ke VARIANT struktur tempat nilai properti akan dikembalikan.

Tampilkan Nilai

Bukan nol jika nilai telah dikembalikan di lpvarOut; jika tidak, 0.

COleControl::OnGetViewExtent

Dipanggil oleh kerangka kerja sebagai respons terhadap permintaan IViewObject2::GetExtent kontainer.

virtual BOOL OnGetViewExtent(
    DWORD dwDrawAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    LPSIZEL lpsizel);

Parameter

dwDrawAspect
DWORD yang menjelaskan bentuk, atau aspek mana, dari objek yang akan ditampilkan. Nilai yang valid diambil dari enumerasi DVASPECT atau DVASPECT2.

lindex
Bagian dari objek yang menarik. Saat ini hanya -1 yang valid.

ptd
Arahkan ke struktur DVTARGETDEVICE yang menentukan perangkat target yang ukuran objeknya harus dikembalikan.

lpsizel
Menunjuk ke lokasi tempat ukuran objek dikembalikan.

Tampilkan Nilai

Bukan nol jika informasi tingkat berhasil dikembalikan; jika tidak, 0.

Keterangan

Ambil alih fungsi ini jika kontrol Anda menggunakan gambar dua-pass, dan bagian buram dan transparannya memiliki dimensi yang berbeda.

COleControl::OnGetViewRect

Dipanggil oleh kerangka kerja sebagai respons terhadap permintaan kontainer IViewObjectEx::GetRect .

virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);

Parameter

dwAspect
DWORD yang menjelaskan bentuk, atau aspek mana, dari objek yang akan ditampilkan. Nilai yang valid diambil dari enumerasi DVASPECT atau DVASPECT2:

  • DVASPECT_CONTENT persegi panjang pembatas dari seluruh objek. Sudut kiri atas pada asal dan ukuran objek sama dengan tingkat yang dikembalikan oleh GetViewExtent.

  • DVASPECT_OPAQUE Objek dengan wilayah buram persegi panjang mengembalikan persegi panjang tersebut. Yang lain gagal.

  • DVASPECT_TRANSPARENT Persegi panjang yang mencakup semua bagian transparan atau tidak teratur.

pRect
Arahkan ke struktur RECTL yang menentukan persegi panjang tempat objek harus digambar. Parameter ini mengontrol penempatan dan peregangan objek.

Tampilkan Nilai

Bukan nol jika persegi panjang berukuran ke objek berhasil dikembalikan; jika tidak, 0.

Keterangan

Ukuran objek dikonversi oleh OnGetViewRect menjadi persegi panjang yang dimulai pada posisi tertentu (defaultnya adalah sudut kiri atas tampilan). Ambil alih fungsi ini jika kontrol Anda menggunakan gambar dua-pass, dan bagian buram dan transparannya memiliki dimensi yang berbeda.

COleControl::OnGetViewStatus

Dipanggil oleh kerangka kerja sebagai respons terhadap permintaan kontainer IViewObjectEx::GetViewStatus .

virtual DWORD OnGetViewStatus();

Tampilkan Nilai

Salah satu nilai enumerasi VIEWSTATUS jika berhasil; jika tidak, 0. Nilai yang mungkin adalah kombinasi dari yang berikut ini:

Nama Deskripsi
VIEWSTATUS_OPAQUE Objek benar-benar buram. Jika bit ini tidak diatur, objek berisi bagian transparan. Bit ini hanya berlaku untuk aspek terkait konten dan tidak untuk DVASPECT_ICON atau DVASPECT_DOCPRINT.
VIEWSTATUS_SOLIDBKGND Objek memiliki latar belakang yang solid (terdiri dari warna solid, bukan pola kuas). Bit ini bermakna hanya jika VIEWSTATUS_OPAQUE diatur dan hanya berlaku untuk aspek terkait konten dan tidak DVASPECT_ICON atau DVASPECT_DOCPRINT.
VIEWSTATUS_DVASPECTOPAQUE Objek mendukung DVASPECT_OPAQUE. Semua metode IViewObjectEx yang mengambil aspek gambar sebagai parameter dapat dipanggil dengan aspek ini.
VIEWSTATUS_DVASPECTTRANSPARENT Objek mendukung DVASPECT_TRANSPARENT. Semua IViewObjectEx metode yang mengambil aspek gambar sebagai parameter dapat dipanggil dengan aspek ini.

Keterangan

Ambil alih fungsi ini jika kontrol Anda menggunakan gambar dua-pass. Implementasi default mengembalikan VIEWSTATUS_OPAQUE.

COleControl::OnHideToolBars

Dipanggil oleh kerangka kerja ketika kontrol dinonaktifkan UI.

virtual void OnHideToolBars();

Keterangan

Implementasi harus menyembunyikan semua toolbar yang ditampilkan oleh OnShowToolbars.

COleControl::OnInactiveMouseMove

Dipanggil oleh kontainer untuk objek tidak aktif di bawah penunjuk mouse pada tanda terima pesan WM_MOUSEMOVE.

virtual void OnInactiveMouseMove(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwKeyState);

Parameter

lprcBounds
Persegi panjang pembatas objek, dalam koordinat klien dari jendela yang berisi. Memberi tahu objek posisi dan ukuran yang tepat pada layar ketika pesan WM_MOUSEMOVE diterima.

x
Koordinat x lokasi mouse dalam koordinat klien dari jendela yang berisi.

y
Koordinat y lokasi mouse dalam koordinat klien dari jendela yang berisi.

dwKeyState
Mengidentifikasi status tombol pengubah papan ketik saat ini pada keyboard. Nilai yang valid dapat berupa kombinasi dari salah satu bendera MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, dan MK_RBUTTON.

Keterangan

Perhatikan bahwa koordinat klien jendela (piksel) digunakan untuk melewati posisi kursor mouse. Ini dimungkinkan dengan juga melewati persegi panjang pembatas objek dalam sistem koordinat yang sama.

COleControl::OnInactiveSetCursor

Dipanggil oleh kontainer untuk objek tidak aktif di bawah penunjuk mouse pada tanda terima pesan WM_SETCURSOR.

virtual BOOL OnInactiveSetCursor(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwMouseMsg,
    BOOL bSetAlways);

Parameter

lprcBounds
Persegi panjang pembatas objek, dalam koordinat klien dari jendela yang berisi. Memberi tahu objek posisi dan ukuran yang tepat pada layar ketika pesan WM_SETCURSOR diterima.

x
Koordinat x lokasi mouse dalam koordinat klien dari jendela yang berisi.

y
Koordinat y lokasi mouse dalam koordinat klien dari jendela yang berisi.

dwMouseMsg
Pengidentifikasi pesan mouse tempat WM_SETCURSOR terjadi.

bSetAlways
Menentukan apakah objek harus mengatur kursor atau tidak. Jika TRUE, objek harus mengatur kursor; jika FALSE, kursor tidak diwajibkan untuk mengatur kursor, dan harus mengembalikan S_FALSE dalam kasus tersebut.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Perhatikan bahwa koordinat klien jendela (piksel) digunakan untuk melewati posisi kursor mouse. Ini dimungkinkan dengan juga melewati persegi panjang pembatas objek dalam sistem koordinat yang sama.

COleControl::OnKeyDownEvent

Dipanggil oleh kerangka kerja setelah peristiwa KeyDown stok diproses.

virtual void OnKeyDownEvent(
    USHORT nChar,
    USHORT nShiftState);

Parameter

nChar
Nilai kode kunci virtual dari tombol yang ditekan. Untuk daftar kode kunci virtual standar, lihat Winuser.h

nShiftState
Berisi kombinasi bendera berikut:

  • SHIFT_MASK Tombol SHIFT ditekan selama tindakan.

  • CTRL_MASK Tombol CTRL ditekan selama tindakan.

  • ALT_MASK Tombol ALT ditekan selama tindakan.

Keterangan

Ambil alih fungsi ini jika kontrol Anda memerlukan akses ke informasi utama setelah peristiwa diaktifkan.

COleControl::OnKeyPressEvent

Dipanggil oleh kerangka kerja setelah peristiwa KeyPress stok dipecat.

virtual void OnKeyPressEvent(USHORT nChar);

Parameter

nChar
Berisi nilai kode kunci virtual dari tombol yang ditekan. Untuk daftar kode kunci virtual standar, lihat Winuser.h

Keterangan

Perhatikan bahwa nilai nChar mungkin telah dimodifikasi oleh kontainer.

Ambil alih fungsi ini jika Anda ingin pemberitahuan setelah peristiwa ini terjadi.

COleControl::OnKeyUpEvent

Dipanggil oleh kerangka kerja setelah peristiwa KeyDown stok diproses.

virtual void OnKeyUpEvent(
    USHORT nChar,
    USHORT nShiftState);

Parameter

nChar
Nilai kode kunci virtual dari tombol yang ditekan. Untuk daftar kode kunci virtual standar, lihat Winuser.h

nShiftState
Berisi kombinasi bendera berikut:

  • SHIFT_MASK Tombol SHIFT ditekan selama tindakan.

  • CTRL_MASK Tombol CTRL ditekan selama tindakan.

  • ALT_MASK Tombol ALT ditekan selama tindakan.

Keterangan

Ambil alih fungsi ini jika kontrol Anda memerlukan akses ke informasi utama setelah peristiwa diaktifkan.

COleControl::OnMapPropertyToPage

Dipanggil oleh kerangka kerja untuk mendapatkan ID kelas halaman properti yang mengimplementasikan pengeditan properti yang ditentukan.

virtual BOOL OnMapPropertyToPage(
    DISPID dispid,
    LPCLSID lpclsid,
    BOOL* pbPageOptional);

Parameter

dispid
ID pengiriman properti kontrol.

lpclsid
Penunjuk CLSID ke struktur tempat ID kelas akan dikembalikan.

pbPageOptional
Mengembalikan indikator apakah penggunaan halaman properti yang ditentukan bersifat opsional.

Tampilkan Nilai

Bukan nol jika ID kelas telah dikembalikan dalam lpclsid; jika tidak, 0.

Keterangan

Ambil alih fungsi ini untuk menyediakan cara untuk memanggil halaman properti kontrol Anda dari browser properti kontainer.

COleControl::OnMnemonic

Dipanggil oleh kerangka kerja ketika kontainer telah mendeteksi bahwa kunci mnemonik kontrol OLE telah ditekan.

virtual void OnMnemonic(LPMSG pMsg);

Parameter

pMsg
Penunjuk ke pesan Windows yang dihasilkan oleh tekan tombol mnemonic.

COleControl::OnProperties

Dipanggil oleh kerangka kerja ketika kata kerja properti kontrol telah dipanggil oleh kontainer.

virtual BOOL OnProperties(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parameter

lpMsg
Penunjuk ke pesan Windows yang memanggil kata kerja.

hWndParent
Handel ke jendela induk kontrol.

lpRect
Penunjuk ke persegi panjang yang digunakan oleh kontrol dalam kontainer.

Tampilkan Nilai

Bukan nol jika panggilan berhasil; jika tidak, 0.

Keterangan

Implementasi default menampilkan kotak dialog properti modal.

Anda juga dapat menggunakan fungsi ini untuk menyebabkan tampilan halaman properti kontrol Anda. Lakukan panggilan ke OnProperties fungsi , meneruskan handel induk kontrol Anda di parameter hWndParent . Dalam hal ini, nilai parameter lpMsg dan lpRect diabaikan.

COleControl::OnQueryHitPoint

Dipanggil oleh kerangka kerja sebagai respons terhadap permintaan kontainer IViewObjectEx::QueryHitPoint .

virtual BOOL OnQueryHitPoint(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    POINT ptlLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Parameter

dwAspect
Menentukan bagaimana objek diwakili. Nilai yang valid diambil dari enumerasi DVASPECT atau DVASPECT2.

pRectBounds
Penunjuk ke struktur yang RECT menentukan persegi panjang pembatas area klien kontrol OLE.

ptlLoc
Penunjuk ke POINT struktur yang menentukan titik yang akan diperiksa untuk hit. Titik ditentukan dalam koordinat area klien OLE.

lCloseHint
Jarak yang mendefinisikan "dekat" dengan titik yang diperiksa untuk hit.

pHitResult
Penunjuk ke hasil kueri hit. Salah satu dari nilai berikut:

  • HITRESULT_OUTSIDE ptlLoc berada di luar objek OLE dan tidak dekat.

  • HITRESULT_TRANSPARENT ptlLoc berada dalam batas objek OLE, tetapi tidak dekat dengan gambar. Misalnya, titik di tengah lingkaran transparan bisa HITRESULT_TRANSPARENT.

  • HITRESULT_CLOSE ptlLoc berada di dalam atau di luar objek OLE tetapi cukup dekat dengan objek untuk dipertimbangkan di dalamnya. Objek kecil, tipis, atau terperinci dapat menggunakan nilai ini. Bahkan jika titik berada di luar persegi panjang pembatas objek itu mungkin masih dekat (ini diperlukan untuk memukul objek kecil).

  • HITRESULT_HIT ptlLoc berada dalam gambar objek.

Tampilkan Nilai

Bukan nol jika hasil hit berhasil dikembalikan; jika tidak, 0. Hit adalah tumpang tindih dengan area tampilan kontrol OLE.

Keterangan

Mengkueri apakah persegi panjang tampilan objek tumpang tindih dengan titik yang diberikan (mencapai titik). QueryHitPoint dapat ditimpa untuk menguji hit untuk objek non-persegi panjang.

COleControl::OnQueryHitRect

Dipanggil oleh kerangka kerja sebagai respons terhadap permintaan kontainer IViewObjectEx::QueryHitRect .

virtual BOOL OnQueryHitRect(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    LPCRECT prcLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Parameter

dwAspect
Menentukan bagaimana objek akan diwakili. Nilai yang valid diambil dari enumerasi DVASPECT atau DVASPECT2.

pRectBounds
Penunjuk ke struktur yang RECT menentukan persegi panjang pembatas area klien kontrol OLE.

prcLoc
Penunjuk ke RECT struktur yang menentukan persegi panjang yang akan diperiksa untuk hit (tumpang tindih dengan persegi panjang objek), relatif terhadap sudut kiri atas objek.

lCloseHint
Tidak digunakan.

pHitResult
Penunjuk ke hasil kueri hit. Salah satu dari nilai berikut:

  • HITRESULT_OUTSIDE tidak ada titik dalam persegi dipukul oleh objek OLE.

  • HITRESULT_HIT setidaknya satu titik dalam persegi panjang akan menjadi hit pada objek.

Tampilkan Nilai

Bukan nol jika hasil hit berhasil dikembalikan; jika tidak, 0.

Keterangan

Mengkueri apakah persegi panjang tampilan objek tumpang tindih dengan titik apa pun dalam persegi panjang yang diberikan (mengenai persegi panjang). QueryHitRect dapat ditimpa untuk menguji hit untuk objek non-persegi panjang.

COleControl::OnRenderData

Dipanggil oleh kerangka kerja untuk mengambil data dalam format yang ditentukan.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Parameter

lpFormatEtc
Arahkan ke struktur FORMATETC yang menentukan format di mana informasi diminta.

lpStgMedium
Menunjuk ke struktur STGMEDIUM tempat data akan dikembalikan.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Format yang ditentukan sebelumnya ditempatkan dalam objek kontrol menggunakan fungsi anggota DelayRenderData atau DelayRenderFileData untuk penyajian tertunda. Implementasi default fungsi ini memanggil OnRenderFileData atau OnRenderGlobalData, masing-masing, jika media penyimpanan yang disediakan adalah file atau memori. Jika format yang diminta CF_METAFILEPICT atau format set properti persisten, implementasi default merender data yang sesuai dan mengembalikan nonzero. Jika tidak, itu mengembalikan 0 dan tidak melakukan apa-apa.

Jika lpStgMedium-tymed> TYMED_NULL, STGMEDIUM harus dialokasikan dan diisi sebagaimana ditentukan oleh lpFormatEtc-tymed>. Jika tidak TYMED_NULL, STGMEDIUM harus diisi dengan data.

Ambil alih fungsi ini untuk menyediakan data Anda dalam format dan sedang yang diminta. Bergantung pada data Anda, Anda mungkin ingin mengambil alih salah satu versi lain dari fungsi ini sebagai gantinya. Jika data Anda berukuran kecil dan tetap, ambil alih OnRenderGlobalData. Jika data Anda berada dalam file, atau berukuran variabel, ambil alih OnRenderFileData.

Untuk informasi selengkapnya, lihat FORMATETC struktur dan STGMEDIUM di Windows SDK.

COleControl::OnRenderFileData

Dipanggil oleh kerangka kerja untuk mengambil data dalam format yang ditentukan ketika media penyimpanan adalah file.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Parameter

lpFormatEtc
Arahkan ke struktur FORMATETC yang menentukan format di mana informasi diminta.

pFile
Menunjuk ke objek CFile tempat data akan dirender.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Format yang ditentukan sebelumnya ditempatkan dalam objek kontrol menggunakan fungsi anggota DelayRenderData untuk penyajian tertunda. Implementasi default fungsi ini hanya mengembalikan FALSE.

Ambil alih fungsi ini untuk menyediakan data Anda dalam format dan sedang yang diminta. Bergantung pada data Anda, Anda mungkin ingin mengambil alih salah satu versi lain dari fungsi ini sebagai gantinya. Jika Anda ingin menangani beberapa media penyimpanan, ambil alih OnRenderData. Jika data Anda berada dalam file, atau berukuran variabel, ambil alih OnRenderFileData.

Untuk informasi selengkapnya, lihat FORMATETC struktur di Windows SDK.

COleControl::OnRenderGlobalData

Dipanggil oleh kerangka kerja untuk mengambil data dalam format yang ditentukan ketika media penyimpanan yang ditentukan adalah memori global.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Parameter

lpFormatEtc
Arahkan ke struktur FORMATETC yang menentukan format di mana informasi diminta.

phGlobal
Menunjuk ke handel ke memori global tempat data akan dikembalikan. Jika tidak ada memori yang dialokasikan, parameter ini dapat berupa NULL.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Format yang ditentukan sebelumnya ditempatkan dalam objek kontrol menggunakan fungsi anggota DelayRenderData untuk penyajian tertunda. Implementasi default fungsi ini hanya mengembalikan FALSE.

Jika phGlobal adalah NULL, maka HGLOBAL baru harus dialokasikan dan dikembalikan dalam phGlobal. Jika tidak, HGLOBAL yang ditentukan oleh phGlobal harus diisi dengan data. Jumlah data yang ditempatkan di HGLOBAL tidak boleh melebihi ukuran blok memori saat ini. Selain itu, blok tidak dapat dialokasikan ke ukuran yang lebih besar.

Ambil alih fungsi ini untuk menyediakan data Anda dalam format dan sedang yang diminta. Bergantung pada data Anda, Anda mungkin ingin mengambil alih salah satu versi lain dari fungsi ini sebagai gantinya. Jika Anda ingin menangani beberapa media penyimpanan, ambil alih OnRenderData. Jika data Anda berada dalam file, atau berukuran variabel, ambil alih OnRenderFileData.

Untuk informasi selengkapnya, lihat FORMATETC struktur di Windows SDK.

COleControl::OnResetState

Dipanggil oleh kerangka kerja ketika properti kontrol harus diatur ke nilai defaultnya.

virtual void OnResetState();

Keterangan

Implementasi default memanggil DoPropExchange, meneruskan CPropExchange objek yang menyebabkan properti diatur ke nilai defaultnya.

Penulis kontrol dapat menyisipkan kode inisialisasi untuk kontrol OLE dalam penimpaan ini. Fungsi ini dipanggil ketika IPersistStream::Load atau IPersistStorage::Load fails, atau IPersistStreamInit::InitNew atau IPersistStorage::InitNew dipanggil, tanpa terlebih dahulu memanggil atau IPersistStream::Load IPersistStorage::Load.

COleControl::OnSetClientSite

Dipanggil oleh kerangka kerja ketika kontainer telah memanggil fungsi kontrol IOleControl::SetClientSite .

virtual void OnSetClientSite();

Keterangan

Secara default, OnSetClientSite memeriksa apakah properti jalur data dimuat dan, jika demikian, memanggil DoDataPathPropExchange.

Ambil alih fungsi ini untuk melakukan pemrosesan khusus pemberitahuan ini. Secara khusus, penimpaan fungsi ini harus memanggil kelas dasar.

COleControl::OnSetData

Dipanggil oleh kerangka kerja untuk mengganti data kontrol dengan data yang ditentukan.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Parameter

lpFormatEtc
Penunjuk ke struktur FORMATETC yang menentukan format data.

lpStgMedium
Pointer ke struktur STGMEDIUM tempat data berada.

bRelease
TRUE jika kontrol harus membebaskan media penyimpanan; FALSE jika kontrol tidak boleh membebaskan media penyimpanan.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Jika data berada dalam format kumpulan properti persisten, implementasi default memodifikasi status kontrol yang sesuai. Jika tidak, implementasi default tidak melakukan apa pun. Jika bRelease TRUE, maka panggilan ke ReleaseStgMedium dilakukan; jika tidak.

Ambil alih fungsi ini untuk mengganti data kontrol dengan data yang ditentukan.

Untuk informasi selengkapnya, lihat FORMATETC struktur dan STGMEDIUM di Windows SDK.

COleControl::OnSetExtent

Dipanggil oleh kerangka kerja ketika tingkat kontrol perlu diubah, sebagai akibat dari panggilan ke IOleObject::SetExtent.

virtual BOOL OnSetExtent(LPSIZEL lpSizeL);

Parameter

lpSizeL
Penunjuk ke SIZEL struktur yang menggunakan bilangan bulat panjang untuk mewakili lebar dan tinggi kontrol, yang dinyatakan dalam unit HIMETRIC.

Tampilkan Nilai

Bukan nol jika perubahan ukuran diterima; jika tidak, 0.

Keterangan

Implementasi default menangani perubahan ukuran tingkat kontrol. Jika kontrol aktif di tempat, panggilan ke kontainer OnPosRectChanged kemudian dilakukan.

Ambil alih fungsi ini untuk mengubah ukuran default kontrol Anda.

COleControl::OnSetObjectRects

Dipanggil oleh kerangka kerja untuk menerapkan panggilan ke IOleInPlaceObject::SetObjectRects.

virtual BOOL OnSetObjectRects(
    LPCRECT lpRectPos,
    LPCRECT lpRectClip);

Parameter

lpRectPos
Penunjuk ke struktur yang RECT menunjukkan posisi dan ukuran baru kontrol relatif terhadap kontainer.

lpRectClip
Penunjuk ke struktur yang RECT menunjukkan area persegi panjang tempat kontrol akan diklip.

Tampilkan Nilai

Bukan nol jika reposisi diterima; jika tidak, 0.

Keterangan

Implementasi default secara otomatis menangani reposisi dan mengubah ukuran jendela kontrol dan mengembalikan TRUE.

Ambil alih fungsi ini untuk mengubah perilaku default fungsi ini.

COleControl::OnShowToolBars

Dipanggil oleh kerangka kerja ketika kontrol telah diaktifkan UI.

virtual void OnShowToolBars();

Keterangan

Implementasi default tidak melakukan apa pun.

COleControl::OnTextChanged

Dipanggil oleh kerangka kerja ketika nilai properti Teks atau Teks saham telah berubah.

virtual void OnTextChanged();

Keterangan

Implementasi default memanggil InvalidateControl.

Ambil alih fungsi ini jika Anda ingin pemberitahuan setelah properti ini berubah.

COleControl::OnWindowlessMessage

Dipanggil oleh kerangka kerja sebagai respons terhadap permintaan kontainer IOleInPlaceObjectWindowless::OnWindowMessage .

virtual BOOL OnWindowlessMessage(
    UINT msg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Parameter

Msg
Pengidentifikasi pesan seperti yang diteruskan oleh Windows.

wParam
Seperti yang diteruskan oleh Windows. Menentukan informasi khusus pesan tambahan. Konten parameter ini bergantung pada nilai parameter msg .

lParam
Seperti yang diteruskan oleh Windows. Menentukan informasi khusus pesan tambahan. Konten parameter ini bergantung pada nilai parameter msg .

plResult
Kode hasil Windows. Menentukan hasil pemrosesan pesan dan bergantung pada pesan yang dikirim.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Memproses pesan jendela untuk kontrol tanpa jendela. COleControl's OnWindowlessMessage harus digunakan untuk pesan jendela selain pesan mouse dan pesan keyboard. COleControl menyediakan SetCapture dan SetFocus secara khusus untuk mendapatkan tangkapan mouse dan fokus keyboard untuk objek OLE tanpa jendela.

Karena objek tanpa jendela tidak memiliki jendela, mereka memerlukan mekanisme untuk membiarkan kontainer mengirimkan pesan kepada mereka. Objek OLE tanpa jendela mendapatkan pesan dari kontainernya, melalui OnWindowMessage metode pada IOleInPlaceObjectWindowless antarmuka (ekstensi IOleInPlaceObject untuk dukungan tanpa jendela). OnWindowMessage tidak mengambil HWND parameter.

COleControl::P arentToClient

Menerjemahkan koordinat pPoint ke dalam koordinat klien.

virtual UINT ParentToClient(
    LPCRECT lprcBounds,
    LPPOINT pPoint,
    BOOL bHitTest = FALSE) const;

Parameter

lprcBounds
Penunjuk ke batas kontrol OLE dalam kontainer. Bukan area klien tetapi area seluruh kontrol termasuk batas dan bilah gulir.

pPoint
Pointer ke titik induk (kontainer) yang akan diterjemahkan ke dalam koordinat area klien kontrol.

bHitTest
Menentukan apakah pengujian temuan akan dilakukan pada titik tersebut atau tidak.

Tampilkan Nilai

Jika bHitTest FALSE, mengembalikan HTNOWHERE. Jika bHitTest true, mengembalikan lokasi di mana titik induk (kontainer) mendarat di area klien kontrol OLE dan merupakan salah satu nilai uji hit mouse berikut:

  • HTBORDER Di batas jendela yang tidak memiliki batas ukuran.

  • HTBOTTOM Di batas horizontal bawah jendela.

  • HTBOTTOMLEFT Di sudut kiri bawah batas jendela.

  • HTBOTTOMRIGHT Di sudut kanan bawah batas jendela.

  • HTCAPTION Di area bilah judul.

  • HTCLIENT Di area klien.

  • HTERROR Pada latar belakang layar atau pada garis pembagian antara jendela (sama seperti HTNOWHERE kecuali bahwa DefWndProc fungsi Windows menghasilkan bip sistem untuk menunjukkan kesalahan).

  • HTGROWBOX Dalam kotak ukuran.

  • HTHSCROLL Di bilah gulir horizontal.

  • HTLEFT Di batas kiri jendela.

  • HTMAXBUTTON Dalam tombol Maksimalkan.

  • HTMENU Di area menu.

  • HTMINBUTTON Dalam tombol Minimalkan.

  • HTNOWHERE Pada latar belakang layar atau pada garis pembagian antara jendela.

  • HTREDUCE Dalam tombol Minimalkan.

  • HTRIGHT Di batas kanan jendela.

  • HTSIZE Dalam kotak ukuran (sama dengan HTGROWBOX).

  • HTSYSMENU Di menu Kontrol atau di tombol Tutup di jendela anak.

  • HTTOP Di batas horizontal atas jendela.

  • HTTOPLEFT Di sudut kiri atas batas jendela.

  • HTTOPRIGHT Di sudut kanan atas batas jendela.

  • HTTRANSPARENT Di jendela yang saat ini dicakup oleh jendela lain.

  • HTVSCROLL Di bilah gulir vertikal.

  • HTZOOM Dalam tombol Maksimalkan.

Keterangan

Pada pPoint input relatif terhadap asal induk (sudut kiri atas kontainer). Pada pPoint output relatif terhadap asal area klien kontrol OLE (sudut kiri atas area klien kontrol).

COleControl::P ostModalDialog

Memberi tahu kontainer bahwa kotak dialog modal telah ditutup.

void PostModalDialog(HWND hWndParent = NULL);

Parameter

hWndParent
Tangani ke jendela induk kotak dialog modal.

Keterangan

Panggil fungsi ini setelah menampilkan kotak dialog modal apa pun. Anda harus memanggil fungsi ini sehingga kontainer dapat mengaktifkan jendela tingkat atas yang dinonaktifkan oleh PreModalDialog. Fungsi ini harus dipasangkan dengan panggilan ke PreModalDialog.

COleControl::P reModalDialog

Memberi tahu kontainer bahwa kotak dialog modal akan ditampilkan.

void PreModalDialog(HWND hWndParent = NULL);

Parameter

hWndParent
Tangani ke jendela induk kotak dialog modal.

Keterangan

Panggil fungsi ini sebelum menampilkan kotak dialog modal apa pun. Anda harus memanggil fungsi ini sehingga kontainer dapat menonaktifkan semua jendela tingkat atasnya. Setelah kotak dialog modal ditampilkan, Anda kemudian harus memanggil PostModalDialog.

COleControl::RecreateControlWindow

Menghancurkan dan membuat ulang jendela kontrol.

void RecreateControlWindow();

Keterangan

Ini mungkin diperlukan jika Anda perlu mengubah bit gaya jendela.

COleControl::Refresh

Memaksa pengecatan ulang kontrol OLE.

void Refresh();

Keterangan

Fungsi ini didukung oleh COleControl kelas dasar sebagai metode stok, yang disebut Refresh. Ini memungkinkan pengguna kontrol OLE Anda untuk mengecat ulang kontrol pada waktu tertentu. Untuk informasi selengkapnya tentang metode ini, lihat artikel Kontrol ActiveX: Metode.

COleControl::ReleaseCapture

Melepaskan tangkapan mouse.

BOOL ReleaseCapture();

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Jika kontrol saat ini memiliki tangkapan mouse, tangkapan akan dilepaskan. Jika tidak, fungsi ini tidak berpengaruh.

COleControl::ReleaseDC

Merilis konteks perangkat tampilan kontainer kontrol tanpa jendela, membebaskan konteks perangkat untuk digunakan oleh aplikasi lain.

int ReleaseDC(CDC* pDC);

Parameter

pDC
Mengidentifikasi konteks perangkat kontainer yang akan dirilis.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Aplikasi harus memanggil ReleaseDC untuk setiap panggilan ke GetDC.

COleControl::ReparentControlWindow

Mengatur induk kontrol.

virtual void ReparentControlWindow(
    HWND hWndOuter,
    HWND hWndParent);

Parameter

hWndOuter
Handel jendela kontrol.

hWndParent
Handel jendela induk baru.

Keterangan

Panggil fungsi ini untuk mengatur ulang induk jendela kontrol.

COleControl::ResetStockProps

Menginisialisasi status COleControl properti stok ke nilai defaultnya.

void ResetStockProps();

Keterangan

Propertinya adalah: Appearance, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor, hWnd, dan Text. Untuk deskripsi properti stok, lihat Kontrol ActiveX: Menambahkan Properti Stok.

Anda dapat meningkatkan performa inisialisasi biner kontrol dengan menggunakan ResetStockProps dan ResetVersion untuk mengambil alih COleControl::OnResetState. Lihat contoh di bawah ini. Untuk informasi lebih lanjut tentang mengoptimalkan inisialisasi, lihat Kontrol ActiveX: Pengoptimalan.

Contoh

void CMyAxCtrl::OnResetState()
{
   ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
   ResetStockProps();

   // initialize custom properties here
}

COleControl::ResetVersion

Menginisialisasi nomor versi ke nilai yang ditentukan.

void ResetVersion(DWORD dwVersionDefault);

Parameter

dwVersionDefault
Nomor versi yang akan ditetapkan ke kontrol.

Keterangan

Anda dapat meningkatkan performa inisialisasi biner kontrol dengan menggunakan ResetVersion dan ResetStockProps untuk mengambil alih COleControl::OnResetState. Lihat contoh di ResetStockProps. Untuk informasi lebih lanjut tentang mengoptimalkan inisialisasi, lihat Kontrol ActiveX: Pengoptimalan.

COleControl::ScrollWindow

Memungkinkan objek OLE tanpa jendela untuk menggulir area dalam gambar aktif di tempatnya di layar.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Parameter

xAmount
Menentukan jumlah, dalam unit perangkat, dari pengguliran horizontal. Parameter ini harus berupa nilai negatif untuk menggulir ke kiri.

yAmount
Menentukan jumlah, dalam unit perangkat, dari pengguliran vertikal. Parameter ini harus berupa nilai negatif untuk menggulir ke atas.

lpRect
Arahkan ke objek CRect atau struktur RECT yang menentukan bagian area klien objek OLE untuk digulir, dalam koordinat klien dari jendela yang berisi. Jika lpRect ADALAH NULL, seluruh area klien objek OLE akan digulir.

lpClipRect
Menunjuk ke CRect objek atau RECT struktur yang menentukan persegi panjang untuk diklip. Hanya piksel di dalam persegi panjang yang digulir. Bit di luar persegi panjang tidak terpengaruh bahkan jika mereka berada di persegi panjang lpRect . Jika lpClipRect adalah NULL, tidak ada kliping yang dilakukan pada persegi panjang gulir.

COleControl::SelectFontObject

Memilih font ke dalam konteks perangkat.

CFont* SelectFontObject(
    CDC* pDC,
    CFontHolder& fontHolder);

Parameter

pDC
Penunjuk ke objek konteks perangkat.

FontHolder
Referensi ke objek CFontHolder yang mewakili font yang akan dipilih.

Tampilkan Nilai

Penunjuk ke font yang dipilih sebelumnya. Ketika pemanggil telah menyelesaikan semua operasi menggambar yang menggunakan fontHolder, pemilihan kembali font yang dipilih sebelumnya dengan meneruskannya sebagai parameter ke CDC::SelectObject.

COleControl::SelectStockFont

Memilih properti Font stok ke dalam konteks perangkat.

CFont* SelectStockFont(CDC* pDC);

Parameter

pDC
Konteks perangkat tempat font akan dipilih.

Tampilkan Nilai

Penunjuk ke objek yang dipilih CFont sebelumnya. Anda harus menggunakan CDC::SelectObject untuk memilih font ini kembali ke konteks perangkat ketika Anda selesai.

COleControl::SerializeExtent

Menserialisasikan atau menginisialisasi status ruang tampilan yang dialokasikan ke kontrol.

void SerializeExtent(CArchive& ar);

Parameter

Ar
Objek CArchive untuk diserialisasikan ke atau dari.

Keterangan

Anda dapat meningkatkan performa persistensi biner kontrol dengan menggunakan SerializeExtent, , SerializeStockPropsdan SerializeVersion untuk mengambil alih COleControl::Serialize. Lihat contoh di bawah ini. Untuk informasi lebih lanjut tentang mengoptimalkan inisialisasi, lihat Kontrol ActiveX: Pengoptimalan.

Contoh

void CMyAxCtrl::Serialize(CArchive &ar)
{
   SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
   SerializeExtent(ar);
   SerializeStockProps(ar);

   if (ar.IsStoring())
   { // storing code
   }
   else
   { // loading code
   }
}

COleControl::SerializeStockProps

Menserialisasikan atau menginisialisasi status COleControl properti stok: Tampilan, Warna Belakang, BorderStyle, Keterangan, Diaktifkan, Font, Warna Depan, dan Teks.

void SerializeStockProps(CArchive& ar);

Parameter

Ar
Objek CArchive untuk diserialisasikan ke atau dari.

Keterangan

Untuk deskripsi properti stok, lihat Kontrol ActiveX: Menambahkan Properti Stok.

Anda dapat meningkatkan performa persistensi biner kontrol dengan menggunakan SerializeStockProps, , SerializeExtentdan SerializeVersion untuk mengambil alih COleControl::Serialize. Misalnya, lihat kode di SerializeExtent. Untuk informasi lebih lanjut tentang mengoptimalkan inisialisasi, lihat Kontrol ActiveX: Pengoptimalan.

COleControl::SerializeVersion

Menserialisasikan atau menginisialisasi status informasi versi kontrol.

DWORD SerializeVersion(
    CArchive& ar,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Parameter

Ar
Objek CArchive untuk diserialisasikan ke atau dari.

dwVersionDefault
Nomor versi kontrol saat ini.

bConvert
Menunjukkan apakah data persisten harus dikonversi ke format terbaru saat disimpan, atau dipertahankan dalam format yang sama saat dimuat.

Tampilkan Nilai

Nomor versi kontrol. Jika arsip yang ditentukan sedang dimuat, SerializeVersion mengembalikan versi yang dimuat dari arsip tersebut. Jika tidak, ia mengembalikan versi yang saat ini dimuat.

Keterangan

Anda dapat meningkatkan performa persistensi biner kontrol dengan menggunakan SerializeVersion, , SerializeExtentdan SerializeStockProps untuk mengambil alih COleControl::Serialize. Misalnya, lihat kode di SerializeExtent. Untuk informasi lebih lanjut tentang mengoptimalkan inisialisasi, lihat Kontrol ActiveX: Pengoptimalan.

COleControl::SetAppearance

Mengatur nilai properti Tampilan saham kontrol Anda.

void SetAppearance (short sAppearance);

Parameter

sAppearance
Nilai short (VT_I2) yang akan digunakan untuk tampilan kontrol Anda. Nilai nol mengatur tampilan kontrol menjadi datar dan nilai 1 mengatur tampilan kontrol ke 3D.

Keterangan

Untuk informasi selengkapnya tentang properti stok, lihat Kontrol ActiveX: Properti.

COleControl::SetBackColor

Mengatur nilai properti BackColor stok kontrol Anda.

void SetBackColor(OLE_COLOR dwBackColor);

Parameter

dwBackColor
Nilai OLE_COLOR yang akan digunakan untuk gambar latar belakang kontrol Anda.

Keterangan

Untuk informasi selengkapnya tentang menggunakan properti ini dan properti terkait lainnya, lihat artikel Kontrol ActiveX: Properti.

COleControl::SetBorderStyle

Mengatur nilai properti BorderStyle saham kontrol Anda.

void SetBorderStyle(short sBorderStyle);

Parameter

sBorderStyle
Gaya batas baru untuk kontrol; 0 menunjukkan tidak ada batas dan 1 menunjukkan batas normal.

Keterangan

Jendela kontrol kemudian akan dibuat ulang dan OnBorderStyleChanged dipanggil.

COleControl::SetCapture

Menyebabkan jendela kontainer kontrol mengambil alih tangkapan mouse atas nama kontrol.

CWnd* SetCapture();

Tampilkan Nilai

Penunjuk ke CWnd objek jendela yang sebelumnya menerima input mouse.

Keterangan

Jika kontrol diaktifkan dan tanpa jendela, fungsi ini menyebabkan jendela kontainer kontrol mengambil kepemilikan tangkapan mouse, atas nama kontrol. Jika tidak, fungsi ini menyebabkan kontrol itu sendiri mengambil kepemilikan tangkapan mouse (sama seperti CWnd::SetCapture).

COleControl::SetControlSize

Mengatur ukuran jendela kontrol OLE dan memberi tahu kontainer bahwa situs kontrol berubah.

BOOL SetControlSize(int cx, int cy);

Parameter

cx
Menentukan lebar kontrol baru dalam piksel.

Cy
Menentukan tinggi kontrol baru dalam piksel.

Tampilkan Nilai

Bukan nol jika panggilan berhasil; jika tidak, 0.

Keterangan

Fungsi ini tidak boleh digunakan dalam konstruktor kontrol Anda.

Perhatikan bahwa semua koordinat untuk jendela kontrol relatif terhadap sudut kiri atas kontrol.

COleControl::SetEnabled

Mengatur nilai properti stok Diaktifkan kontrol Anda.

void SetEnabled(BOOL bEnabled);

Parameter

bEnabled
TRUE jika kontrol akan diaktifkan; jika tidak FALSE.

Keterangan

Setelah mengatur properti ini, OnEnabledChange dipanggil.

COleControl::SetFocus

Menyebabkan jendela kontainer kontrol mengambil alih fokus input pada nama kontrol.

CWnd* SetFocus();

Tampilkan Nilai

Penunjuk ke CWnd objek jendela yang sebelumnya memiliki fokus input, atau NULL jika tidak ada jendela tersebut.

Keterangan

Jika kontrol diaktifkan dan tanpa jendela, fungsi ini menyebabkan jendela kontainer kontrol memiliki fokus input, atas nama kontrol. Fokus input mengarahkan input keyboard ke jendela kontainer, dan kontainer mengirimkan semua pesan keyboard berikutnya ke objek OLE yang memanggil SetFocus. Jendela apa pun yang sebelumnya memiliki fokus input akan kehilangannya.

Jika kontrol tidak tanpa jendela, fungsi ini menyebabkan kontrol itu sendiri memiliki fokus input (sama dengan CWnd::SetFocus).

COleControl::SetFont

Mengatur properti Font stok kontrol Anda.

void SetFont(LPFONTDISP pFontDisp);

Parameter

pFontDisp
Penunjuk ke antarmuka pengiriman Font.

COleControl::SetForeColor

Mengatur nilai properti ForeColor saham kontrol Anda.

void SetForeColor(OLE_COLOR dwForeColor);

Parameter

dwForeColor
Nilai OLE_COLOR yang akan digunakan untuk gambar latar depan kontrol Anda.

Keterangan

Untuk informasi selengkapnya tentang menggunakan properti ini dan properti terkait lainnya, lihat artikel Kontrol ActiveX: Properti.

COleControl::SetInitialDataFormats

Dipanggil oleh kerangka kerja untuk menginisialisasi daftar format data yang didukung oleh kontrol.

virtual void SetInitialDataFormats();

Keterangan

Implementasi default menentukan dua format: CF_METAFILEPICT dan kumpulan properti persisten.

COleControl::SetInitialSize

Mengatur ukuran kontrol OLE saat pertama kali ditampilkan dalam kontainer.

void SetInitialSize(
    int cx,
    int cy);

Parameter

cx
Lebar awal kontrol OLE dalam piksel.

Cy
Tinggi awal kontrol OLE dalam piksel.

Keterangan

Panggil fungsi ini di konstruktor Anda untuk mengatur ukuran awal kontrol Anda. Ukuran awal diukur dalam unit perangkat, atau piksel. Disarankan agar panggilan ini dilakukan di konstruktor kontrol Anda.

COleControl::SetModifiedFlag

Mengubah status kontrol yang dimodifikasi.

void SetModifiedFlag(BOOL bModified = TRUE);

Parameter

bModified
Nilai baru untuk bendera kontrol yang dimodifikasi. TRUE menunjukkan bahwa status kontrol telah dimodifikasi; FALSE menunjukkan bahwa status kontrol baru saja disimpan.

Keterangan

Panggil fungsi ini setiap kali perubahan terjadi yang akan memengaruhi status persisten kontrol Anda. Misalnya, jika nilai properti persisten berubah, panggil fungsi ini dengan bModified TRUE.

COleControl::SetNotPermitted

Menunjukkan bahwa permintaan edit telah gagal.

void SetNotPermitted();

Keterangan

Panggil fungsi ini saat BoundPropertyRequestEdit gagal. Fungsi ini melemparkan pengecualian jenis COleDispScodeException untuk menunjukkan bahwa operasi yang ditetapkan tidak diizinkan.

COleControl::SetNotSupported

Mencegah modifikasi pada nilai properti kontrol oleh pengguna.

void SetNotSupported();

Keterangan

Panggil fungsi ini sebagai pengganti fungsi Set properti apa pun di mana modifikasi nilai properti oleh pengguna kontrol tidak didukung. Salah satu contohnya adalah properti yang hanya dibaca.

COleControl::SetRectInContainer

Mengatur koordinat persegi panjang kontrol relatif terhadap kontainer, yang dinyatakan dalam unit perangkat.

BOOL SetRectInContainer(LPCRECT lpRect);

Parameter

lpRect
Penunjuk ke persegi panjang yang berisi koordinat baru kontrol relatif terhadap kontainer.

Tampilkan Nilai

Bukan nol jika panggilan berhasil; jika tidak, 0.

Keterangan

Jika kontrol terbuka, kontrol akan diubah ukurannya; jika tidak, fungsi kontainer OnPosRectChanged dipanggil.

COleControl::SetText

Mengatur nilai properti Teks atau Teks saham kontrol Anda.

void SetText(LPCTSTR pszText);

Parameter

pszText
Penunjuk ke string karakter.

Keterangan

Perhatikan bahwa properti Keterangan stok dan Teks keduanya dipetakan ke nilai yang sama. Ini berarti bahwa setiap perubahan yang dilakukan pada salah satu properti akan secara otomatis mengubah kedua properti. Secara umum, kontrol harus mendukung properti Keterangan stok atau Teks, tetapi tidak keduanya.

COleControl::ThrowError

Menandakan terjadinya kesalahan dalam kontrol Anda.

void ThrowError(
    SCODE sc,
    UINT nDescriptionID,
    UINT nHelpID = -1);

void ThrowError(
    SCODE sc,
    LPCTSTR pszDescription = NULL,
    UINT nHelpID = 0);

Parameter

Sc
Nilai kode status yang akan dilaporkan. Untuk daftar lengkap kemungkinan kode, lihat artikel Kontrol ActiveX: Topik Tingkat Lanjut.

nDescriptionID
ID sumber daya string pengecualian yang akan dilaporkan.

nHelpID
ID bantuan topik yang akan dilaporkan.

pszDescription
String yang berisi penjelasan tentang pengecualian yang akan dilaporkan.

Keterangan

Fungsi ini hanya boleh dipanggil dari dalam fungsi Get atau Set untuk properti OLE, atau implementasi metode otomatisasi OLE. Jika Anda perlu memberi sinyal kesalahan yang terjadi di lain waktu, Anda harus mengaktifkan peristiwa Kesalahan stok.

COleControl::TransformCoords

Mengubah nilai koordinat antara unit HIMETRIC dan unit asli kontainer.

void TransformCoords(
    POINTL* lpptlHimetric,
    POINTF* lpptfContainer,
    DWORD flags);

Parameter

lpptlHimetric
Pointer ke struktur yang POINTL berisi koordinat dalam unit HIMETRIC.

lpptfContainer
Penunjuk ke struktur yang POINTF berisi koordinat dalam ukuran unit kontainer.

flags
Kombinasi nilai berikut:

  • XFORMCOORDS_POSITION Posisi A dalam kontainer.

  • XFORMCOORDS_SIZE Ukuran A dalam kontainer.

  • XFORMCOORDS_HIMETRICTOCONTAINER Mengubah unit HIMETRIC ke unit kontainer.

  • XFORMCOORDS_CONTAINERTOHIMETRIC Mengubah unit kontainer menjadi unit HIMETRIC.

Keterangan

Dua bendera pertama, XFORMCOORDS_POSITION dan XFORMCOORDS_SIZE, menunjukkan apakah koordinat harus diperlakukan sebagai posisi atau ukuran. Dua bendera yang tersisa menunjukkan arah transformasi.

COleControl::TranslateColor

Mengonversi nilai warna dari tipe data OLE_COLOR ke tipe data COLORREF .

COLORREF TranslateColor(
    OLE_COLOR clrColor,
    HPALETTE hpal = NULL);

Parameter

clrColor
Jenis data OLE_COLOR. Untuk informasi selengkapnya, lihat fungsi Windows OleTranslateColor .

hpal
Handel ke palet opsional; bisa NULL.

Tampilkan Nilai

Nilai warna 32-bit RGB (merah, hijau, biru) yang mendefinisikan warna solid paling dekat dengan nilai clrColor yang dapat diwakili perangkat.

Keterangan

Fungsi ini berguna untuk menerjemahkan properti ForeColor dan BackColor stok ke jenis COLORREF yang digunakan oleh fungsi anggota CDC .

COleControl::WillAmbientsBeValidDuringLoad

Menentukan apakah kontrol Anda harus menggunakan nilai properti sekitar sebagai nilai default, ketika kemudian dimuat dari status persistennya.

BOOL WillAmbientsBeValidDuringLoad();

Tampilkan Nilai

Nonzero menunjukkan bahwa properti sekitar akan valid; jika tidak, properti sekitar tidak akan valid.

Keterangan

Dalam beberapa kontainer, kontrol Anda mungkin tidak memiliki akses ke properti sekitarnya selama panggilan awal untuk mengambil alih COleControl::DoPropExchange. Ini adalah kasus jika kontainer memanggil IPersistStreamInit::Load atau IPersistStorage::Load sebelum memanggil IOleObject::SetClientSite (yaitu, jika tidak menghormati bit status OLEMISC_SETCLIENTSITEFIRST).

COleControl::WindowProc

Menyediakan prosedur Windows untuk objek COleControl .

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parameter

message
Menentukan pesan Windows yang akan diproses.

wParam
Menyediakan informasi tambahan yang digunakan dalam memproses pesan. Nilai parameter tergantung pada pesan.

lParam
Menyediakan informasi tambahan yang digunakan dalam memproses pesan. Nilai parameter tergantung pada pesan.

Tampilkan Nilai

Nilai pengembalian pesan yang dikirim.

Keterangan

Panggil fungsi ini untuk mengirimkan pesan tertentu melalui peta pesan kontrol.

Lihat juga

Sampel MFC CIRC3
TESTHELP Sampel MFC
Kelas COlePropertyPage
Kelas CWnd
Bagan Hierarki
Kelas CFontHolder
Kelas CPictureHolder