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). COleControl
Implementasi 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
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. COleControl
Implementasi 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 COleControl implementasi 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 fontHolder
font 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
, , SerializeStockProps
dan 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
, , SerializeExtent
dan 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
, , SerializeExtent
dan 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