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, OnRangeMouseDowniletiş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

Ayrıca bkz.

Makrolar ve Genel Ayarlar