Aracılığıyla paylaş


Olay Eşlemeleri

Bir denetim kapsayıcısına bir eylemin (denetim geliştiricisi tarafından belirlenir) gerçekleştiğini (tuş vuruşu, fare tıklaması veya denetimin durumunda değişiklik gibi) bildirmek istediğinde olay tetikleme işlevini çağırır. Bu işlev, denetim kapsayıcısını ilgili olayı tetikleyerek bazı önemli eylemlerin gerçekleştiğini bildirir.

Microsoft Foundation Sınıf Kitaplığı, olayları tetikleme için iyileştirilmiş bir programlama modeli sunar. Bu modelde, "olay eşlemeleri" belirli bir denetim için hangi işlevlerin hangi olayları tetiklediği belirlemek için kullanılır. Olay eşlemeleri her olay için bir makro içerir. Örneğin, stok Click olayını tetikleyen bir olay haritası şöyle görünebilir:

BEGIN_EVENT_MAP(CMyAxCtrl, COleControl)
EVENT_STOCK_CLICK()
END_EVENT_MAP()

Makro, EVENT_STOCK_CLICK denetimin her fare tıklaması algılayışında stok Tıklama olayını tetiklediğini gösterir. Diğer hisse senedi olaylarının daha ayrıntılı listesi için ActiveX Denetimleri: Olaylar makalesine bakın. Özel olayları göstermek için makrolar da kullanılabilir.

Olay eşleme makroları önemli olsa da, bunları genellikle doğrudan eklemezsiniz. Bunun nedeni, Özellikler penceresinin (Sınıf Görünümünde) olay tetikleme işlevlerini olaylarla ilişkilendirmek için kullandığınızda kaynak dosyalarınızda otomatik olarak olay eşleme girdileri oluşturmasıdır. Herhangi bir olay eşlemesi girdisini düzenlemek veya eklemek istediğinizde Özellikler penceresini kullanabilirsiniz.

MFC, olay eşlemelerini desteklemek için aşağıdaki makroları sağlar:

Olay Eşleme makroları

Olay Eşleme Bildirimi ve Özetle

Ad Tanım
DECLARE_EVENT_MAP Olay eşlemesinin olayları olay tetikleme işlevlerine eşlemek için bir sınıfta kullanılacağını bildirir (sınıf bildiriminde kullanılmalıdır).
BEGIN_EVENT_MAP Olay eşlemesinin tanımını başlatır (sınıf uygulamasında kullanılmalıdır).
END_EVENT_MAP Olay eşlemesinin tanımını sonlandırır (sınıf uygulamasında kullanılmalıdır).

Olay Eşleme Makroları

Ad Tanım
EVENT_CUSTOM Hangi olay tetikleme işlevinin belirtilen olayı tetiklediğini gösterir.
EVENT_CUSTOM_ID Belirtilen olayı, belirlenen dağıtım kimliğiyle hangi olay tetikleme işlevinin tetiklediğini gösterir.

İleti Eşleme Makroları

Ad Tanım
ON_OLEVERB OLE denetimi tarafından işlenen özel bir fiili gösterir.
ON_STDOLEVERB OLE denetiminin standart fiil eşlemesini geçersiz kılar.

DECLARE_EVENT_MAP

Programınızdaki türetilmiş her COleControlsınıf, denetiminizin tetikleyeceği olayları belirtmek için bir olay eşlemesi sağlayabilir.

DECLARE_EVENT_MAP()

Açıklamalar

Sınıf bildiriminizin sonundaki DECLARE_EVENT_MAP makroyu kullanın. Ardından, sınıfın üye işlevlerini tanımlayan .cpp dosyasında BEGIN_EVENT_MAP makroyu, denetimin olaylarının her biri için makro girdilerini ve olay listesinin sonunu bildirmek için END_EVENT_MAP makroyu kullanın.

Olay eşlemeleri hakkında daha fazla bilgi için ActiveX Denetimleri: Olaylar makalesine bakın.

Gereksinimler

Üst bilgi afxctl.h

BEGIN_EVENT_MAP

Olay haritanızın tanımını başlatır.

BEGIN_EVENT_MAP(theClass,  baseClass)

Parametreler

theClass
Olay 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 için üye işlevlerini tanımlayan uygulama (.cpp) dosyasında, olay eşlemesini BEGIN_EVENT_MAP makroyla başlatın, ardından olaylarınızın her biri için makro girdileri ekleyin ve olay eşlemesini END_EVENT_MAP makroyla tamamlayın.

Olay eşlemeleri ve BEGIN_EVENT_MAP makro hakkında daha fazla bilgi için ActiveX Denetimleri: Olaylar makalesine bakın.

Gereksinimler

Üst bilgi afxctl.h

END_EVENT_MAP

Olay eşlemenizin tanımını sonlandırmak için END_EVENT_MAP makroyu kullanın.

END_EVENT_MAP()

Gereksinimler

Üst bilgi afxctl.h

EVENT_CUSTOM

Özel bir olay için olay eşleme girdisi tanımlar.

EVENT_CUSTOM(pszName, pfnFire,  vtsParams)

Parametreler

pszName
Olayın adı.

pfnFire
Olay tetikleme işlevinin adı.

vtsParams
İşlevin parametre listesini belirten bir veya daha fazla sabitin boşlukla ayrılmış listesi.

Açıklamalar

vtsParams parametresi, sabitlerdeki VTS_ 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. Örnek:

VTS_COLOR VTS_FONT

RGB renk değerini temsil eden 32 bit tamsayı içeren bir liste ve ardından OLE yazı tipi nesnesinin IFontDisp arabirimine yönelik bir işaretçi belirtir.

Sabitler VTS_ ve anlamları aşağıdaki gibidir:

Simge Parametre türü
VTS_I2 short
VTS_I4 long
VTS_R4 float
VTS_R8 double
VTS_COLOR OLE_COLOR
VTS_CY PARA BİRİMİ
VTS_DATE DATE
VTS_BSTR constChar*
VTS_DISPATCH LPDISPATCH
VTS_FONT IFontDispatch*
VTS_HANDLE IŞLEMEK
VTS_SCODE SCODE
VTS_BOOL BOOL
VTS_VARIANT const VARIANT*
VTS_PVARIANT VARIANT*
VTS_UNKNOWN LPUNKNOWN
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE
VTS_PICTURE IPictureDisp*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_YSIZE_PIXELS
TS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_YSIZE_HIMETRIC

Dekont

Değişken veri sabitine bir işaretçi sağlayan VTS_FONT ve VTS_PICTURE dışında tüm değişken türleri için ek değişken sabitleri tanımlanmıştır. Bu sabitler kuralı kullanılarak VTS_Pconstantname adlandırılır. Örneğin, VTS_PCOLOR bir VTS_COLOR sabiti işaretçisidir.

Gereksinimler

Üst bilgi afxctl.h

EVENT_CUSTOM_ID

dispid tarafından belirtilen dağıtım kimliğine ait özel bir olay için olay tetikleme işlevini tanımlar.

EVENT_CUSTOM_ID(
    pszName,
    dispid,
    pfnFire,
    vtsParams)

Parametreler

pszName
Olayın adı.

Dıspıd
Olay tetiklerken denetim tarafından kullanılan dağıtım kimliği.

pfnFire
Olay tetikleme işlevinin adı.

vtsParams
Olay tetiklendiğinde denetim kapsayıcısına geçirilen parametrelerin değişken listesi.

Açıklamalar

vtsParams bağımsız değişkeni, sabitlerdeki VTS_ değerlerin boşlukla ayrılmış bir listesidir. Bu değerlerden biri veya birkaçı virgülle değil boşluklarla ayrılmış olarak işlevin parametre listesini belirtir. Örnek:

VTS_COLOR VTS_FONT

RGB renk değerini temsil eden 32 bit tamsayı içeren bir liste ve ardından OLE yazı tipi nesnesinin IFontDisp arabirimine yönelik bir işaretçi belirtir.

Sabitlerin VTS_ listesi için bkz . EVENT_CUSTOM.

Gereksinimler

Üst bilgi afxctl.h

ON_OLEVERB

Bu makro, özel bir fiili denetiminizin belirli bir üye işleviyle eşleyen bir ileti eşleme girdisi tanımlar.

ON_OLEVERB(idsVerbName,  memberFxn)

Parametreler

idsVerbName
Fiilin adının dize kaynak kimliği.

memberFxn
Fiil çağrıldığında çerçeve tarafından çağrılan işlev.

Açıklamalar

Kaynak düzenleyicisi, dize tablonuza eklenen özel fiil adları oluşturmak için kullanılabilir.

memberFxn için işlev prototipi:

BOOL memberFxn(
   LPMSG    lpMsg,
   HWND     hWndParent,
   LPCRECT  lpRect);

lpMsg, hWndParent ve lpRect parametrelerinin değerleri üye işlevinin karşılık gelen parametrelerinden IOleObject::DoVerb alınır.

Gereksinimler

Üst bilgi afxole.h

ON_STDOLEVERB

Standart fiilin varsayılan davranışını geçersiz kılmak için bu makroyu kullanın.

ON_STDOLEVERB(iVerb, memberFxn)

Parametreler

iVerb
Geçersiz kılınan fiilin standart fiil dizini.

memberFxn
Fiil çağrıldığında çerçeve tarafından çağrılan işlev.

Açıklamalar

Standart fiil dizini biçimindedir OLEIVERB_ve ardından bir eylem gelir. OLEIVERB_SHOW, OLEIVERB_HIDE ve OLEIVERB_UIACTIVATE bazı standart fiil örnekleridir.

memberFxn parametresi olarak kullanılacak işlev prototipinin açıklaması için bkz. ON_OLEVERB.

Gereksinimler

Üst bilgi afxole.h

Ayrıca bkz.

Makrolar ve Genel Ayarlar