COleControl

Die COleControl -Klasse ist eine leistungsfähige Basisklasse für OLE-Steuerelemente zu entwickeln. Von CWndabgeleitet ist, erbt diese Klasse alle Funktionen eines Windows Window-Objekts sowie zusätzliche Funktionalität speziell für OLE, wie z. B. Ereignisauslösung und die Fähigkeit zur Unterstützung von Methoden und Eigenschaften.

OLE-Steuerelemente in OLE-Container-Anwendungen eingefügt werden können und kommunizieren mit den Container über ein zwei-Wege System Ereignis auslösen und Verfügbarmachen Methoden und Eigenschaften in den Container. Beachten Sie, dass die standard-OLE-Container unterstützen nur die grundlegende Funktionalität eines OLE-Steuerelements. Sie können keine Unterstützung für erweiterte Features eines OLE-Steuerelements. Ereignis auslösen tritt auf, wenn der Container aufgrund einer bestimmten Aktionen in das Steuerelement Ereignisse gesendet werden. Wiederum kommuniziert der Container mit dem Steuerelement mithilfe einer exponierten Satz von Methoden und Eigenschaften analog zu den Memberfunktionen und Datenmember einer C++-Klasse. Dieser Ansatz ermöglicht dem Entwickler steuern die Darstellung des Steuerelements und den Container zu benachrichtigen, wenn bestimmte Aktionen auftreten.

Fensterlose Steuerelemente

OLE möglich Steuerelemente verwendeten in-Place aktiv ohne Fenster. Fensterlose Steuerelemente haben erhebliche Vorteile:

Steuerelemente müssen kein Fenster. Dienste, die ein Fenster bietet können leicht über eines einzelnen freigegebenen Fensters (in der Regel den Container) und ein wenig der Inanspruchnahme von Erzeugungsanlagen solchen Code bereitgestellt werden. Ein Fenster ist meist eine unnötige Komplikation auf das Objekt.

Wenn fensterlose Aktivierung verwendet wird, ist der Container (die ein Fenster verfügt) verantwortlich für die Bereitstellung von Dienstleistungen, die sonst durch das Fenster des Steuerelements bereitgestellt würden. Beispielsweise, wenn das Steuerelement den Tastaturfokus Abfragen, Abfrage die Mausauswahl oder erhalten einen Gerätekontext, werden diese Vorgänge vom Container verwaltet. Die COleControl fensterlose-Betrieb Memberfunktionen Aufrufen dieser Operationen auf den container.

Wenn fensterlose Aktivierung aktiviert ist, die Container-Delegaten geben Sie Nachrichten an die Schnittstelle des Steuerelements IOleInPlaceObjectWindowless (eine Erweiterung des IOleInPlaceObject für fensterlose Unterstützung). COleControlImplementierung dieser Schnittstelle versenden diese Meldungen über die Meldungszuordnung des Steuerelements, nach dem Anpassen der Maus entsprechend koordiniert. Sie können diese Nachrichten wie gewöhnliches Fenster-Nachrichten verarbeiten, indem der Meldungszuordnung die entsprechenden Einträge hinzufügen.

In einem fensterlosen Steuerelement sollten Sie immer die COleControl -Memberfunktionen anstelle der entsprechenden CWnd -Memberfunktionen oder ihre verwandten Windows API-Funktionen verwenden.

OLE können Control-Objekte ein Fenster nur, wenn sie aktiv, aber die Menge der Arbeit notwendig für den Übergang inaktiv aktiv steigt und die Geschwindigkeit des Übergangs sinkt. Es gibt Fälle, wenn dieses Problem auftritt: betrachten Sie als Beispiel, ein Raster mit Textfeldern. Als Einfügemarke mit Bildlauf verschieben nach oben oder unten durch die Spalte, jedes Steuerelement in-Place-muss aktiviert und dann deaktiviert. Die Geschwindigkeit des Übergangs inaktiv/aktiv wirkt sich direkt auf die Bildlaufgeschwindigkeit.

Weitere Informationen zum Entwickeln eines OLE-Kontrollrahmens, finden Sie in die Artikeln ActiveX-Steuerelemente und Programm mit der ActiveX-der erstellen im Visual C++ Programmer's Guide. Weitere Informationen zum Hinzufügen von Funktionen über das grundlegende Framework finden Sie unter (das Kreis-Tutorial) Erstellen eines ActiveX-Steuerelements , in Visual C++ Tutorials. Informationen zum Optimieren der OLE-Steuerelemente, z. B. fensterlose und flimmerfreie-Steuerelemente finden Sie unter und ActiveX-Steuerelemente: Optimierung im Visual C++ Programmer's Guide.

# include lt;afxctl.h>

Klassenmember |nbsp; Basisklasse | Hierarchiediagramm

Proben&Nbsp; MFC-Beispiel CIRC3 | MFC-Beispiel DRAWPIC | MFC-Beispiel TESTHELP

Siehe auch&Nbsp;COlePropertyPage, CFontHolder, CPictureHolder

Index