Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Wanneer een besturingselement de container wil melden dat een bepaalde actie (bepaald door de besturingselementontwikkelaar) is uitgevoerd (zoals een toetsaanslag, muisklik of een wijziging in de status van het besturingselement) wordt een functie voor het starten van gebeurtenissen aangeroepen. Met deze functie wordt de besturingscontainer op de hoogte gebracht van een belangrijke actie door de gerelateerde gebeurtenis te activeren.
De Microsoft Foundation Class Library biedt een programmeermodel dat is geoptimaliseerd voor het afvuren van gebeurtenissen. In dit model worden 'gebeurtenisoverzichten' gebruikt om aan te geven welke functies welke gebeurtenissen voor een bepaald besturingselement worden geactiveerd. Gebeurtenistoewijzingen bevatten één macro voor elke gebeurtenis. Een gebeurtenisoverzicht dat bijvoorbeeld een gebeurtenis met een stockklik wordt geactiveerd, kan er als volgt uitzien:
BEGIN_EVENT_MAP(CMyAxCtrl, COleControl)
EVENT_STOCK_CLICK()
END_EVENT_MAP()
De EVENT_STOCK_CLICK macro geeft aan dat het besturingselement elke keer dat er een muisklik wordt gedetecteerd een gebeurtenis met klikken op voorraad wordt geactiveerd. Zie het artikel ActiveX-besturingselementen: Gebeurtenissen voor een gedetailleerdere lijst van andere aandelenevenementen. Macro's zijn ook beschikbaar om aangepaste gebeurtenissen aan te geven.
Hoewel macro's voor gebeurtenistoewijzing belangrijk zijn, kunt u ze over het algemeen niet rechtstreeks invoegen. Dit komt doordat in het venster Eigenschappen (in klasseweergave) automatisch vermeldingen voor gebeurtenistoewijzingen worden gemaakt in uw bronbestanden wanneer u deze gebruikt om functies voor gebeurtenisgebeurtenissen te koppelen aan gebeurtenissen. Wanneer u een gebeurtenisoverzichtitem wilt bewerken of toevoegen, kunt u het venster Eigenschappen gebruiken.
Ter ondersteuning van gebeurtenisoverzichten biedt MFC de volgende macro's:
Macro's gebeurtenisoverzicht
Declaratie en afbakening van gebeurtenisoverzicht
| Naam | Description |
|---|---|
| DECLARE_EVENT_MAP | Declareert dat een gebeurtenisoverzicht wordt gebruikt in een klasse om gebeurtenissen toe te wijzen aan functies voor gebeurtenisschieten (moet worden gebruikt in de klassedeclaratie). |
| BEGIN_EVENT_MAP | Hiermee begint u de definitie van een gebeurtenisoverzicht (moet worden gebruikt in de klasse-implementatie). |
| END_EVENT_MAP | Hiermee wordt de definitie van een gebeurtenisoverzicht beëindigd (moet worden gebruikt in de klasse-implementatie). |
Macro's voor gebeurtenistoewijzing
| Naam | Description |
|---|---|
| EVENT_CUSTOM | Geeft aan welke functie voor het starten van gebeurtenissen de opgegeven gebeurtenis zal activeren. |
| EVENT_CUSTOM_ID | Hiermee wordt aangegeven welke functie voor gebeurtenisvuur de opgegeven gebeurtenis zal activeren, met een aangewezen verzend-id. |
Macro's voor berichttoewijzing
| Naam | Description |
|---|---|
| ON_OLEVERB | Geeft een aangepast werkwoord aan dat wordt verwerkt door het OLE-besturingselement. |
| ON_STDOLEVERB | Hiermee wordt een standaardwerkwoordtoewijzing van het OLE-besturingselement overschreven. |
DECLARE_EVENT_MAP
Elke COleControl-afgeleide klasse in uw programma kan een gebeurtenisoverzicht bieden om de gebeurtenissen op te geven die door uw besturingselement worden geactiveerd.
DECLARE_EVENT_MAP()
Opmerkingen
Gebruik de DECLARE_EVENT_MAP macro aan het einde van de klassedeclaratie. Gebruik vervolgens in het .cpp bestand dat de lidfuncties voor de klasse definieert de BEGIN_EVENT_MAP macro, macrovermeldingen voor elk van de gebeurtenissen van het besturingselement en de END_EVENT_MAP macro om het einde van de lijst met gebeurtenissen te declareren.
Zie het artikel ActiveX-besturingselementen: Gebeurtenissen voor meer informatie over gebeurtenisoverzichten.
Requirements
Header afxctl.h
BEGIN_EVENT_MAP
Hiermee begint u de definitie van uw gebeurtenisoverzicht.
BEGIN_EVENT_MAP(theClass, baseClass)
Parameterwaarden
theClass
Hiermee geeft u de naam op van de besturingsklasse waarvan dit gebeurtenisoverzicht is.
baseClass
Hiermee geeft u de naam van de basisklasse van theClass.
Opmerkingen
In het implementatiebestand (.cpp) dat de lidfuncties voor uw klas definieert, start u de gebeurtenistoewijzing met de BEGIN_EVENT_MAP macro, voegt u vervolgens macrovermeldingen toe voor elk van uw gebeurtenissen en voltooit u de gebeurtenistoewijzing met de END_EVENT_MAP macro.
Zie het artikel ActiveX-besturingselementen: Gebeurtenissen voor meer informatie over gebeurtenisoverzichten en de BEGIN_EVENT_MAP macro.
Requirements
Header afxctl.h
END_EVENT_MAP
Gebruik de END_EVENT_MAP macro om de definitie van uw gebeurtenisoverzicht te beëindigen.
END_EVENT_MAP()
Requirements
Header afxctl.h
EVENT_CUSTOM
Hiermee definieert u een vermelding voor een gebeurtenisoverzicht voor een aangepaste gebeurtenis.
EVENT_CUSTOM(pszName, pfnFire, vtsParams)
Parameterwaarden
pszName
De naam van de gebeurtenis.
pfnFire
De naam van de functie voor het activeren van gebeurtenissen.
vtsParams
Een door spaties gescheiden lijst met een of meer constanten waarmee de parameterlijst van de functie wordt opgegeven.
Opmerkingen
De parameter vtsParams is een door spaties gescheiden lijst met waarden uit de VTS_ constanten. Een of meer van deze waarden gescheiden door spaties (geen komma's) specificeert de parameterlijst van de functie. Voorbeeld:
VTS_COLOR VTS_FONT
geeft een lijst op met een 32-bits geheel getal dat een RGB-kleurwaarde vertegenwoordigt, gevolgd door een aanwijzer naar de IFontDisp interface van een OLE-lettertypeobject.
De VTS_ constanten en hun betekenissen zijn als volgt:
| Symbol | Parametertype |
|---|---|
| VTS_I2 | short |
| VTS_I4 | long |
| VTS_R4 | float |
| VTS_R8 | double |
| VTS_COLOR | OLE_COLOR |
| VTS_CY | VALUTA |
| VTS_DATE | DATE |
| VTS_BSTR |
const
Char* |
| VTS_DISPATCH | LPDISPATCH |
| VTS_FONT | IFontDispatch* |
| VTS_HANDLE | BEHANDELEN |
| 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 |
Opmerking
Er zijn aanvullende variantconstanten gedefinieerd voor alle varianttypen, met uitzondering van VTS_FONT en VTS_PICTURE, die een aanwijzer naar de constante van de variantgegevens bieden. Deze constanten worden benoemd met behulp van de VTS_Pconstantname conventie. VTS_PCOLOR is bijvoorbeeld een aanwijzer naar een VTS_COLOR constante.
Requirements
Header afxctl.h
EVENT_CUSTOM_ID
Definieert een functie voor het activeren van gebeurtenissen voor een aangepaste gebeurtenis die hoort bij de verzend-id die is opgegeven door dispid.
EVENT_CUSTOM_ID(
pszName,
dispid,
pfnFire,
vtsParams)
Parameterwaarden
pszName
De naam van de gebeurtenis.
dispid
De verzend-id die door het besturingselement wordt gebruikt bij het activeren van de gebeurtenis.
pfnFire
De naam van de functie voor het activeren van gebeurtenissen.
vtsParams
Een lijst met variabelen met parameters die worden doorgegeven aan de besturingscontainer wanneer de gebeurtenis wordt geactiveerd.
Opmerkingen
Het argument vtsParams is een door spaties gescheiden lijst met waarden uit de VTS_ constanten. Een of meer van deze waarden gescheiden door spaties, geen komma's, specificeert de parameterlijst van de functie. Voorbeeld:
VTS_COLOR VTS_FONT
geeft een lijst op met een 32-bits geheel getal dat een RGB-kleurwaarde vertegenwoordigt, gevolgd door een aanwijzer naar de IFontDisp interface van een OLE-lettertypeobject.
Zie EVENT_CUSTOM voor een lijst met constantenVTS_.
Requirements
Header afxctl.h
ON_OLEVERB
Deze macro definieert een berichtkaartvermelding waarmee een aangepast werkwoord wordt toegewezen aan een specifieke lidfunctie van uw besturingselement.
ON_OLEVERB(idsVerbName, memberFxn)
Parameterwaarden
idsVerbName
De tekenreeksresource-id van de naam van het werkwoord.
memberFxn
De functie die door het framework wordt aangeroepen wanneer het werkwoord wordt aangeroepen.
Opmerkingen
De resource-editor kan worden gebruikt om aangepaste werkwoordnamen te maken die worden toegevoegd aan de tekenreekstabel.
Het prototype van de functie voor memberFxn is:
BOOL memberFxn(
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
De waarden van de parameters lpMsg, hWndParent en lpRect worden opgehaald uit de bijbehorende parameters van de IOleObject::DoVerb lidfunctie.
Requirements
Header afxole.h
ON_STDOLEVERB
Gebruik deze macro om het standaardgedrag van een standaardwoord te overschrijven.
ON_STDOLEVERB(iVerb, memberFxn)
Parameterwaarden
iVerb
De standaardwerkwoordindex voor het werkwoord dat wordt overschreven.
memberFxn
De functie die door het framework wordt aangeroepen wanneer het werkwoord wordt aangeroepen.
Opmerkingen
De standaardwerkwoordindex is van het formulier OLEIVERB_, gevolgd door een actie. OLEIVERB_SHOW, OLEIVERB_HIDE en OLEIVERB_UIACTIVATE zijn enkele voorbeelden van standaardwoorden.
Zie ON_OLEVERB voor een beschrijving van het prototype van de functie die moet worden gebruikt als de parameter memberFxn .
Requirements
Header afxole.h