Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein ActiveX-Steuerelement ist eine wiederverwendbare Softwarekomponente basierend auf dem Component Object Model (COM), die eine Vielzahl von OLE-Funktionen unterstützt und an viele Softwareanforderungen angepasst werden kann.
Von Bedeutung
ActiveX ist eine ältere Technologie, die nicht für die neue Entwicklung verwendet werden sollte. Weitere Informationen finden Sie unter ActiveX-Steuerelemente.
ActiveX-Steuerelemente sind für die Verwendung sowohl in normalen ActiveX-Steuerelementcontainern als auch im Internet, auf World Wide-Webseiten vorgesehen. Sie können ActiveX-Steuerelemente entweder mit MFC erstellen, die hier beschrieben werden, oder mit der Active Template Library (ATL).
Ein ActiveX-Steuerelement kann sich in einem eigenen Fenster zeichnen, auf Ereignisse reagieren (z. B. Mausklicks), und über eine Schnittstelle verwaltet werden, die Eigenschaften und Methoden enthält, die denen in Automatisierungsobjekten ähneln.
Diese Steuerelemente können für viele Anwendungen entwickelt werden, z. B. Datenbankzugriff, Datenüberwachung oder Diagrammerstellung. Neben ihrer Portabilität unterstützen ActiveX-Steuerelemente Features, die zuvor nicht für ActiveX-Steuerelemente verfügbar waren, z. B. Kompatibilität mit vorhandenen OLE-Containern und die Möglichkeit, ihre Menüs in die OLE-Containermenüs zu integrieren. Darüber hinaus unterstützt ein ActiveX-Steuerelement die Automatisierung vollständig, sodass das Steuerelement Lese-/Schreibeigenschaften und eine Reihe von Methoden verfügbar macht, die vom Steuerelementbenutzer aufgerufen werden können.
Sie können fensterlose ActiveX-Steuerelemente und -Steuerelemente erstellen, die nur dann ein Fenster erstellen, wenn sie aktiv werden. Fensterlose Steuerelemente beschleunigen die Anzeige Ihrer Anwendung und ermöglichen es, transparente und nichtectangulare Steuerelemente zu haben. Sie können ActiveX-Steuerelementeigenschaften auch asynchron laden.
Ein ActiveX-Steuerelement wird als In-Process-Server (in der Regel ein kleines Objekt) implementiert, das in jedem OLE-Container verwendet werden kann. Beachten Sie, dass die vollständige Funktionalität eines ActiveX-Steuerelements nur verfügbar ist, wenn sie in einem OLE-Container verwendet wird, der auf ActiveX-Steuerelemente ausgelegt ist. Eine Liste der Container, die ActiveX-Steuerelemente unterstützen, finden Sie unter Portieren von ActiveX-Steuerelementen zu anderen Anwendungen . Dieser Containertyp, der als "Steuerelementcontainer" bezeichnet wird, kann ein ActiveX-Steuerelement mithilfe der Eigenschaften und Methoden des Steuerelements betreiben und Benachrichtigungen vom ActiveX-Steuerelement in Form von Ereignissen empfängt. Die folgende Abbildung zeigt diese Interaktion.
Interaktion zwischen einem ActiveX-Steuerelementcontainer und einem fensterierten ActiveX-Steuerelement
Einige aktuelle Informationen zum Optimieren Ihrer ActiveX-Steuerelemente finden Sie unter MFC ActiveX Controls: Optimization.
Informationen zum Erstellen eines MFC ActiveX-Steuerelements finden Sie unter Erstellen eines ActiveX-Steuerelementprojekts.
Weitere Informationen finden Sie unter:
Grundlegende Komponenten eines ActiveX-Steuerelements
Ein ActiveX-Steuerelement verwendet mehrere programmgesteuerte Elemente, um effizient mit einem Steuerelementcontainer und mit dem Benutzer zu interagieren. Hierbei handelt es sich um die Klasse COleControl, eine Reihe von Ereignis ausgelösten Funktionen und eine Verteilerzuordnung.
Jedes activeX-Steuerelementobjekt, das Sie entwickeln, erbt einen leistungsstarken Satz von Features aus der MFC-Basisklasse. COleControl Zu diesen Features gehören direkte Aktivierung und Automatisierungslogik.
COleControl kann das Steuerelementobjekt mit der gleichen Funktionalität wie ein MFC-Fensterobjekt und die Möglichkeit zum Auslösen von Ereignissen bereitstellen.
COleControl kann auch fensterlose Steuerelemente bereitstellen, die sich auf ihren Container verlassen, um Hilfe bei einigen der Funktionen zu erhalten, die ein Fenster bereitstellt (Mausaufnahme, Tastaturfokus, Bildlauf), bietet aber viel schnellere Anzeige.
Da die Steuerelementklasse von COleControldieser abgeleitet wird, erbt sie die Funktion zum Senden oder Auslösen von Nachrichten, die als Ereignisse bezeichnet werden, an den Steuerelementcontainer, wenn bestimmte Bedingungen erfüllt sind. Diese Ereignisse werden verwendet, um den Steuerelementcontainer zu benachrichtigen, wenn etwas Wichtiges im Steuerelement geschieht. Sie können zusätzliche Informationen zu einem Ereignis an den Steuerelementcontainer senden, indem Sie dem Ereignis Parameter anfügen. Weitere Informationen zu ActiveX-Steuerelementereignissen finden Sie im Artikel MFC ActiveX Controls: Events.
Das letzte Element ist eine Verteilerzuordnung, die verwendet wird, um eine Reihe von Funktionen (als Methoden bezeichnet) und Attribute (aufgerufene Eigenschaften) für den Steuerelementbenutzer verfügbar zu machen. Eigenschaften ermöglichen es dem Steuerelementcontainer oder dem Steuerelementbenutzer, das Steuerelement auf verschiedene Weise zu bearbeiten. Der Benutzer kann das Erscheinungsbild des Steuerelements ändern, bestimmte Werte des Steuerelements ändern oder Anforderungen des Steuerelements stellen, z. B. den Zugriff auf eine bestimmte Datenmenge, die das Steuerelement verwaltet. Diese Schnittstelle wird vom Steuerelemententwickler bestimmt und mithilfe der Klassenansicht definiert. Weitere Informationen zu ActiveX-Steuerelementmethoden und -eigenschaften finden Sie in den Artikeln MFC ActiveX Controls: Methods and Properties.
Interaktion zwischen Steuerelementen mit Windows- und ActiveX-Steuerelementcontainern
Wenn ein Steuerelement in einem Steuerelementcontainer verwendet wird, verwendet es zwei Mechanismen, um zu kommunizieren: es macht Eigenschaften und Methoden verfügbar und löst Ereignisse aus. Die folgende Abbildung zeigt, wie diese beiden Mechanismen implementiert werden.
Kommunikation zwischen einem ActiveX-Steuerelementcontainer und einem ActiveX-Steuerelement
In der vorherigen Abbildung wird auch veranschaulicht, wie andere OLE-Schnittstellen (neben Automatisierung und Ereignissen) von Steuerelementen behandelt werden.
Die Gesamte Kommunikation eines Steuerelements mit dem Container erfolgt durch COleControl. Um einige anforderungen des Containers zu verarbeiten, rufen Sie Memberfunktionen auf, COleControl die in der Steuerelementklasse implementiert sind. Alle Methoden und einige Eigenschaften werden auf diese Weise behandelt. Die Klasse Ihres Steuerelements kann auch die Kommunikation mit dem Container initiieren, indem Memberfunktionen von COleControlaufgerufen werden. Ereignisse werden auf diese Weise ausgelöst.
Aktive und inaktive Zustände eines ActiveX-Steuerelements
Ein Steuerelement verfügt über zwei grundlegende Zustände: aktiv und inaktiv. Traditionell wurden diese Zustände davon unterschieden, ob das Steuerelement über ein Fenster verfügte. Ein aktives Steuerelement hatte ein Fenster; ein inaktives Steuerelement nicht. Mit der Einführung der fensterlosen Aktivierung ist diese Unterscheidung nicht mehr universell, gilt aber dennoch für viele Steuerelemente.
Wenn ein fensterloses Steuerelement aktiv wird, ruft es die Mausaufnahme, den Tastaturfokus, das Scrollen und andere Fensterdienste aus dem Container auf. Sie können auch Mausinteraktionen für inaktive Steuerelemente bereitstellen und Steuerelemente erstellen, die bis zum Erstellen eines Fensters warten.
Wenn ein Steuerelement mit einem Fenster aktiv wird, kann es vollständig mit dem Steuerelementcontainer, dem Benutzer und Windows interagieren. Die folgende Abbildung zeigt die Kommunikationspfade zwischen dem ActiveX-Steuerelement, dem Steuerelementcontainer und dem Betriebssystem.
Windows-Nachrichtenverarbeitung in einem fensterierten ActiveX-Steuerelement (wenn aktiv)
Serialisierung
Die Möglichkeit zum Serialisieren von Daten, die manchmal als Persistenz bezeichnet werden, ermöglicht es dem Steuerelement, den Wert seiner Eigenschaften in beständigen Speicher zu schreiben. Steuerelemente können dann neu erstellt werden, indem der Status des Objekts aus dem Speicher gelesen wird.
Beachten Sie, dass ein Steuerelement nicht für den Zugriff auf das Speichermedium verantwortlich ist. Stattdessen ist der Container des Steuerelements für die Bereitstellung des Steuerelements mit einem Speichermedium verantwortlich, das zu den entsprechenden Zeiten verwendet werden kann. Weitere Informationen zur Serialisierung finden Sie im Artikel MFC ActiveX Controls: Serializing. Informationen zum Optimieren der Serialisierung finden Sie unter Optimieren der Persistenz und Initialisierung in ActiveX-Steuerelementen: Optimierung.
Installieren von ActiveX-Steuerelementklassen und -Tools
Wenn Sie Visual C++ installieren, werden die MFC ActiveX-Steuerelementklassen und Verkaufs- und Debug-ActiveX-Steuerelement-Laufzeit-DLLs automatisch installiert, wenn ActiveX-Steuerelemente im Setup ausgewählt sind (sie sind standardmäßig ausgewählt).
Standardmäßig werden die ActiveX-Steuerelementklassen und -tools in den folgenden Unterverzeichnissen unter \Programme\Microsoft Visual Studio .NET installiert:
\Common7\Tools
Enthält die Testcontainerdateien (TstCon32.exesowie die zugehörigen Hilfedateien).
\Vc7\atlmfc\include
Enthält die zum Entwickeln von ActiveX-Steuerelementen mit MFC erforderlichen Dateien.
\Vc7\atlmfc\src\mfc
Enthält den Quellcode für bestimmte ActiveX-Steuerelementklassen in MFC
\Vc7\atlmfc\lib
Enthält die Bibliotheken, die zum Entwickeln von ActiveX-Steuerelementen mit MFC erforderlich sind.
Es gibt auch Beispiele für MFC ActiveX-Steuerelemente. Weitere Informationen zu diesen Beispielen finden Sie unter Steuerelementbeispiele: MFC-Based ActiveX-Steuerelemente