Bagikan melalui


Kelas CComControlBase

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.

Lihat juga

Kelas CComControl
Gambaran Umum Kelas