MFC-ActiveX-Steuerelemente: Optimierung

In diesem Artikel werden Techniken erläutert, mit deren Hilfe Sie Ihre ActiveX-Steuerelemente optimieren können, um eine bessere Leistung zu erzielen.

Wichtig

ActiveX ist eine Legacytechnologie, die nicht für neue Software verwendet werden sollte. Weitere Informationen zu modernen Technologien, die ActiveX ablösen, finden Sie unter ActiveX-Steuerelemente.

In den Themen zum Deaktivieren der Option "Aktivieren beim Anzeigen " und bereitstellen von Mausinteraktionen während inaktiv werden Steuerelemente behandelt, die erst ein Fenster erstellen, nachdem es aktiviert wurde. Im Thema "Bereitstellen der fensterlosen Aktivierung " werden Steuerelemente erläutert, die nie ein Fenster erstellen, auch wenn sie aktiviert werden.

Windows hat zwei wesentliche Nachteile für OLE-Objekte: Sie verhindern, dass Objekte transparent oder nichtectangular sind, wenn sie aktiv sind, und sie fügen einen großen Aufwand zur Instanziierung und Anzeige von Steuerelementen hinzu. In der Regel dauert das Erstellen eines Fensters 60 Prozent der Erstellungszeit eines Steuerelements. Bei einem einzelnen freigegebenen Fenster (in der Regel dem Container) und einem bestimmten Verteilercode empfängt ein Steuerelement die gleichen Fensterdienste, im Allgemeinen ohne Leistungsverlust. Das Vorhandensein eines Fensters ist meist unnötiger Aufwand für das Objekt.

Einige Optimierungen verbessern nicht unbedingt die Leistung, wenn Ihr Steuerelement in bestimmten Containern verwendet wird. Container, die vor 1996 veröffentlicht wurden, unterstützen beispielsweise keine fensterlose Aktivierung, sodass die Implementierung dieses Features in älteren Containern keinen Vorteil bietet. Fast jeder Container unterstützt jedoch Persistenz, sodass die Optimierung des Persistenzcodes ihres Steuerelements wahrscheinlich die Leistung in jedem Container verbessert. Wenn Ihr Steuerelement speziell für die Verwendung mit einem bestimmten Containertyp vorgesehen ist, sollten Sie untersuchen, welche dieser Optimierungen von diesem Container unterstützt werden. Im Allgemeinen sollten Sie jedoch versuchen, so viele dieser Techniken zu implementieren, wie sie für Ihr bestimmtes Steuerelement gelten, um sicherzustellen, dass Ihr Steuerelement funktioniert und es in einer vielzahl von Containern möglich ist.

Sie können viele dieser Optimierungen über den MFC ActiveX-Steuerelement-Assistenten auf der Seite "Steuerelement Einstellungen" implementieren.

MFC ActiveX-Steuerelement-Assistent OLE-Optimierungsoptionen

Steuerelementeinstellung im MFC ActiveX-Steuerelement-Assistenten Aktion Weitere Informationen
Aktivieren, wenn das Kontrollkästchen angezeigt wird Clear Deaktivieren der Option "Beim Anzeigen aktivieren"
Kontrollkästchen "Fensterlose Aktivierung" Auswählen Bereitstellung von fensterloser Aktivierung
Kontrollkästchen "Nicht angeklammerter Gerätekontext " Auswählen Verwenden eines Gerätekontexts ohne Clippingbereichsanpassung
Kontrollkästchen "Flimmerfreie Aktivierung" Auswählen Bereitstellen flimmerfreier Aktivierung
Mauszeigerbenachrichtigungen bei inaktiven Kontrollkästchen Auswählen Bereitstellen von Mausinteraktionen in inaktiven Steuerelementen
Kontrollkästchen "Optimierter Zeichnungscode " Auswählen Optimieren der Steuerelementdarstellung

Ausführliche Informationen zu den Memberfunktionen, die diese Optimierungen implementieren, finden Sie unter COleControl.

Weitere Informationen finden Sie unter:

Siehe auch

MFC ActiveX Controls (MFC-ActiveX-Steuerelemente)