Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu sınıf IViewObject, IViewObject2 ve IViewObjectEx arabirimlerinin varsayılan uygulamalarını uygular IUnknown ve sağlar.
Önemli
Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
Sözdizimi
template<class T>
class ATL_NO_VTABLE IViewObjectExImpl
: public IViewObjectEx
Parametreler
T
sınıfından IViewObjectExImpltüretilen sınıfınız.
Üyeler
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| IViewObjectExImpl::D raw | Denetimin bir gösterimini bir cihaz bağlamı üzerine çizer. |
| IViewObjectExImpl::Freeze | Denetimin çizilmiş gösterimini dondurarak bir olana kadar Unfreezedeğişmesini sağlar. ATL uygulaması E_NOTIMPL döndürür. |
| IViewObjectExImpl::GetAdvise | Varsa, denetimde mevcut bir öneri havuzu bağlantısını alır. |
| IViewObjectExImpl::GetColorSet | Denetim tarafından çizim için kullanılan mantıksal paleti döndürür. ATL uygulaması E_NOTIMPL döndürür. |
| IViewObjectExImpl::GetExtent | Denetim sınıfı veri üyesi CComControlBase::m_sizeExtent'ndan denetimin görüntü boyutunu HIMETRIC birimlerinde (birim başına 0,01 milimetre) alır. |
| IViewObjectExImpl::GetNaturalExtent | Kullanıcı yeniden boyutlandırırken kullanılacak nesne için kapsayıcıdan boyutlandırma ipuçları sağlar. |
| IViewObjectExImpl::GetRect | İstenen çizim yönünü açıklayan bir dikdörtgen döndürür. ATL uygulaması E_NOTIMPL döndürür. |
| IViewObjectExImpl::GetViewStatus | Nesnenin opaklığı ve hangi çizim yönlerinin desteklendiği hakkında bilgi döndürür. |
| IViewObjectExImpl::QueryHitPoint | Belirtilen noktanın belirtilen dikdörtgende olup olmadığını denetler ve içinde pHitResultbir HITRESULT değeri döndürür. |
| IViewObjectExImpl::QueryHitRect | Denetimin görüntü dikdörtgeninin belirtilen konum dikdörtgenindeki herhangi bir noktayla çakışıp çakışmadığını denetler ve içinde pHitResultbir HITRESULT değeri döndürür. |
| IViewObjectExImpl::SetAdvise | Havuza denetimin görünümündeki değişiklikler hakkında bildirim almak için denetim ile öneri havuzu arasında bir bağlantı ayarlar. |
| IViewObjectExImpl::Unfreeze | Denetimin çizilmiş gösterimini çözer. ATL uygulaması E_NOTIMPL döndürür. |
Açıklamalar
IViewObject, IViewObject2 ve IViewObjectEx arabirimleri, denetimin kendisini doğrudan görüntülemesine ve kapsayıcıya denetim görüntüsündeki değişiklikleri bildirmek için bir öneri havuzu oluşturup yönetmesine olanak tanır. Arabirim, IViewObjectEx titreşimsiz çizim, dikdörtgen olmayan ve saydam denetimler ve isabet testi gibi genişletilmiş denetim özellikleri için destek sağlar (örneğin, denetimde fare tıklamasının ne kadar yakın olması gerektiği). Sınıfı IViewObjectExImpl , bu arabirimlerin varsayılan uygulamasını sağlar ve hata ayıklama derlemelerinde IUnknown döküm cihazına bilgi göndererek uygular.
Devralma Hiyerarşisi
IViewObjectEx
IViewObjectExImpl
Gereksinimler
Üst bilgi: atlctl.h
IViewObjectExImpl::D raw
Denetimin bir gösterimini bir cihaz bağlamı üzerine çizer.
STDMETHOD(Draw)(
DWORD dwDrawAspect,
LONG lindex,
void* pvAspect,
DVTARGETDEVICE* ptd,
HDC hicTargetDev,
LPCRECTL prcBounds,
LPCRECTL prcWBounds,
BOOL(_stdcall* /* pfnContinue*/) (DWORD_PTR dwContinue),
DWORD_PTR /* dwContinue */);
Açıklamalar
Bu yöntem, denetim sınıfınızın OnDraw yöntemini çağıran öğesini çağırırCComControl::OnDrawAdvanced. ATL Denetim Sihirbazı ile denetiminizi oluşturduğunuzda denetim sınıfınıza otomatik olarak bir OnDraw yöntem eklenir. Sihirbazın varsayılan ayarı OnDraw "ATL 3.0" etiketine sahip bir dikdörtgen çizer.
Bkz . Windows SDK'sında IViewObject::D raw .
IViewObjectExImpl::Freeze
Denetimin çizilmiş gösterimini dondurarak bir olana kadar Unfreezedeğişmesini sağlar. ATL uygulaması E_NOTIMPL döndürür.
STDMETHOD(Freeze)(
DWORD /* dwAspect */,
LONG /* lindex */,
void* /* pvAspect */,
DWORD* /* pdwFreeze */);
Açıklamalar
Bkz . Windows SDK'sında IViewObject::Freeze .
IViewObjectExImpl::GetAdvise
Varsa, denetimde mevcut bir öneri havuzu bağlantısını alır.
STDMETHOD(GetAdvise)(
DWORD* /* pAspects */,
DWORD* /* pAdvf */,
IAdviseSink** /* ppAdvSink */);
Açıklamalar
Danışmanlık havuzu, denetim sınıfı veri üyesi CComControlBase::m_spAdviseSink içinde depolanır.
Bkz . Windows SDK'sında IViewObject::GetAdvise .
IViewObjectExImpl::GetColorSet
Denetim tarafından çizim için kullanılan mantıksal paleti döndürür. ATL uygulaması E_NOTIMPL döndürür.
STDMETHOD(GetColorSet)(
DWORD /* dwAspect */,
LONG /* lindex */,
void* /* pvAspect */,
DVTARGETDEVICE* /* ptd */,
HDC /* hicTargetDevice */,
LOGPALETTE** /* ppColorSet */);
Açıklamalar
Bkz . Windows SDK'sında IViewObject::GetColorSet .
IViewObjectExImpl::GetExtent
Denetim sınıfı veri üyesi CComControlBase::m_sizeExtent'ndan denetimin görüntü boyutunu HIMETRIC birimlerinde (birim başına 0,01 milimetre) alır.
STDMETHOD(GetExtent)(
DWORD /* dwDrawAspect */,
LONG /* lindex */,
DVTARGETDEVICE* /* ptd */,
LPSIZEL* lpsizel);
Açıklamalar
Bkz . Windows SDK'sında IViewObject2::GetExtent .
IViewObjectExImpl::GetNaturalExtent
Kullanıcı yeniden boyutlandırırken kullanılacak nesne için kapsayıcıdan boyutlandırma ipuçları sağlar.
STDMETHOD(GetNaturalExtent)(
DWORD dwAspect,
LONG /* lindex */,
DVTARGETDEVICE* /* ptd */,
HDC /* hicTargetDevice */,
DVEXTENTINFO* pExtentInfo,
LPSIZEL psizel);
Açıklamalar
dwAspect DVASPECT_CONTENT ve pExtentInfo-dwExtentMode> DVEXTENT_CONTENT ise, * psizel değerini denetim sınıfının CComControlBase::m_sizeNatural veri üyesine ayarlar. Aksi takdirde, HRESULT hatası döndürür.
Bkz . Windows SDK'sında IViewObjectEx::GetNaturalExtent .
IViewObjectExImpl::GetRect
İstenen çizim yönünü açıklayan bir dikdörtgen döndürür. ATL uygulaması E_NOTIMPL döndürür.
STDMETHOD(GetRect)(DWORD /* dwAspect */, LPRECTL /* pRect */);
Açıklamalar
Bkz . Windows SDK'sında IViewObjectEx::GetRect .
IViewObjectExImpl::GetViewStatus
Nesnenin opaklığı ve hangi çizim yönlerinin desteklendiği hakkında bilgi döndürür.
STDMETHOD(GetViewStatus)(DWORD* pdwStatus);
Açıklamalar
Varsayılan olarak, ATL denetimin VIEWSTATUS_OPAQUE desteklediğini belirtmek için ayarlar pdwStatus (olası değerler VIEWSTATUS numaralandırmasındadır).
Bkz . Windows SDK'sında IViewObjectEx::GetViewStatus .
IViewObjectExImpl::QueryHitPoint
Belirtilen noktanın belirtilen dikdörtgende olup olmadığını denetler ve içinde pHitResultbir HITRESULT değeri döndürür.
STDMETHOD(QueryHitPoint)(
DWORD dwAspect,
LPCRECT pRectBounds,
POINT ptlLoc,
LONG /* lCloseHit */,
DWORD* /* pHitResult */);
Açıklamalar
Değer HITRESULT_HIT veya HITRESULT_OUTSIDE olabilir.
DVASPECT_CONTENT eşitse dwAspect yöntemi S_OK döndürür. Aksi takdirde yöntemi E_FAIL döndürür.
Bkz . Windows SDK'sında IViewObjectEx::QueryHitPoint .
IViewObjectExImpl::QueryHitRect
Denetimin görüntü dikdörtgeninin belirtilen konum dikdörtgenindeki herhangi bir noktayla çakışıp çakışmadığını denetler ve içinde pHitResultbir HITRESULT değeri döndürür.
STDMETHOD(QueryHitRect)(
DWORD dwAspect,
LPCRECT pRectBounds,
LPRECT prcLoc,
LONG /* lCloseHit */,
DWORD* /* pHitResult */);
Açıklamalar
Değer HITRESULT_HIT veya HITRESULT_OUTSIDE olabilir.
DVASPECT_CONTENT eşitse dwAspect yöntemi S_OK döndürür. Aksi takdirde yöntemi E_FAIL döndürür.
Bkz . Windows SDK'sında IViewObjectEx::QueryHitRect .
IViewObjectExImpl::SetAdvise
Havuza denetimin görünümündeki değişiklikler hakkında bildirim almak için denetim ile öneri havuzu arasında bir bağlantı ayarlar.
STDMETHOD(SetAdvise)(
DWORD /* aspects */,
DWORD /* advf */,
IAdviseSink* pAdvSink);
Açıklamalar
Öneri havuzundaki IAdviseSink arabiriminin işaretçisi, denetim sınıfı veri üyesi CComControlBase::m_spAdviseSink içinde depolanır.
Bkz . Windows SDK'sında IViewObject::SetAdvise .
IViewObjectExImpl::Unfreeze
Denetimin çizilmiş gösterimini çözer. ATL uygulaması E_NOTIMPL döndürür.
STDMETHOD(Unfreeze)(DWORD /* dwFreeze */);
Açıklamalar
Bkz . Windows SDK'sında IViewObject::Unfreeze .
IWorkerThreadClient::CloseHandle
Bu nesneyle ilişkili tanıtıcıyı kapatmak için bu yöntemi uygulayın.
HRESULT CloseHandle(HANDLE hHandle);
Parametreler
hHandle
Kapatılacak tanıtıcı.
Dönüş Değeri
Başarı durumunda S_OK veya hatada HRESULT hatası döndür.
Açıklamalar
Bu yönteme geçirilen tanıtıcı daha önce CWorkerThread::AddHandle çağrısıyla bu nesneyle ilişkilendirildi.
Örnek
Aşağıdaki kod basit bir uygulamasını IWorkerThreadClient::CloseHandlegösterir.
HRESULT CloseHandle(HANDLE hObject)
{
// Users should do any shutdown operation required here.
// Generally, this means just closing the handle.
if (!::CloseHandle(hObject))
{
// Closing the handle failed for some reason.
return AtlHresultFromLastError();
}
return S_OK;
}
IWorkerThreadClient::Execute
Bu nesneyle ilişkili tanıtıcı işaretlendiğinde kodu yürütmek için bu yöntemi uygulayın.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
Parametreler
dwParam
Kullanıcı parametresi.
hObject
İşaretlenen tanıtıcı.
Dönüş Değeri
Başarı durumunda S_OK veya hatada HRESULT hatası döndür.
Açıklamalar
Bu yönteme geçirilen tanıtıcı ve DWORD/işaretçisi daha önce CWorkerThread::AddHandle çağrısıyla bu nesneyle ilişkilendirildi.
Örnek
Aşağıdaki kod basit bir uygulamasını IWorkerThreadClient::Executegösterir.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject)
{
// Cast the parameter to its known type.
LONG* pn = reinterpret_cast<LONG*>(dwParam);
// Increment the LONG.
LONG n = InterlockedIncrement(pn);
// Log the results.
printf_s("Handle 0x%08X incremented value to : %d\n", (DWORD_PTR)hObject, n);
return S_OK;
}
Ayrıca bkz.
CComControl Sınıfı
ActiveX Denetimleri Arabirimleri
Öğretici
ATL Projesi Oluşturma
Sınıfa Genel Bakış