Dela via


MFC ActiveX-kontroller: Metoder

En ActiveX-kontroll utlöser händelser för att kommunicera mellan sig själv och dess kontrollcontainer. En container kan också kommunicera med en kontroll med hjälp av metoder och egenskaper. Metoder kallas även för funktioner.

Metoder och egenskaper tillhandahåller ett exporterat gränssnitt för användning av andra program, till exempel Automation-klienter och ActiveX-kontrollcontainrar. Mer information om ActiveX-kontrollegenskaper finns i artikeln MFC ActiveX Controls: Properties (MFC ActiveX Controls: Properties).

Metoderna är liknande i användning och syfte som medlemsfunktionerna i en C++-klass. Det finns två typer av metoder som din kontroll kan implementera: lager och anpassad. På samma sätt som lagerhändelser är lagermetoder de metoder för vilka COleControl tillhandahåller en implementering. Mer information om lagermetoder finns i artikeln MFC ActiveX Controls: Adding Stock Methods. Anpassade metoder, som definieras av utvecklaren, tillåter ytterligare anpassning av kontrollen. Mer information finns i artikeln MFC ActiveX Controls: Adding Custom Methods (MFC ActiveX-kontroller: Lägga till anpassade metoder).

Microsoft Foundation Class Library (MFC) implementerar en mekanism som gör att din kontroll kan stödja standard- och anpassade metoder. Den första delen är klass COleControl. Härledda från CWndstöder COleControl medlemsfunktioner lagermetoder som är gemensamma för alla ActiveX-kontroller. Den andra delen av den här mekanismen är sändningskartan. En sändningskarta liknar en meddelandekarta. Men i stället för att mappa en funktion till ett Meddelande-ID för Windows mappar en sändningskarta virtuella medlemsfunktioner till IDispatch IDS.

För att en kontroll ska kunna stödja olika metoder korrekt måste dess klass deklarera en sändningskarta. Detta uppnås genom följande kodrad i kontrollklassrubriken (. H)-fil:

DECLARE_DISPATCH_MAP()

Huvudsyftet med sändningskartan är att upprätta relationen mellan de metodnamn som används av en extern anropare (till exempel containern) och medlemsfunktionerna i kontrollens klass som implementerar metoderna. När sändningskartan har deklarerats måste den definieras i kontrollens implementering (. CPP)-fil. Följande kodrader definierar sändningskartan:

BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()

Om du använde guiden MFC ActiveX-kontroll för att skapa projektet lades dessa rader till automatiskt. Om MFC ActiveX-kontrollguiden inte användes måste du lägga till dessa rader manuellt.

I följande artiklar beskrivs metoder i detalj:

Se även

MFC ActiveX-kontroller