Olay İç Havuz Eşlemeleri
Katıştırılmış OLE denetimi bir olayı tetiklediğinde, denetimin kapsayıcısı olayı MFC tarafından sağlanan "olay havuzu eşlemesi" adlı bir mekanizma kullanarak alır. Bu olay havuzu eşlemesi, her bir olay için işleyici işlevlerinin yanı sıra bu olayların parametrelerini belirler. Olay havuzu eşlemeleri hakkında daha fazla bilgi için ActiveX Denetim Kapsayıcıları makalesine bakın.
Olay İç Havuz Eşlemeleri
Veri Akışı Adı | Açıklama |
---|---|
BEGIN_EVENTSINK_MAP | Olay havuzu eşlemesinin tanımını başlatır. |
DECLARE_EVENTSINK_MAP | Olay havuzu eşlemesi bildirir. |
END_EVENTSINK_MAP | Olay havuzu eşlemesinin tanımını sonlandırır. |
ON_EVENT | Belirli bir olay için olay işleyicisi tanımlar. |
ON_EVENT_RANGE | Bir dizi OLE denetiminden tetiklenen belirli bir olay için olay işleyicisi tanımlar. |
ON_EVENT_REFLECT | Denetimin kapsayıcısı tarafından işlenmeden önce denetim tarafından tetiklenen olayları alır. |
ON_PROPNOTIFY | OLE denetiminden özellik bildirimlerini işlemek için bir işleyici tanımlar. |
ON_PROPNOTIFY_RANGE | Bir OLE denetimleri kümesinden özellik bildirimlerini işlemek için bir işleyici tanımlar. |
ON_PROPNOTIFY_REFLECT | Denetimin kapsayıcısı tarafından işlenmeden önce denetim tarafından gönderilen özellik bildirimlerini alır. |
BEGIN_EVENTSINK_MAP
Olay havuzu haritanızın tanımını başlatır.
BEGIN_EVENTSINK_MAP(theClass, baseClass)
Parametreler
theClass
Olay havuzu eşlemesi bu olan denetim sınıfının adını belirtir.
baseClass
Class'ın temel sınıfının adını belirtir.
Açıklamalar
Sınıfınızın üye işlevlerini tanımlayan uygulama (.cpp) dosyasında, olay havuzu eşlemesini BEGIN_EVENTSINK_MAP makroyla başlatın, ardından bildirilecek her olay için makro girdileri ekleyin ve olay havuzu eşlemesini END_EVENTSINK_MAP makroyla tamamlayın.
Olay havuzu eşlemeleri ve OLE denetim kapsayıcıları hakkında daha fazla bilgi için ActiveX Denetim Kapsayıcıları makalesine bakın.
Gereksinimler
Üst bilgi afxdisp.h
DECLARE_EVENTSINK_MAP
OLE kapsayıcısı, kapsayıcınızın bildirileceği olayları belirtmek için bir olay havuzu eşlemesi sağlayabilir.
DECLARE_EVENTSINK_MAP()
Açıklamalar
Sınıf bildiriminizin sonundaki DECLARE_EVENTSINK_MAP makroyu kullanın. Ardından, içinde. Sınıfın üye işlevlerini tanımlayan CPP dosyası, BEGIN_EVENTSINK_MAP makroyu, bildirilecek olayların her biri için makro girdilerini ve olay havuzu listesinin sonunu bildirmek için END_EVENTSINK_MAP makroyu kullanın.
Olay havuzu eşlemeleri hakkında daha fazla bilgi için ActiveX Denetim Kapsayıcıları makalesine bakın.
Gereksinimler
Üst bilgi afxwin.h
END_EVENTSINK_MAP
Olay havuzu haritanızın tanımını sonlandırır.
END_EVENTSINK_MAP()
Gereksinimler
Üst bilgi afxdisp.h
ON_EVENT
OLE denetimi tarafından tetiklenen bir olay için olay işleyici işlevi tanımlamak için ON_EVENT makroyu kullanın.
ON_EVENT(theClass, id, dispid, pfnHandler, vtsParams)
Parametreler
theClass
Bu olay havuzu eşlemesinin ait olduğu sınıf.
id
OLE denetiminin denetim kimliği.
dispid
Denetim tarafından tetiklenen olayın dağıtım kimliği.
pfnHandler
Olayı işleyen üye işlevinin işaretçisi. Bu işlevin bir BOOL dönüş türü ve olayın parametreleriyle eşleşen parametre türleri olmalıdır (bkz . vtsParams). İşlev, olayın işleneceğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
vtsParams
Olay için parametre türlerini belirten VTS_ sabitleri dizisi. Bunlar, DISP_FUNCTION gibi dağıtım eşleme girişlerinde kullanılan sabitlerle aynıdır.
Açıklamalar
vtsParams bağımsız değişkeni, VTS_ sabitlerindeki değerlerin boşlukla ayrılmış bir listesidir. Bu değerlerden biri veya daha fazlası boşluklarla (virgülle değil) ayrılmış olarak işlevin parametre listesini belirtir. Örneğin:
VTS_I2 VTS_BOOL
kısa bir tamsayı ve ardından bool içeren bir liste belirtir.
VTS_ sabitlerinin listesi için bkz. EVENT_CUSTOM.
Gereksinimler
Üst bilgi afxdisp.h
ON_EVENT_RANGE
ON_EVENT_RANGE makroyu kullanarak, bitişik bir kimlik aralığında denetim kimliğine sahip herhangi bir OLE denetimi tarafından tetiklenen bir olay için olay işleyici işlevi tanımlayın.
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams)
Parametreler
theClass
Bu olay havuzu eşlemesinin ait olduğu sınıf.
idFirst
Aralıktaki ilk OLE denetiminin denetim kimliği.
idLast
Aralıktaki son OLE denetiminin denetim kimliği.
dispid
Denetim tarafından tetiklenen olayın dağıtım kimliği.
pfnHandler
Olayı işleyen üye işlevinin işaretçisi. Bu işlevin bir BOOL dönüş türü, UINT türünde ilk parametresi (denetim kimliği için) ve olayın parametreleriyle eşleşen ek parametre türleri olmalıdır (bkz . vtsParams). İşlev, olayın işleneceğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
vtsParams
Olay için parametre türlerini belirten VTS_ sabitleri dizisi. İlk sabit, denetim kimliği için VTS_I4 türünde olmalıdır. Bunlar, DISP_FUNCTION gibi dağıtım eşleme girişlerinde kullanılan sabitlerle aynıdır.
Açıklamalar
vtsParams bağımsız değişkeni, VTS_ sabitlerindeki değerlerin boşlukla ayrılmış bir listesidir. Bu değerlerden biri veya daha fazlası boşluklarla (virgülle değil) ayrılmış olarak işlevin parametre listesini belirtir. Örneğin:
VTS_I2 VTS_BOOL
kısa bir tamsayı ve ardından bool içeren bir liste belirtir.
VTS_ sabitlerinin listesi için bkz. EVENT_CUSTOM.
Örnek
Aşağıdaki örnekte, üç denetim (IDC_MYCTRL3 aracılığıyla IDC_MYCTRL1) için uygulanan MouseDown olayı için bir olay işleyicisi gösterilmektedir. olay işleyici işlevi, OnRangeMouseDown
iletişim kutusunun üst bilgi dosyasında ( CMyDlg
) şöyle bildirilir:
BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
long x, long y);
Aşağıdaki kod, iletişim kutusunun uygulama dosyasında tanımlanır.
BEGIN_EVENTSINK_MAP(CMyDlg, CDialog)
ON_EVENT_RANGE(CMyDlg, IDC_MYCTRL1, IDC_MYCTRL3, -605, OnRangeMouseDown,
VTS_I4 VTS_I2 VTS_I2 VTS_I4 VTS_I4)
END_EVENTSINK_MAP()
Gereksinimler
Üst bilgi afxdisp.h
ON_EVENT_REFLECT
ON_EVENT_REFLECT makro, OLE denetiminin sarmalayıcı sınıfının olay havuzu eşlemesinde kullanıldığında, denetimin kapsayıcısı tarafından işlenmeden önce denetim tarafından tetiklenen olayları alır.
ON_EVENT_REFLECT(theClass, dispid, pfnHandler, vtsParams)
Parametreler
theClass
Bu olay havuzu eşlemesinin ait olduğu sınıf.
dispid
Denetim tarafından tetiklenen olayın dağıtım kimliği.
pfnHandler
Olayı işleyen üye işlevinin işaretçisi. Bu işlev, olayın parametreleriyle eşleşen bir BOOL dönüş türüne ve parametre türlerine sahip olmalıdır (bkz . vtsParams). İşlev, olayın işleneceğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
vtsParams
Olay için parametre türlerini belirten VTS_ sabitleri dizisi. Bunlar, DISP_FUNCTION gibi dağıtım eşleme girişlerinde kullanılan sabitlerle aynıdır.
Açıklamalar
vtsParams bağımsız değişkeni, VTS_ sabitlerindeki değerlerin boşlukla ayrılmış bir listesidir.
Bu değerlerden biri veya daha fazlası boşluklarla (virgülle değil) ayrılmış olarak işlevin parametre listesini belirtir. Örneğin:
VTS_I2 VTS_BOOL
kısa bir tamsayı ve ardından bool içeren bir liste belirtir.
VTS_ sabitlerinin listesi için bkz. EVENT_CUSTOM.
Gereksinimler
Üst bilgi afxdisp.h
ON_PROPNOTIFY
OLE denetiminden özellik bildirimlerini işlemek üzere bir olay havuzu eşleme girdisi tanımlamak için ON_PROPNOTIFY makroyu kullanın.
ON_PROPNOTIFY(theClass, id, dispid, pfnRequest, pfnChanged)
Parametreler
theClass
Bu olay havuzu eşlemesinin ait olduğu sınıf.
id
OLE denetiminin denetim kimliği.
dispid
Bildirimde yer alan özelliğin dağıtım kimliği.
pfnRequest
Bu özellik için bildirimi işleyen bir üye işlevi işaretçisi OnRequestEdit
. Bu işlevin bool dönüş türü ve BOOL* parametresi olmalıdır. Bu işlev, özelliğin değişmesine ve FALSE'un izin vermemesi için parametresini TRUE olarak ayarlamalıdır. İşlev, bildirimin işleneceğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
pfnChanged
Bu özellik için bildirimi işleyen bir üye işlevi işaretçisi OnChanged
. İşlev bir BOOL dönüş türüne ve bir UINT parametresine sahip olmalıdır. İşlev, bildirimin işlendiğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
Açıklamalar
vtsParams bağımsız değişkeni, VTS_ sabitlerindeki değerlerin boşlukla ayrılmış bir listesidir. Bu değerlerden biri veya daha fazlası boşluklarla (virgülle değil) ayrılmış olarak işlevin parametre listesini belirtir. Örneğin:
VTS_I2 VTS_BOOL
kısa bir tamsayı ve ardından bool içeren bir liste belirtir.
VTS_ sabitlerinin listesi için bkz. EVENT_CUSTOM.
ON_PROPNOTIFY_RANGE
ON_PROPNOTIFY_RANGE makroyu kullanarak, bitişik bir kimlik aralığında denetim kimliğine sahip herhangi bir OLE denetiminden gelen özellik bildirimlerini işlemek için bir olay havuzu eşleme girdisi tanımlayın.
ON_PROPNOTIFY_RANGE(theClass, idFirst, idLast, dispid, pfnRequest, pfnChanged)
Parametreler
theClass
Bu olay havuzu eşlemesinin ait olduğu sınıf.
idFirst
Aralıktaki ilk OLE denetiminin denetim kimliği.
idLast
Aralıktaki son OLE denetiminin denetim kimliği.
dispid
Bildirimde yer alan özelliğin dağıtım kimliği.
pfnRequest
Bu özellik için bildirimi işleyen bir üye işlevi işaretçisi OnRequestEdit
. Bu işlevin dönüş BOOL
türü ve UINT
BOOL*
parametreleri olmalıdır. İşlev, özelliğin değişmesine ve FALSE'un izin vermemesi için parametresini TRUE olarak ayarlamalıdır. İşlev, bildirimin işlendiğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
pfnChanged
Bu özellik için bildirimi işleyen bir üye işlevi işaretçisi OnChanged
. İşlevin dönüş BOOL
türü ve UINT
parametresi olmalıdır. İşlev, bildirimin işlendiğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
Gereksinimler
Üst bilgi afxdisp.h
ON_PROPNOTIFY_REFLECT
ON_PROPNOTIFY_REFLECT makro, OLE denetiminin sarmalayıcı sınıfının olay havuzu eşlemesinde kullanıldığında, denetimin kapsayıcısı tarafından işlenmeden önce denetim tarafından gönderilen özellik bildirimlerini alır.
ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged)
Parametreler
theClass
Bu olay havuzu eşlemesinin ait olduğu sınıf.
dispid
Bildirimde yer alan özelliğin dağıtım kimliği.
pfnRequest
Bu özellik için bildirimi işleyen bir üye işlevi işaretçisi OnRequestEdit
. Bu işlevin bool dönüş türü ve BOOL* parametresi olmalıdır. Bu işlev, özelliğin değişmesine ve FALSE'un izin vermemesi için parametresini TRUE olarak ayarlamalıdır. İşlev, bildirimin işleneceğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
pfnChanged
Bu özellik için bildirimi işleyen bir üye işlevi işaretçisi OnChanged
. İşlev bir BOOL dönüş türüne sahip olmalı ve parametre olmamalıdır. İşlev, bildirimin işleneceğini belirtmek için TRUE döndürmelidir; aksi takdirde YANLIŞ.
Gereksinimler
Üst bilgi afxdisp.h