Megosztás a következőn keresztül:


Eseménytérképek

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Amikor egy vezérlő értesíteni szeretné a tárolóját arról, hogy valamilyen művelet (amelyet a vezérlő fejlesztője határoz meg) történt (például billentyűleütés, egérkattintás vagy a vezérlő állapotának módosítása), eseményindító függvényt hív meg. Ez a függvény értesíti a vezérlőtárolót, hogy fontos művelet történt a kapcsolódó esemény aktiválásával.

A Microsoft Foundation osztálykönyvtára egy olyan programozási modellt kínál, amely az események kilövésére van optimalizálva. Ebben a modellben az "eseménytérképek" segítségével határozható meg, hogy mely függvények aktiválják az adott vezérlő eseményeit. Az eseménytérképek minden eseményhez egy-egy makrót tartalmaznak. Például egy eseménytérkép, amely egy részvényt aktivál, a Click esemény a következőképpen nézhet ki:

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

A EVENT_STOCK_CLICK makró azt jelzi, hogy a vezérlő minden alkalommal aktivál egy részvénykattintás eseményt, amikor egérkattintás észlelhető. Az egyéb tőzsdei események részletesebb felsorolását az ActiveX-vezérlők: Események című cikkben találja. A makrók egyéni eseményeket is jeleznek.

Bár az eseménytérkép-makrók fontosak, általában nem szúrja be őket közvetlenül. Ennek az az oka, hogy a Tulajdonságok ablak ( Osztálynézetben) automatikusan eseménytérkép-bejegyzéseket hoz létre a forrásfájlokban, amikor eseményindító függvényeket társít az eseményekhez. Bármikor használhatja a Tulajdonságok ablakot, amikor szerkeszteni vagy hozzáadni szeretne egy eseménytérkép-bejegyzést.

Az eseménytérképek támogatásához az MFC a következő makrókat biztosítja:

Eseménytérkép makrói

Eseménytérkép deklarációja és elhatárolása

Név Description
DECLARE_EVENT_MAP Deklarálja, hogy egy osztály eseménytérképet használ az események eseményégetési függvényekre való leképezéséhez (az osztálydeklarációban kell használni).
BEGIN_EVENT_MAP Elindítja az eseménytérkép definícióját (az osztály implementációjában kell használni).
END_EVENT_MAP Véget vet egy eseménytérkép definíciójának (az osztály implementációjában kell használni).

Eseményleképezési makrók

Név Description
EVENT_CUSTOM Azt jelzi, hogy melyik eseményindító függvény indítja el a megadott eseményt.
EVENT_CUSTOM_ID Azt jelzi, hogy melyik eseményindító függvény indítja el a megadott eseményt egy kijelölt küldési azonosítóval.

Üzenetleképezési makrók

Név Description
ON_OLEVERB Az OLE vezérlőelem által kezelt egyéni igét jelzi.
ON_STDOLEVERB Felülbírálja az OLE-vezérlő szabványos igeleképezését.

DECLARE_EVENT_MAP

A program minden COleControl-származtatott osztálya megadhat egy eseménytérképet a vezérlő által aktivált események megadásához.

DECLARE_EVENT_MAP()

Megjegyzések

Használja a DECLARE_EVENT_MAP makrót az osztálydeklaráció végén. Ezután az osztály tagfüggvényeit meghatározó .cpp fájlban használja a BEGIN_EVENT_MAP makrót, a vezérlő egyes eseményeinek makróbejegyzéseit, valamint az END_EVENT_MAP makrót az eseménylista végének deklarálásához.

Az eseménytérképekkel kapcsolatos további információkért tekintse meg az ActiveX-vezérlők: Események című cikket.

Requirements

Fejléc afxctl.h

BEGIN_EVENT_MAP

Megkezdi az eseménytérkép definícióját.

BEGIN_EVENT_MAP(theClass,  baseClass)

Paraméterek

theClass
Annak a vezérlőosztálynak a nevét adja meg, amelynek eseménytérképe ez.

(No changes needed, translation remains the same as original) ``` baseClass ```
AClass alaposztályának nevét adja meg.

Megjegyzések

Az osztály tagfüggvényeit meghatározó implementációs (.cpp) fájlban indítsa el az eseménytérképet a BEGIN_EVENT_MAP makróval, majd adjon hozzá makróbejegyzéseket az egyes eseményekhez, és töltse ki az eseménytérképet a END_EVENT_MAP makróval.

Az eseménytérképekkel és a BEGIN_EVENT_MAP makróval kapcsolatos további információkért tekintse meg az ActiveX-vezérlők: Események című cikket.

Requirements

Fejléc afxctl.h

END_EVENT_MAP

