Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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-Steuerelement-Container und einem ActiveX-Steuerelement mit Fenster
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. Es handelt sich um die Klasse COleControl, ein Set von Funktionen, die Ereignisse auslösen, und eine Dispatchzuordnung.
Jedes activeX-Steuerelementobjekt, das Sie entwickeln, erbt einen leistungsstarken Satz von Features aus der MFC-Basisklasse. COleControl Zu diesen Features gehören die In-Situ-Aktivierung und die Automatisierungslogik.
COleControl kann dem Steuerobjekt die gleiche Funktionalität wie ein MFC-Fensterobjekt bereitstellen und zusätzlich die Möglichkeit bieten, Ereignisse auszulösen.
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 COleControl abgeleitet wird, erbt sie die Fähigkeit, Nachrichten, sogenannte Ereignisse, an den Steuerelementcontainer zu senden, 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 Dispatchzuordnung, mit der eine Reihe von Funktionen (sogenannte Methoden) und Attributen (sogenannte Eigenschaften) für den Benutzer des Steuerelements sichtbar gemacht werden. 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-Steuerelement-Container 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 der Anfragen des Containers zu bearbeiten, ruft COleControl Member-Funktionen auf, 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 man die Memberfunktionen von COleControl aufruft. 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 ActiveX-Steuerelement mit Fenster (sofern 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 dafür verantwortlich, dem Steuerelement zu den entsprechenden Zeiten ein Speichermedium bereitzustellen. 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 Studio installieren, werden die MFC ActiveX-Steuerelementklassen sowie die Release- und Debug-ActiveX-Steuerelement-Laufzeit-DLLs automatisch installiert, sofern im Setup ActiveX-Steuerelemente 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 Includedateien, die für die Entwicklung von ActiveX-Steuerelementen mit MFC erforderlich sind.
\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