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:
Bereitstellen von Mausinteraktionen in inaktiven Steuerelementen
Verwenden eines Gerätekontexts ohne Clippingbereichsanpassung