Az END_EVENT_MAP makróval fejezheti be az eseménytérkép definícióját.

END_EVENT_MAP()

Requirements

Fejléc afxctl.h

EVENT_CUSTOM

Egy egyéni esemény eseménytérkép-bejegyzését határozza meg.

EVENT_CUSTOM(pszName, pfnFire,  vtsParams)

Paraméterek

pszName
Az esemény neve.

pfnFire
Az eseményindító függvény neve.

vtsParams
A függvény paraméterlistáját meghatározó egy vagy több állandó szóközzel elválasztott listája.

Megjegyzések

A vtsParams paraméter az értékek szóközzel elválasztott listája az VTS_ állandóktól. Egy vagy több érték szóközökkel elválasztva (nem vesszővel) határozza meg a függvény paraméterlistáját. Például:

VTS_COLOR VTS_FONT

egy 32 bites egész számot tartalmazó listát ad meg, amely egy RGB színértéket jelöl, majd egy mutatót IFontDisp egy OLE betűtípus-objektum felületére.

Az VTS_ állandók és jelentésük a következők:

Szimbólum Paraméter típusa
VTS_I2 short
VTS_I4 long
VTS_R4 float
VTS_R8 double
VTS_COLOR OLE_COLOR
VTS_CY PÉNZNEM
VTS_DATE DATE
VTS_BSTR const Char*
VTS_DISPATCH LPDISPATCH
VTS_FONT IFontDispatch*
VTS_HANDLE KEZELNI
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

Megjegyzés:

Az összes változattípushoz további variánsállandók lettek definiálva, a VTS_FONT és a VTS_PICTURE kivételével, amelyek mutatót biztosítanak a variáns adatállandóhoz. Ezeket az állandókat a VTS_Pconstantname konvenció alapján nevezik el. A VTS_PCOLOR például egy VTS_COLOR állandóra mutató mutató.

Requirements

Fejléc afxctl.h

EVENT_CUSTOM_ID

A dispid által megadott küldési azonosítóhoz tartozó egyéni esemény eseményindító függvényét határozza meg.

EVENT_CUSTOM_ID(
    pszName,
    dispid,
    pfnFire,
    vtsParams)

Paraméterek

pszName
Az esemény neve.

dispid
A vezérlő által az esemény aktiválásakor használt feladóazonosító.

pfnFire
Az eseményindító függvény neve.

vtsParams
Az esemény aktiválásakor a vezérlőtárolónak átadott paraméterek változólistája.

Megjegyzések

A vtsParams argumentum az értékek szóközzel elválasztott listája az VTS_ állandóktól. Ezen értékek közül egy vagy több szóközzel elválasztva, nem vesszővel van elválasztva, a függvény paraméterlistáját adja meg. Például:

VTS_COLOR VTS_FONT

egy 32 bites egész számot tartalmazó listát ad meg, amely egy RGB színértéket jelöl, majd egy mutatót IFontDisp egy OLE betűtípus-objektum felületére.

Az állandók listájáért lásd a VTS_EVENT_CUSTOM.

Requirements

Fejléc afxctl.h

ON_OLEVERB

Ez a makró egy üzenettérkép-bejegyzést határoz meg, amely egy egyéni igét képez le a vezérlő egy adott tagfüggvényére.

ON_OLEVERB(idsVerbName,  memberFxn)

Paraméterek

idsVerbName
Az ige nevének sztringerőforrás-azonosítója.

memberFxn
A keretrendszer által az ige meghívásakor hívott függvény.

Megjegyzések

Az erőforrás-szerkesztővel egyéni igeneveket hozhat létre, amelyek hozzáadódnak a sztringtáblához.

A memberFxn függvény prototípusa a következő:

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

Az lpMsg, a hWndParent és az lpRect paraméterek értékei a tagfüggvény megfelelő paramétereiből IOleObject::DoVerb származnak.

Requirements

Fejléc afxole.h

ON_STDOLEVERB

Ezzel a makróval felülbírálhatja egy szabványos ige alapértelmezett viselkedését.

ON_STDOLEVERB(iVerb, memberFxn)

Paraméterek

iVerb
A felülbírált igéhez tartozó szokásos igeindex.

memberFxn
A keretrendszer által az ige meghívásakor hívott függvény.

Megjegyzések

A szabványos igeindex az űrlap OLEIVERB_, amelyet egy művelet követ. OLEIVERB_SHOW, OLEIVERB_HIDE és OLEIVERB_UIACTIVATE néhány példa a standard igékre.

A tagFxn paraméterként használandó függvény prototípusának leírását lásd ON_OLEVERB.

Requirements

Fejléc afxole.h

Lásd még

Makrók és globális változók