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 COleControl
sı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 | const Char* |
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin