Share via


MFC-ActiveX-Steuerelemente: Hinzufügen von benutzerdefinierten Methoden

Benutzerdefinierte Methoden unterscheiden sich von vordefinierten Methoden, da sie nicht bereits von COleControl implementiert werden. Sie müssen die Implementierung für jede benutzerdefinierte Möglichkeit bieten, die Sie dem Steuerelement hinzufügen.

Ein ActiveX-Steuerelement-Benutzer kann eine benutzerdefinierte Methode jederzeit aufrufen, um steuerelementspezifische Aktionen auszuführen. Der Dispatchzuordnungseintrag für benutzerdefinierte Methoden hat die Form DISP_FUNCTION.

Hinzufügen einer benutzerdefinierten Methode mit dem Assistenten zum Hinzufügen von Methoden

Die folgende Prozedur veranschaulicht das Hinzufügen der benutzerdefinierten Methode PtInCircle einem Codeskelett des ActiveX-Steuerelements. Innerhalb PtInCircle bestimmt, ob die Koordinaten, die dem Steuerelement übergeben werden oder außerhalb des Kreises sind. Derselbe Prozedur kann auch verwendet werden, um andere benutzerdefinierte Methoden hinzuzufügen. Ersetzen Sie den benutzerdefinierten Methodennamen und die Parameter für den PtInCircle-Methodennamen und Parameter zu variieren.

Hinweis

Dieses Beispiel verwendet die InCircle-Funktion von den Artikel Ereignissen.Weitere Informationen über diese Funktion, finden Sie im Artikel MFC-ActiveX-Steuerelemente: Hinzufügen von benutzerdefinierten Ereignissen in einem ActiveX-Steuerelement.

So fügen die benutzerdefinierte Methode PtInCircle mit dem Assistenten zum Hinzufügen von Methoden hinzufügen

  1. Laden Sie das Projekt des Steuerelements.

  2. Erweitern Sie in der Klassenansicht den Bibliotheksknoten des Steuerelements.

  3. Klicken Sie auf den Schnittstellenknoten für das Steuerelement (der zweite Knoten des Bibliotheksknotens) mit der rechten Maustaste um das Kontextmenü zu öffnen.

  4. Klicken Sie im Kontextmenü auf Hinzufügen und dann auf Methode hinzufügen.

    Dadurch wird der Assistent zum Hinzufügen von Methoden.

  5. Im Feld Methodenname geben Sie PtInCircle ein.

  6. Im Feld Interner Name geben Sie den Namen der internen Funktion der Art oder verwenden Sie den Standardwert (in diesem Fall, PtInCircle).

  7. Im Feld Rückgabetyp klicken Sie auf VARIANT_BOOL für den Rückgabetyp der Methode.

  8. Verwenden von Parametertyp und Parametername-Steuerelementen fügen Sie einen Parameter hinzu, der xCoord ( OLE_XPOS_PIXELS-Typ) bezeichnet wird.

  9. Verwenden von Parametertyp und Parametername-Steuerelementen fügen Sie einen Parameter hinzu, der yCoord ( OLE_YPOS_PIXELS-Typ) bezeichnet wird.

  10. Klicken Sie auf Fertig stellen.

Assistent zum Hinzufügen von Methodenen-Änderungen für benutzerdefinierte Methoden

Wenn Sie eine benutzerdefinierte Methode hinzufügen, wird der Assistent zum Hinzufügen von Methoden einige Änderungen an der Steuerelementklassenkopfzeile vor (.H) und die Implementierungsdatei (.CPP). In der folgenden Zeile wird der Dispatchzuordnungsdeklaration in der Steuerelementklassenkopfzeile hinzugefügt (.H) Datei:

VARIANT_BOOL PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

Dieser Code deklariert eine Dispatchmethode Handler mit dem Namen PtInCircle. Diese Funktion kann im Steuerelementbenutzer aufgerufen werden, der den externen Namen PtInCircle verwendet.

In der folgenden Zeile wird der IDL-Datei des Steuerelements hinzugefügt:

[id(1), helpstring("method PtInCircle")] VARIANT_BOOL PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

Diese Zeile weist der PtInCircle-Methode ein bestimmte ID-Nummer, die Position der Methode in den Assistenten zum Hinzufügen von Methodenen-Methoden und Liste zu. Da der Assistent zum Hinzufügen von Methoden verwendet wurde, um die benutzerdefinierte Methode hinzuzufügen, wurde der Eintrag für ihn automatisch der IDL-Datei des Projekts hinzugefügt.

Außerdem wird die folgende Zeile, in der Implementierungsdatei (.CPP) der Steuerelementklasse, zur Dispatchzuordnung des Steuerelements hinzugefügt:

DISP_FUNCTION_ID(CMyAxUICtrl, "PtInCircle", dispidPtInCircle, PtInCircle, VT_BOOL, VTS_XPOS_PIXELS VTS_YPOS_PIXELS)

Das Makro DISP_FUNCTION ordnet der Methode PtInCircle an die Handlerfunktion des Steuerelements, PtInCircle, deklariert den Rückgabetyp, um VARIANT_BOOL sind und deklariert zwei Parameter des Typs an PtInCircle übergeben werden VTS_XPOS_PIXELS und VTS_YPOSPIXELS.

Abschließend fügt der Assistent zum Hinzufügen von Methoden die Stubfunktion CSampleCtrl::PtInCircle der Unterkante der Implementierung des Steuerelements (.CPP) hinzu. Damit PtInCircle funktioniert, wie bereits erwähnt, muss er geändert werden, wie folgt:

VARIANT_BOOL CMyAxUICtrl::PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   CPoint point(xCoord, yCoord);
   return InCircle(point);
}

Siehe auch

Referenz

Symbole in der Klassenansicht und im Objektbrowser

Konzepte

MFC-ActiveX-Steuerelemente