Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas ini menyediakan metode untuk membuat dan mengelola kontrol ATL.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
Sintaks
class ATL_NO_VTABLE CComControlBase
Anggota
Typedef Publik
| Nama | Deskripsi |
|---|---|
| CComControlBase::AppearanceType | Ambil alih jika properti stok Anda m_nAppearance tidak berjenis short. |
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| CComControlBase::CComControlBase | Konstruktor. |
| CComControlBase::~CComControlBase | Destruktor. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| CComControlBase::ControlQueryInterface | Mengambil penunjuk ke antarmuka yang diminta. |
| CComControlBase::D oesVerbActivate | Memeriksa apakah parameter iVerb yang digunakan dengan IOleObjectImpl::DoVerb mengaktifkan antarmuka pengguna kontrol (iVerb sama dengan OLEIVERB_UIACTIVATE), menentukan tindakan yang diambil saat pengguna mengklik dua kali kontrol (iVerb sama dengan OLEIVERB_PRIMARY), menampilkan kontrol (iVerb sama dengan OLEIVERB_SHOW), atau mengaktifkan kontrol (iVerb sama dengan OLEIVERB_INPLACEACTIVATE). |
| CComControlBase::D oesVerbUIActivate | Memeriksa apakah parameter iVerb yang digunakan oleh IOleObjectImpl::DoVerb menyebabkan antarmuka pengguna kontrol mengaktifkan dan mengembalikan TRUE. |
| CComControlBase::D oVerbProperties | Menampilkan halaman properti kontrol. |
| CComControlBase::FireViewChange | Panggil metode ini untuk memberi tahu kontainer untuk menggambar ulang kontrol, atau beri tahu sink saran terdaftar bahwa tampilan kontrol telah berubah. |
| CComControlBase::GetAmbientAppearance | Mengambil DISPID_AMBIENT_APPEARANCE, pengaturan tampilan saat ini untuk kontrol: 0 untuk datar dan 1 untuk 3D. |
| CComControlBase::GetAmbientAutoClip | Mengambil DISPID_AMBIENT_AUTOCLIP, bendera yang menunjukkan apakah kontainer mendukung kliping otomatis area tampilan kontrol. |
| CComControlBase::GetAmbientBackColor | Mengambil DISPID_AMBIENT_BACKCOLOR, warna latar belakang sekitar untuk semua kontrol, yang ditentukan oleh kontainer. |
| CComControlBase::GetAmbientCharSet | Mengambil DISPID_AMBIENT_CHARSET, set karakter sekitar untuk semua kontrol, yang ditentukan oleh kontainer. |
| CComControlBase::GetAmbientCodePage | Mengambil DISPID_AMBIENT_CODEPAGE, karakter sekitar yang ditetapkan untuk semua kontrol, yang ditentukan oleh kontainer. |
| CComControlBase::GetAmbientDisplayAsDefault | Mengambil DISPID_AMBIENT_DISPLAYASDEFAULT, bendera true jika kontainer telah menandai kontrol di situs ini menjadi tombol default, dan oleh karena itu kontrol tombol harus menggambar dirinya dengan bingkai yang lebih tebal. |
| CComControlBase::GetAmbientDisplayName | Mengambil DISPID_AMBIENT_DISPLAYNAME, nama kontainer telah diberikan ke kontrol. |
| CComControlBase::GetAmbientFont | Mengambil penunjuk ke antarmuka sekitar IFont kontainer. |
| CComControlBase::GetAmbientFontDisp | Mengambil penunjuk ke antarmuka pengiriman sekitar IFontDisp kontainer. |
| CComControlBase::GetAmbientForeColor | Mengambil DISPID_AMBIENT_FORECOLOR, warna latar depan sekitar untuk semua kontrol, yang ditentukan oleh kontainer. |
| CComControlBase::GetAmbientLocaleID | Mengambil DISPID_AMBIENT_LOCALEID, pengidentifikasi bahasa yang digunakan oleh kontainer. |
| CComControlBase::GetAmbientMessageReflect | Mengambil DISPID_AMBIENT_MESSAGEREFLECT, bendera yang menunjukkan apakah kontainer ingin menerima pesan jendela (seperti WM_DRAWITEM) sebagai peristiwa. |
| CComControlBase::GetAmbientPalette | Mengambil DISPID_AMBIENT_PALETTE, digunakan untuk mengakses HPALETTE kontainer. |
| CComControlBase::GetAmbientProperty | Mengambil properti kontainer yang ditentukan oleh id. |
| CComControlBase::GetAmbientRightToLeft | Mengambil DISPID_AMBIENT_RIGHTTOLEFT, arah di mana konten ditampilkan oleh kontainer. |
| CComControlBase::GetAmbientScaleUnits | Mengambil DISPID_AMBIENT_SCALEUNITS, unit sekitar kontainer (seperti inci atau sentimeter) untuk tampilan pelabelan. |
| CComControlBase::GetAmbientShowGrabHandles | Mengambil DISPID_AMBIENT_SHOWGRABHANDLES, bendera yang menunjukkan apakah kontainer memungkinkan kontrol untuk menampilkan handel ambil untuk dirinya sendiri saat aktif. |
| CComControlBase::GetAmbientShowHatching | Mengambil DISPID_AMBIENT_SHOWHATCHING, bendera yang menunjukkan apakah kontainer memungkinkan kontrol menampilkan dirinya sendiri dengan pola yang menetas saat UI aktif. |
| CComControlBase::GetAmbientSupportsMnemonics | Mengambil DISPID_AMBIENT_SUPPORTSMNEMONICS, bendera yang menunjukkan apakah kontainer mendukung mnemonics keyboard. |
| CComControlBase::GetAmbientTextAlign | Mengambil DISPID_AMBIENT_TEXTALIGN, perataan teks yang disukai oleh kontainer: 0 untuk perataan umum (angka kanan, teks kiri), 1 untuk perataan kiri, 2 untuk perataan tengah, dan 3 untuk perataan kanan. |
| CComControlBase::GetAmbientTopToBottom | Mengambil DISPID_AMBIENT_TOPTOBOTTOM, arah di mana konten ditampilkan oleh kontainer. |
| CComControlBase::GetAmbientUIDead | Mengambil DISPID_AMBIENT_UIDEAD, bendera yang menunjukkan apakah kontainer ingin kontrol merespons tindakan antarmuka pengguna. |
| CComControlBase::GetAmbientUserMode | Mengambil DISPID_AMBIENT_USERMODE, bendera yang menunjukkan apakah kontainer berada dalam mode eksekusi (TRUE) atau mode desain (FALSE). |
| CComControlBase::GetDirty | Mengembalikan nilai anggota m_bRequiresSavedata . |
| CComControlBase::GetZoomInfo | Mengambil nilai x dan y dari pembilang dan denominator faktor zoom untuk kontrol yang diaktifkan untuk pengeditan di tempat. |
| CComControlBase::InPlaceActivate | Menyebabkan kontrol beralih dari status tidak aktif ke status apa pun yang ditunjukkan kata kerja di iVerb . |
| CComControlBase::InternalGetSite | Panggil metode ini untuk mengkueri situs kontrol untuk penunjuk ke antarmuka yang diidentifikasi. |
| CComControlBase::OnDraw | Ambil alih metode ini untuk menggambar kontrol Anda. |
| CComControlBase::OnDrawAdvanced | Default OnDrawAdvanced menyiapkan konteks perangkat yang dinormalisasi untuk menggambar, lalu memanggil metode kelas OnDraw kontrol Anda. |
| CComControlBase::OnKillFocus | Memeriksa apakah kontrol aktif di tempat dan memiliki situs kontrol yang valid, lalu memberi tahu kontainer bahwa kontrol telah kehilangan fokus. |
| CComControlBase::OnMouseActivate | Memeriksa apakah UI berada dalam mode pengguna, lalu mengaktifkan kontrol. |
| CComControlBase::OnPaint | Menyiapkan kontainer untuk pengecatan, mendapatkan area klien kontrol, lalu memanggil metode kelas OnDraw kontrol. |
| CComControlBase::OnSetFocus | Memeriksa apakah kontrol aktif di tempat dan memiliki situs kontrol yang valid, lalu memberi tahu kontainer bahwa kontrol telah mendapatkan fokus. |
| CComControlBase::P reTranslateAccelerator | Ambil alih metode ini untuk menyediakan handler akselerator keyboard Anda sendiri. |
| CComControlBase::SendOnClose | Memberi tahu semua sink penasihat yang terdaftar di pemegang saran bahwa kontrol telah ditutup. |
| CComControlBase::SendOnDataChange | Memberi tahu semua sink penasihat yang terdaftar di pemegang saran bahwa data kontrol telah berubah. |
| CComControlBase::SendOnRename | Memberi tahu semua sink penasihat yang terdaftar di pemegang saran bahwa kontrol memiliki moniker baru. |
| CComControlBase::SendOnSave | Memberi tahu semua sink penasihat yang terdaftar di pemegang saran bahwa kontrol telah disimpan. |
| CComControlBase::SendOnViewChange | Memberi tahu semua sink saran terdaftar bahwa tampilan kontrol telah berubah. |
| CComControlBase::SetControlFocus | Mengatur atau menghapus fokus keyboard ke atau dari kontrol. |
| CComControlBase::SetDirty | Mengatur anggota m_bRequiresSave data ke nilai dalam bDirty. |
Anggota Data Publik
| Nama | Deskripsi |
|---|---|
| CComControlBase::m_bAutoSize | Bendera yang menunjukkan kontrol tidak boleh berukuran lain. |
| CComControlBase::m_bDrawFromNatural | Bendera yang menunjukkan bahwa IDataObjectImpl::GetData dan CComControlBase::GetZoomInfo harus mengatur ukuran kontrol dari m_sizeNatural bukan dari m_sizeExtent. |
| CComControlBase::m_bDrawGetDataInHimetric | Bendera yang menunjukkan bahwa IDataObjectImpl::GetData harus menggunakan unit HIMETRIC dan bukan piksel saat menggambar. |
| CComControlBase::m_bInPlaceActive | Bendera yang menunjukkan kontrol aktif di tempat. |
| CComControlBase::m_bInPlaceSiteEx | Bendera yang menunjukkan kontainer mendukung IOleInPlaceSiteEx antarmuka dan fitur kontrol OCX96, seperti kontrol tanpa jendela dan bebas kedap udara. |
| CComControlBase::m_bNegotiatedWnd | Bendera yang menunjukkan apakah kontrol telah dinegosiasikan dengan kontainer tentang dukungan untuk fitur kontrol OCX96 (seperti kontrol tanpa jendela dan bebas jendela), dan apakah kontrol berjendela atau tanpa jendela. |
| CComControlBase::m_bRecomposeOnResize | Bendera yang menunjukkan kontrol ingin menyusun ulang presentasinya ketika kontainer mengubah ukuran tampilan kontrol. |
| CComControlBase::m_bRequiresSave | Bendera yang menunjukkan kontrol telah berubah sejak terakhir disimpan. |
| CComControlBase::m_bResizeNatural | Bendera yang menunjukkan kontrol ingin mengubah ukuran tingkat alaminya (ukuran fisiknya yang tidak diskalakan) ketika kontainer mengubah ukuran tampilan kontrol. |
| CComControlBase::m_bUIActive | Bendera yang menunjukkan antarmuka pengguna kontrol, seperti menu dan toolbar, aktif. |
| CComControlBase::m_bUsingWindowRgn | Bendera yang menunjukkan kontrol menggunakan wilayah jendela yang disediakan kontainer. |
| CComControlBase::m_bWasOnceWindowless | Bendera yang menunjukkan kontrol telah tanpa jendela, tetapi mungkin atau mungkin tidak tanpa jendela sekarang. |
| CComControlBase::m_bWindowOnly | Bendera yang menunjukkan kontrol harus berjendela, bahkan jika kontainer mendukung kontrol tanpa jendela. |
| CComControlBase::m_bWndLess | Bendera yang menunjukkan kontrol tidak berjendela. |
| CComControlBase::m_hWndCD | Berisi referensi ke handel jendela yang terkait dengan kontrol. |
| CComControlBase::m_nFreezeEvents | Hitungan berapa kali kontainer telah membekukan peristiwa (menolak menerima peristiwa) tanpa pencairan peristiwa yang mengintervensi (penerimaan peristiwa). |
| CComControlBase::m_rcPos | Posisi dalam piksel kontrol, dinyatakan dalam koordinat kontainer. |
| CComControlBase::m_sizeExtent | Tingkat kontrol dalam unit HIMETRIC (setiap unit adalah 0,01 milimeter) untuk tampilan tertentu. |
| CComControlBase::m_sizeNatural | Ukuran fisik kontrol dalam unit HIMETRIC (setiap unit adalah 0,01 milimeter). |
| CComControlBase::m_spAdviseSink | Penunjuk langsung ke koneksi penasihat pada kontainer (IAdviseSink kontainer). |
| CComControlBase::m_spAmbientDispatch | Objek CComDispatchDriver yang memungkinkan Anda mengambil dan mengatur properti kontainer melalui pointer IDispatch . |
| CComControlBase::m_spClientSite | Penunjuk ke situs klien kontrol dalam kontainer. |
| CComControlBase::m_spDataAdviseHolder | Menyediakan sarana standar untuk menyimpan koneksi saran antara objek data dan menyarankan sink. |
| CComControlBase::m_spInPlaceSite | Pointer ke penunjuk antarmuka IOleInPlaceSite, IOleInPlaceSiteEx, atau IOleInPlaceSiteWindowless kontainer. |
| CComControlBase::m_spOleAdviseHolder | Menyediakan implementasi standar dari cara untuk menyimpan koneksi saran. |
Keterangan
Kelas ini menyediakan metode untuk membuat dan mengelola kontrol ATL. Kelas CComControl berasal dari CComControlBase. Saat Anda membuat kontrol Kontrol Standar atau DHTML menggunakan Wizard Kontrol ATL, wizard akan secara otomatis memperoleh kelas Anda dari CComControlBase.
Untuk informasi selengkapnya tentang membuat kontrol, lihat Tutorial ATL. Untuk informasi selengkapnya tentang Wizard Proyek ATL, lihat artikel Membuat Proyek ATL.
Persyaratan
Header: atlctl.h
CComControlBase::AppearanceType
Ambil alih jika properti stok Anda m_nAppearance tidak berjenis short.
typedef short AppearanceType;
Keterangan
Wizard Kontrol ATL menambahkan properti stok berjenis m_nAppearance pendek. Ambil alih AppearanceType jika Anda menggunakan jenis data yang berbeda.
CComControlBase::CComControlBase
Konstruktor.
CComControlBase(HWND& h);
Parameter
h
Handel ke jendela yang terkait dengan kontrol.
Keterangan
Menginisialisasi ukuran kontrol ke 5080X5080 unit HIMETRIC (2"X2") dan menginisialisasi CComControlBase nilai anggota data ke NULL atau FALSE.
CComControlBase::~CComControlBase
Destruktor.
~CComControlBase();
Keterangan
Jika kontrol berjendela, ~CComControlBase hancurkan dengan memanggil DestroyWindow.
CComControlBase::ControlQueryInterface
Mengambil penunjuk ke antarmuka yang diminta.
virtual HRESULT ControlQueryInterface(const IID& iid,
void** ppv);
Parameter
iid
GUID antarmuka yang diminta.
ppv
Penunjuk ke penunjuk antarmuka yang diidentifikasi oleh iid, atau NULL jika antarmuka tidak ditemukan.
Keterangan
Hanya menangani antarmuka dalam tabel peta COM.
Contoh
// Retrieve the control's IOleObject interface. Note interface
// is automatically released when pOleObject goes out of scope
CComPtr<IOleObject> pOleObject;
ControlQueryInterface(IID_IOleObject, (void**)&pOleObject);
CComControlBase::D oesVerbActivate
Memeriksa apakah parameter iVerb yang digunakan dengan IOleObjectImpl::DoVerb mengaktifkan antarmuka pengguna kontrol (iVerb sama dengan OLEIVERB_UIACTIVATE), menentukan tindakan yang diambil saat pengguna mengklik dua kali kontrol (iVerb sama dengan OLEIVERB_PRIMARY), menampilkan kontrol (iVerb sama dengan OLEIVERB_SHOW), atau mengaktifkan kontrol (iVerb sama dengan OLEIVERB_INPLACEACTIVATE).
BOOL DoesVerbActivate(LONG iVerb);
Parameter
iVerb
Nilai yang menunjukkan tindakan yang akan dilakukan oleh DoVerb.
Tampilkan Nilai
Mengembalikan TRUE jika iVerb sama dengan OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW, atau OLEIVERB_INPLACEACTIVATE; jika tidak, mengembalikan FALSE.
Keterangan
Anda dapat mengambil alih metode ini untuk menentukan kata kerja aktivasi Anda sendiri.
CComControlBase::D oesVerbUIActivate
Memeriksa apakah parameter iVerb yang digunakan oleh IOleObjectImpl::DoVerb menyebabkan antarmuka pengguna kontrol mengaktifkan dan mengembalikan TRUE.
BOOL DoesVerbUIActivate(LONG iVerb);
Parameter
iVerb
Nilai yang menunjukkan tindakan yang akan dilakukan oleh DoVerb.
Tampilkan Nilai
Mengembalikan TRUE jika iVerb sama dengan OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW, atau OLEIVERB_INPLACEACTIVATE. Jika tidak, metode mengembalikan FALSE.
CComControlBase::D oVerbProperties
Menampilkan halaman properti kontrol.
HRESULT DoVerbProperties(LPCRECT /* prcPosRect */, HWND hwndParent);
Parameter
prcPosRec
Dicadangkan.
hwndParent
Handel jendela yang berisi kontrol.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
Contoh
// The following implementation of the WM_RBUTTONDOWN message handler
// will pop up the ActiveX Control's PropertyPages
LRESULT CMyComposite::OnRButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/,
LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
DoVerbProperties(NULL, ::GetActiveWindow());
return 0L;
}
MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)
CComControlBase::FireViewChange
Panggil metode ini untuk memberi tahu kontainer untuk menggambar ulang kontrol, atau beri tahu sink saran terdaftar bahwa tampilan kontrol telah berubah.
HRESULT FireViewChange();
Tampilkan Nilai
Salah satu nilai HRESULT standar.
Keterangan
Jika kontrol aktif (anggota data kelas kontrol CComControlBase::m_bInPlaceActive TRUE), memberi tahu kontainer bahwa Anda ingin menggambar ulang seluruh kontrol. Jika kontrol tidak aktif, memberi tahu sink saran terdaftar kontrol (melalui anggota data kelas kontrol CComControlBase::m_spAdviseSink) bahwa tampilan kontrol telah berubah.
Contoh
STDMETHODIMP CMyControl::put_Shape(int newVal)
{
// store newVal in m_nShape user-defined member
m_nShape = newVal;
// notify container to redraw control
FireViewChange();
return S_OK;
}
CComControlBase::GetAmbientAppearance
Mengambil DISPID_AMBIENT_APPEARANCE, pengaturan tampilan saat ini untuk kontrol: 0 untuk datar dan 1 untuk 3D.
HRESULT GetAmbientAppearance(short& nAppearance);
Parameter
nAppearance
Properti DISPID_AMBIENT_APPEARANCE.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
Contoh
HRESULT OnDraw(ATL_DRAWINFO& di)
{
short nAppearance;
RECT& rc = *(RECT*)di.prcBounds;
// draw 3D border if AmbientAppearance is not supported or is set to 1
HRESULT hr = GetAmbientAppearance(nAppearance);
if (hr != S_OK || nAppearance==1)
{
DrawEdge(di.hdcDraw, &rc, EDGE_SUNKEN, BF_RECT);
}
else
{
Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
}
SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
LPCTSTR pszText = _T("ATL 8.0 : MyControl");
// For security reasons, we recommend that you use the lstrlen function
// with caution. Here, we can guarantee that pszText is NULL terminated,
// and therefore it is safe to use this function.
TextOut(di.hdcDraw,
(rc.left + rc.right) / 2,
(rc.top + rc.bottom) / 2,
pszText,
lstrlen(pszText));
return S_OK;
}
CComControlBase::GetAmbientAutoClip
Mengambil DISPID_AMBIENT_AUTOCLIP, bendera yang menunjukkan apakah kontainer mendukung kliping otomatis area tampilan kontrol.
HRESULT GetAmbientAutoClip(BOOL& bAutoClip);
Parameter
bAutoClip
Properti DISPID_AMBIENT_AUTOCLIP.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientBackColor
Mengambil DISPID_AMBIENT_BACKCOLOR, warna latar belakang sekitar untuk semua kontrol, yang ditentukan oleh kontainer.
HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);
Parameter
Warna Belakang
Properti DISPID_AMBIENT_BACKCOLOR.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientCharSet
Mengambil DISPID_AMBIENT_CHARSET, set karakter sekitar untuk semua kontrol, yang ditentukan oleh kontainer.
HRESULT GetAmbientCharSet(BSTR& bstrCharSet);
Parameter
bstrCharSet
Properti DISPID_AMBIENT_CHARSET.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
CComControlBase::GetAmbientCodePage
Mengambil DISPID_AMBIENT_CODEPAGE, halaman kode sekitar untuk semua kontrol, yang ditentukan oleh kontainer.
HRESULT GetAmbientCodePage(ULONG& ulCodePage);
Parameter
ulCodePage
Properti DISPID_AMBIENT_CODEPAGE.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
CComControlBase::GetAmbientDisplayAsDefault
Mengambil DISPID_AMBIENT_DISPLAYASDEFAULT, bendera true jika kontainer telah menandai kontrol di situs ini menjadi tombol default, dan oleh karena itu kontrol tombol harus menggambar dirinya dengan bingkai yang lebih tebal.
HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);
Parameter
bDisplayAsDefault
Properti DISPID_AMBIENT_DISPLAYASDEFAULT.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientDisplayName
Mengambil DISPID_AMBIENT_DISPLAYNAME, nama kontainer telah diberikan ke kontrol.
HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);
Parameter
bstrDisplayName
Properti DISPID_AMBIENT_DISPLAYNAME.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientFont
Mengambil penunjuk ke antarmuka sekitar IFont kontainer.
HRESULT GetAmbientFont(IFont** ppFont);
Parameter
ppFont
Penunjuk ke antarmuka IFont sekitar kontainer.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
Keterangan
Jika properti adalah NULL, penunjuk adalah NULL. Jika penunjuk bukan NULL, pemanggil harus melepaskan penunjuk.
CComControlBase::GetAmbientFontDisp
Mengambil penunjuk ke antarmuka pengiriman sekitar IFontDisp kontainer.
HRESULT GetAmbientFontDisp(IFontDisp** ppFont);
Parameter
ppFont
Penunjuk ke antarmuka pengiriman IFontDisp sekitar kontainer.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Jika properti adalah NULL, penunjuk adalah NULL. Jika penunjuk bukan NULL, pemanggil harus melepaskan penunjuk.
CComControlBase::GetAmbientForeColor
Mengambil DISPID_AMBIENT_FORECOLOR, warna latar depan sekitar untuk semua kontrol, yang ditentukan oleh kontainer.
HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);
Parameter
ForeColor
Properti DISPID_AMBIENT_FORECOLOR.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientLocaleID
Mengambil DISPID_AMBIENT_LOCALEID, pengidentifikasi bahasa yang digunakan oleh kontainer.
HRESULT GetAmbientLocaleID(LCID& lcid);
Parameter
Icid
Properti DISPID_AMBIENT_LOCALEID.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
Keterangan
Kontrol dapat menggunakan pengidentifikasi ini untuk menyesuaikan antarmuka penggunanya dengan bahasa yang berbeda.
CComControlBase::GetAmbientMessageReflect
Mengambil DISPID_AMBIENT_MESSAGEREFLECT, bendera yang menunjukkan apakah kontainer ingin menerima pesan jendela (seperti WM_DRAWITEM) sebagai peristiwa.
HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);
Parameter
bMessageReflect
Properti DISPID_AMBIENT_MESSAGEREFLECT.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientPalette
Mengambil DISPID_AMBIENT_PALETTE, digunakan untuk mengakses HPALETTE kontainer.
HRESULT GetAmbientPalette(HPALETTE& hPalette);
Parameter
hPalette
Properti DISPID_AMBIENT_PALETTE.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientProperty
Mengambil properti kontainer yang ditentukan oleh dispid.
HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);
Parameter
dispid
Pengidentifikasi properti kontainer yang akan diambil.
var
Variabel untuk menerima properti .
Tampilkan Nilai
Salah satu nilai HRESULT standar.
Keterangan
ATL telah menyediakan serangkaian fungsi pembantu untuk mengambil properti tertentu, misalnya, CComControlBase::GetAmbientBackColor. Jika tidak ada metode yang cocok yang tersedia, gunakan GetAmbientProperty.
CComControlBase::GetAmbientRightToLeft
Mengambil DISPID_AMBIENT_RIGHTTOLEFT, arah di mana konten ditampilkan oleh kontainer.
HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);
Parameter
bRightToLeft
Properti DISPID_AMBIENT_RIGHTTOLEFT. Atur ke TRUE jika konten ditampilkan kanan ke kiri, FALSE jika ditampilkan dari kiri ke kanan.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
CComControlBase::GetAmbientScaleUnits
Mengambil DISPID_AMBIENT_SCALEUNITS, unit sekitar kontainer (seperti inci atau sentimeter) untuk tampilan pelabelan.
HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);
Parameter
bstrScaleUnits
Properti DISPID_AMBIENT_SCALEUNITS.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientShowGrabHandles
Mengambil DISPID_AMBIENT_SHOWGRABHANDLES, bendera yang menunjukkan apakah kontainer memungkinkan kontrol untuk menampilkan handel ambil untuk dirinya sendiri saat aktif.
HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);
Parameter
bShowGrabHandles
Properti DISPID_AMBIENT_SHOWGRABHANDLES.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientShowHatching
Mengambil DISPID_AMBIENT_SHOWHATCHING, bendera yang menunjukkan apakah kontainer memungkinkan kontrol untuk menampilkan dirinya sendiri dengan pola yang ditetaskan ketika antarmuka pengguna kontrol aktif.
HRESULT GetAmbientShowHatching(BOOL& bShowHatching);
Parameter
bShowHatching
Properti DISPID_AMBIENT_SHOWHATCHING.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientSupportsMnemonics
Mengambil DISPID_AMBIENT_SUPPORTSMNEMONICS, bendera yang menunjukkan apakah kontainer mendukung mnemonics keyboard.
HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);
Parameter
bSupportsMnemonics
Properti DISPID_AMBIENT_SUPPORTSMNEMONICS.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientTextAlign
Mengambil DISPID_AMBIENT_TEXTALIGN, perataan teks yang disukai oleh kontainer: 0 untuk perataan umum (angka kanan, teks kiri), 1 untuk perataan kiri, 2 untuk perataan tengah, dan 3 untuk perataan kanan.
HRESULT GetAmbientTextAlign(short& nTextAlign);
Parameter
nTextAlign
Properti DISPID_AMBIENT_TEXTALIGN.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetAmbientTopToBottom
Mengambil DISPID_AMBIENT_TOPTOBOTTOM, arah di mana konten ditampilkan oleh kontainer.
HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);
Parameter
bTopToBottom
Properti DISPID_AMBIENT_TOPTOBOTTOM. Atur ke TRUE jika teks ditampilkan di atas ke bawah, FALSE jika ditampilkan di bawah ke atas.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
CComControlBase::GetAmbientUIDead
Mengambil DISPID_AMBIENT_UIDEAD, bendera yang menunjukkan apakah kontainer ingin kontrol merespons tindakan antarmuka pengguna.
HRESULT GetAmbientUIDead(BOOL& bUIDead);
Parameter
bUIDead
Properti DISPID_AMBIENT_UIDEAD.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
Keterangan
Jika TRUE, kontrol tidak boleh merespons. Bendera ini berlaku terlepas dari bendera DISPID_AMBIENT_USERMODE. Lihat CComControlBase::GetAmbientUserMode.
CComControlBase::GetAmbientUserMode
Mengambil DISPID_AMBIENT_USERMODE, bendera yang menunjukkan apakah kontainer berada dalam mode eksekusi (TRUE) atau mode desain (FALSE).
HRESULT GetAmbientUserMode(BOOL& bUserMode);
Parameter
bUserMode
Properti DISPID_AMBIENT_USERMODE.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
CComControlBase::GetDirty
Mengembalikan nilai anggota m_bRequiresSavedata .
BOOL GetDirty();
Tampilkan Nilai
Mengembalikan nilai m_bRequiresSave anggota data.
Keterangan
Nilai ini diatur menggunakan CComControlBase::SetDirty.
CComControlBase::GetZoomInfo
Mengambil nilai x dan y dari pembilang dan denominator faktor zoom untuk kontrol yang diaktifkan untuk pengeditan di tempat.
void GetZoomInfo(ATL_DRAWINFO& di);
Parameter
di
Struktur yang akan menahan pembilang dan penyebar faktor zoom. Untuk informasi selengkapnya, lihat ATL_DRAWINFO.
Keterangan
Faktor zoom adalah proporsi ukuran alami kontrol hingga tingkatnya saat ini.
CComControlBase::InPlaceActivate
Menyebabkan kontrol beralih dari status tidak aktif ke status apa pun yang ditunjukkan kata kerja di iVerb .
HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect = NULL);
Parameter
iVerb
Nilai yang menunjukkan tindakan yang akan dilakukan oleh IOleObjectImpl::D oVerb.
prcPosRect
Penunjuk ke posisi kontrol di tempat.
Tampilkan Nilai
Salah satu nilai HRESULT standar.
Keterangan
Sebelum aktivasi, metode ini memeriksa bahwa kontrol memiliki situs klien, memeriksa berapa banyak kontrol yang terlihat, dan mendapatkan lokasi kontrol di jendela induk. Setelah kontrol diaktifkan, metode ini mengaktifkan antarmuka pengguna kontrol dan memberi tahu kontainer untuk membuat kontrol terlihat.
Metode ini juga mengambil IOleInPlaceSitepenunjuk antarmuka , , IOleInPlaceSiteExatau IOleInPlaceSiteWindowless untuk kontrol dan menyimpannya di anggota data kelas kontrol CComControlBase::m_spInPlaceSite. Anggota data kelas kontrol CComControlBase::m_bInPlaceSiteEx, CComControlBase::m_bWndLess, CComControlBase::m_bWasOnceWindowless, dan CComControlBase::m_bNegotiatedWnd diatur ke true sebagaimana merujuk.
CComControlBase::InternalGetSite
Panggil metode ini untuk mengkueri situs kontrol untuk penunjuk ke antarmuka yang diidentifikasi.
HRESULT InternalGetSite(REFIID riid, void** ppUnkSite);
Parameter
riid
IID penunjuk antarmuka yang harus dikembalikan di ppUnkSite.
ppUnkSite
Alamat variabel pointer yang menerima pointer antarmuka yang diminta dalam riid.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Jika situs mendukung antarmuka yang diminta dalam riid, penunjuk dikembalikan dengan cara ppUnkSite. Jika tidak, ppUnkSite diatur ke NULL.
CComControlBase::m_bAutoSize
Bendera yang menunjukkan kontrol tidak boleh berukuran lain.
unsigned m_bAutoSize:1;
Keterangan
Bendera ini diperiksa oleh IOleObjectImpl::SetExtent dan, jika TRUE, menyebabkan fungsi mengembalikan E_FAIL.
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Jika Anda menambahkan opsi Ukuran Otomatis pada tab Properti Stok pada Wizard Kontrol ATL, wizard secara otomatis membuat anggota data ini di kelas kontrol Anda, membuat metode put dan get untuk properti, dan mendukung IPropertyNotifySink untuk secara otomatis memberi tahu kontainer saat properti berubah.
CComControlBase::m_bDrawFromNatural
Bendera yang menunjukkan bahwa IDataObjectImpl::GetData dan CComControlBase::GetZoomInfo harus mengatur ukuran kontrol dari m_sizeNatural bukan dari m_sizeExtent.
unsigned m_bDrawFromNatural:1;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bDrawGetDataInHimetric
Bendera yang menunjukkan bahwa IDataObjectImpl::GetData harus menggunakan unit HIMETRIC dan bukan piksel saat menggambar.
unsigned m_bDrawGetDataInHimetric:1;
Keterangan
Setiap unit HIMETRIC logis adalah 0,01 milimeter.
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bInPlaceActive
Bendera yang menunjukkan kontrol aktif di tempat.
unsigned m_bInPlaceActive:1;
Keterangan
Ini berarti kontrol terlihat dan jendelanya, jika ada, terlihat, tetapi menu dan bilah alatnya mungkin tidak aktif. m_bUIActive Bendera menunjukkan antarmuka pengguna kontrol, seperti menu, juga aktif.
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bInPlaceSiteEx
Bendera yang menunjukkan kontainer mendukung IOleInPlaceSiteEx antarmuka dan fitur kontrol OCX96, seperti kontrol tanpa jendela dan bebas kedap udara.
unsigned m_bInPlaceSiteEx:1;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Anggota m_spInPlaceSite data menunjuk ke antarmuka IOleInPlaceSite, IOleInPlaceSiteEx, atau IOleInPlaceSiteWindowless , tergantung pada nilai m_bWndLess bendera dan m_bInPlaceSiteEx . (Anggota m_bNegotiatedWnd data harus TRUE agar m_spInPlaceSite pointer valid.)
Jika m_bWndLess FALSE dan m_bInPlaceSiteEx TRUE, m_spInPlaceSite adalah IOleInPlaceSiteEx penunjuk antarmuka. Lihat m_spInPlaceSite untuk tabel yang memperlihatkan hubungan di antara ketiga anggota data ini.
CComControlBase::m_bNegotiatedWnd
Bendera yang menunjukkan apakah kontrol telah dinegosiasikan dengan kontainer tentang dukungan untuk fitur kontrol OCX96 (seperti kontrol tanpa jendela dan bebas jendela), dan apakah kontrol berjendela atau tanpa jendela.
unsigned m_bNegotiatedWnd:1;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Bendera m_bNegotiatedWnd harus TRUE agar penunjuk m_spInPlaceSite valid.
CComControlBase::m_bRecomposeOnResize
Bendera yang menunjukkan kontrol ingin menyusun ulang presentasinya ketika kontainer mengubah ukuran tampilan kontrol.
unsigned m_bRecomposeOnResize:1;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Bendera ini diperiksa oleh IOleObjectImpl::SetExtent dan, jika TRUE, SetExtent memberi tahu kontainer perubahan tampilan. jika bendera ini diatur, OLEMISC_RECOMPOSEONRESIZE bit dalam enumerasi OLEMISC juga harus diatur.
CComControlBase::m_bRequiresSave
Bendera yang menunjukkan kontrol telah berubah sejak terakhir disimpan.
unsigned m_bRequiresSave:1;
Keterangan
Nilai m_bRequiresSave dapat diatur dengan CComControlBase::SetDirty dan diambil dengan CComControlBase::GetDirty.
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bResizeNatural
Bendera yang menunjukkan kontrol ingin mengubah ukuran tingkat alaminya (ukuran fisiknya yang tidak diskalakan) ketika kontainer mengubah ukuran tampilan kontrol.
unsigned m_bResizeNatural:1;
Keterangan
Bendera ini diperiksa oleh IOleObjectImpl::SetExtent dan, jika TRUE, ukuran yang diteruskan ke SetExtent ditetapkan ke m_sizeNatural.
Ukuran yang diteruskan ke SetExtent selalu ditetapkan ke m_sizeExtent, terlepas dari m_bResizeNaturalnilai .
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bUIActive
Bendera yang menunjukkan antarmuka pengguna kontrol, seperti menu dan toolbar, aktif.
unsigned m_bUIActive:1;
Keterangan
Bendera m_bInPlaceActive menunjukkan bahwa kontrol aktif, tetapi tidak bahwa antarmuka penggunanya aktif.
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bUsingWindowRgn
Bendera yang menunjukkan kontrol menggunakan wilayah jendela yang disediakan kontainer.
unsigned m_bUsingWindowRgn:1;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bWasOnceWindowless
Bendera yang menunjukkan kontrol telah tanpa jendela, tetapi mungkin atau mungkin tidak tanpa jendela sekarang.
unsigned m_bWasOnceWindowless:1;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bWindowOnly
Bendera yang menunjukkan kontrol harus berjendela, bahkan jika kontainer mendukung kontrol tanpa jendela.
unsigned m_bWindowOnly:1;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_bWndLess
Bendera yang menunjukkan kontrol tidak berjendela.
unsigned m_bWndLess:1;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Anggota data menunjuk ke antarmuka IOleInPlaceSite, IOleInPlaceSiteEx, atau IOleInPlaceSiteWindowless, tergantung pada nilai m_bWndLess dan bendera CComControlBase::m_bInPlaceSiteEx.m_spInPlaceSite (Anggota dataCComControlBase::m_bNegotiatedWnd harus TRUE agar penunjuk CComControlBase::m_spInPlaceSite valid.)
Jika m_bWndLess TRUE, m_spInPlaceSite adalah IOleInPlaceSiteWindowless penunjuk antarmuka. Lihat CComControlBase::m_spInPlaceSite untuk tabel yang memperlihatkan hubungan lengkap antara anggota data ini.
CComControlBase::m_hWndCD
Berisi referensi ke handel jendela yang terkait dengan kontrol.
HWND& m_hWndCD;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_nFreezeEvents
Hitungan berapa kali kontainer telah membekukan peristiwa (menolak menerima peristiwa) tanpa pencairan peristiwa yang mengintervensi (penerimaan peristiwa).
short m_nFreezeEvents;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_rcPos
Posisi dalam piksel kontrol, dinyatakan dalam koordinat kontainer.
RECT m_rcPos;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_sizeExtent
Tingkat kontrol dalam unit HIMETRIC (setiap unit adalah 0,01 milimeter) untuk tampilan tertentu.
SIZE m_sizeExtent;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Ukuran ini diskalakan oleh tampilan. Ukuran fisik kontrol ditentukan dalam m_sizeNatural anggota data dan diperbaiki.
Anda dapat mengonversi ukuran menjadi piksel dengan fungsi global AtlHiMetricToPixel.
CComControlBase::m_sizeNatural
Ukuran fisik kontrol dalam unit HIMETRIC (setiap unit adalah 0,01 milimeter).
SIZE m_sizeNatural;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Ukuran ini diperbaiki, sementara ukuran dalam diskalakan m_sizeExtent oleh tampilan.
Anda dapat mengonversi ukuran menjadi piksel dengan fungsi global AtlHiMetricToPixel.
CComControlBase::m_spAdviseSink
Penunjuk langsung ke koneksi penasihat pada kontainer (IAdviseSink kontainer).
CComPtr<IAdviseSink>
m_spAdviseSink;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_spAmbientDispatch
Objek CComDispatchDriver yang memungkinkan Anda mengambil dan mengatur properti objek melalui penunjuk IDispatch .
CComDispatchDriver m_spAmbientDispatch;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_spClientSite
Penunjuk ke situs klien kontrol dalam kontainer.
CComPtr<IOleClientSite>
m_spClientSite;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
CComControlBase::m_spDataAdviseHolder
Menyediakan sarana standar untuk menyimpan koneksi saran antara objek data dan menyarankan sink.
CComPtr<IDataAdviseHolder>
m_spDataAdviseHolder;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Objek data adalah kontrol yang dapat mentransfer data dan yang mengimplementasikan IDataObject, yang metodenya menentukan format dan media transfer data.
Antarmuka m_spDataAdviseHolder mengimplementasikan metode IDataObject::D Advise dan IDataObject::D Unadvise untuk membuat dan menghapus koneksi saran ke kontainer. Kontainer kontrol harus menerapkan sink saran dengan mendukung antarmuka IAdviseSink .
CComControlBase::m_spInPlaceSite
Pointer ke penunjuk antarmuka IOleInPlaceSite, IOleInPlaceSiteEx, atau IOleInPlaceSiteWindowless kontainer.
CComPtr<IOleInPlaceSiteWindowless>
m_spInPlaceSite;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Penunjuk m_spInPlaceSite hanya valid jika bendera m_bNegotiatedWnd TRUE.
Tabel berikut ini memperlihatkan bagaimana m_spInPlaceSite jenis penunjuk bergantung pada bendera anggota data m_bWndLess dan m_bInPlaceSiteEx :
| Jenis m_spInPlaceSite | Nilai m_bWndLess | Nilai m_bInPlaceSiteEx |
|---|---|---|
IOleInPlaceSiteWindowless |
BENAR | TRUE atau FALSE |
IOleInPlaceSiteEx |
SALAH | BENAR |
IOleInPlaceSite |
SALAH | SALAH |
CComControlBase::m_spOleAdviseHolder
Menyediakan implementasi standar dari cara untuk menyimpan koneksi saran.
CComPtr<IOleAdviseHolder>
m_spOleAdviseHolder;
Keterangan
Catatan
Untuk menggunakan anggota data ini dalam kelas kontrol, Anda harus mendeklarasikannya sebagai anggota data di kelas kontrol Anda. Kelas kontrol Anda tidak akan mewarisi anggota data ini dari kelas dasar karena dinyatakan dalam serikat di kelas dasar.
Antarmuka m_spOleAdviseHolder mengimplementasikan metode IOleObject::Advise dan IOleObject::Unadvise untuk membuat dan menghapus koneksi saran ke kontainer. Kontainer kontrol harus menerapkan sink saran dengan mendukung antarmuka IAdviseSink .
CComControlBase::OnDraw
Ambil alih metode ini untuk menggambar kontrol Anda.
virtual HRESULT OnDraw(ATL_DRAWINFO& di);
Parameter
di
Referensi ke struktur ATL_DRAWINFO yang berisi informasi gambar seperti aspek gambar, batas kontrol, dan apakah gambar dioptimalkan atau tidak.
Tampilkan Nilai
Nilai HRESULT standar.
Keterangan
Default OnDraw menghapus atau memulihkan konteks perangkat atau tidak melakukan apa pun, tergantung pada bendera yang diatur di CComControlBase::OnDrawAdvanced.
Metode OnDraw secara otomatis ditambahkan ke kelas kontrol Saat Anda membuat kontrol dengan Wizard Kontrol ATL. Default wizard OnDraw menggambar persegi panjang dengan label "ATL 8.0".
Contoh
Lihat contoh untuk CComControlBase::GetAmbientAppearance.
CComControlBase::OnDrawAdvanced
Default OnDrawAdvanced menyiapkan konteks perangkat yang dinormalisasi untuk menggambar, lalu memanggil metode kelas OnDraw kontrol Anda.
virtual HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);
Parameter
di
Referensi ke struktur ATL_DRAWINFO yang berisi informasi gambar seperti aspek gambar, batas kontrol, dan apakah gambar dioptimalkan atau tidak.
Tampilkan Nilai
Nilai HRESULT standar.
Keterangan
Ambil alih metode ini jika Anda ingin menerima konteks perangkat yang diteruskan oleh kontainer tanpa menormalkannya.
Lihat CComControlBase::OnDraw untuk detail selengkapnya.
CComControlBase::OnKillFocus
Memeriksa apakah kontrol aktif di tempat dan memiliki situs kontrol yang valid, lalu memberi tahu kontainer bahwa kontrol telah kehilangan fokus.
LRESULT OnKillFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Parameter
nMsg
Dicadangkan.
wParam
Dicadangkan.
lParam
Dicadangkan.
bHandled
Bendera yang menunjukkan apakah pesan jendela berhasil ditangani. Defaultnya adalah FALSE.
Tampilkan Nilai
Selalu mengembalikan 1.
CComControlBase::OnMouseActivate
Memeriksa apakah UI berada dalam mode pengguna, lalu mengaktifkan kontrol.
LRESULT OnMouseActivate(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Parameter
nMsg
Dicadangkan.
wParam
Dicadangkan.
lParam
Dicadangkan.
bHandled
Bendera yang menunjukkan apakah pesan jendela berhasil ditangani. Defaultnya adalah FALSE.
Tampilkan Nilai
Selalu mengembalikan 1.
CComControlBase::OnPaint
Menyiapkan kontainer untuk pengecatan, mendapatkan area klien kontrol, lalu memanggil metode kelas OnDrawAdvanced kontrol.
LRESULT OnPaint(UINT /* nMsg */,
WPARAM wParam,
LPARAM /* lParam */,
BOOL& /* lResult */);
Parameter
nMsg
Dicadangkan.
wParam
HDC yang ada.
lParam
Dicadangkan.
lResult
Dicadangkan.
Tampilkan Nilai
Selalu mengembalikan nol.
Keterangan
Jika wParam bukan NULL, OnPaint asumsikan bahwa wParam berisi HDC yang valid dan menggunakannya alih-alih CComControlBase::m_hWndCD.
CComControlBase::OnSetFocus
Memeriksa apakah kontrol aktif di tempat dan memiliki situs kontrol yang valid, lalu memberi tahu kontainer bahwa kontrol telah mendapatkan fokus.
LRESULT OnSetFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Parameter
nMsg
Dicadangkan.
wParam
Dicadangkan.
lParam
Dicadangkan.
bHandled
Bendera yang menunjukkan apakah pesan jendela berhasil ditangani. Defaultnya adalah FALSE.
Tampilkan Nilai
Selalu mengembalikan 1.
Keterangan
Mengirim pemberitahuan ke kontainer bahwa kontrol telah menerima fokus.
CComControlBase::P reTranslateAccelerator
Ambil alih metode ini untuk menyediakan handler akselerator keyboard Anda sendiri.
BOOL PreTranslateAccelerator(LPMSG /* pMsg */,
HRESULT& /* hRet */);
Parameter
pMsg
Dicadangkan.
hRet
Dicadangkan.
Tampilkan Nilai
Secara default mengembalikan FALSE.
CComControlBase::SendOnClose
Memberi tahu semua sink penasihat yang terdaftar di pemegang saran bahwa kontrol telah ditutup.
HRESULT SendOnClose();
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Mengirim pemberitahuan bahwa kontrol telah menutup sink penasihatnya.
CComControlBase::SendOnDataChange
Memberi tahu semua sink penasihat yang terdaftar di pemegang saran bahwa data kontrol telah berubah.
HRESULT SendOnDataChange(DWORD advf = 0);
Parameter
advf
Sarankan bendera yang menentukan bagaimana panggilan ke IAdviseSink::OnDataChange dilakukan. Nilai berasal dari enumerasi ADVF .
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
CComControlBase::SendOnRename
Memberi tahu semua sink penasihat yang terdaftar di pemegang saran bahwa kontrol memiliki moniker baru.
HRESULT SendOnRename(IMoniker* pmk);
Parameter
pmk
Arahkan ke moniker baru kontrol.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Mengirim pemberitahuan bahwa moniker untuk kontrol telah berubah.
CComControlBase::SendOnSave
Memberi tahu semua sink penasihat yang terdaftar di pemegang saran bahwa kontrol telah disimpan.
HRESULT SendOnSave();
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Mengirim pemberitahuan bahwa kontrol baru saja menyimpan datanya.
CComControlBase::SendOnViewChange
Memberi tahu semua sink saran terdaftar bahwa tampilan kontrol telah berubah.
HRESULT SendOnViewChange(DWORD dwAspect, LONG lindex = -1);
Parameter
dwAspect
Aspek atau tampilan kontrol.
lindex
Bagian tampilan yang telah berubah. Hanya -1 yang valid.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
SendOnViewChangememanggil IAdviseSink::OnViewChange. Satu-satunya nilai lindex yang saat ini didukung adalah -1, yang menunjukkan bahwa seluruh tampilan menarik.
CComControlBase::SetControlFocus
Mengatur atau menghapus fokus keyboard ke atau dari kontrol.
BOOL SetControlFocus(BOOL bGrab);
Parameter
bGrab
Jika TRUE, mengatur fokus keyboard ke kontrol panggilan. Jika FALSE, menghapus fokus keyboard dari kontrol panggilan, asalkan memiliki fokus.
Tampilkan Nilai
Mengembalikan TRUE jika kontrol berhasil menerima fokus; jika tidak, FALSE.
Keterangan
Untuk kontrol berjendela, fungsi Windows API SetFocus dipanggil. Untuk kontrol tanpa jendela, IOleInPlaceSiteWindowless::SetFocus dipanggil. Melalui panggilan ini, kontrol tanpa jendela mendapatkan fokus keyboard dan dapat merespons pesan jendela.
CComControlBase::SetDirty
Mengatur anggota m_bRequiresSave data ke nilai dalam bDirty.
void SetDirty(BOOL bDirty);
Parameter
bDirty
Nilai anggota data CComControlBase::m_bRequiresSave.
Keterangan
SetDirty(TRUE) harus dipanggil untuk menandai bahwa kontrol telah berubah sejak terakhir disimpan. Nilai m_bRequiresSave diambil dengan CComControlBase::GetDirty.