Klasa COleControl jest wydajne klasą bazową dla rozwijania formantów OLE. Uzyskany z CWnd, ta klasa dziedziczy wszystkie funkcje obiekt window systemu Windows oraz dodatkowe funkcje specyficzne dla OLE, takich jak zdarzenia wyzwalania i możliwość obsługi metody i właściwości.
OLE formanty mogą być wstawiane do aplikacji kontenera OLE i komunikować się z kontenera za pomocą systemu dwukierunkowe inicjowanie zdarzeń i stwarzająca metod i właściwości do kontenera. Należy zauważyć, że standardowe kontenery OLE obsługują tylko podstawowe funkcje formantu OLE. Nie obsługują rozszerzone funkcje formantu OLE. Inicjowanie zdarzeń występuje, gdy zdarzenia są wysyłane do kontenera w wyniku niektórych akcji odbywa się w formancie. Z kolei kontenera komunikuje się z formantu przy użyciu zestawu narażonych metod i właściwości analogiczne do funkcji i danych członków klasa C++. Podejście to pozwala deweloperom wygląd formantu i powiadamia kontener wystąpieniu określonych akcji.
OLE formanty mogą być używane w miejsce aktywne bez okna. Formanty bez okien mają znaczących korzyści:
Formanty nie ma potrzeby okna. Usług, które oferuje okna można łatwo udzielane za pośrednictwem jednego udostępnionego okna (zazwyczaj kontenera) i trochę przyznawał kodu. Okno jest głównie niepotrzebne trudność w obiekcie.
Użyty bez okien aktywacji kontenera, (które posiadają okna) jest odpowiedzialny za świadczenie usług, które byłyby dostarczone przez okno własnych kontroli. Na przykład jeśli formantu musi zbadać fokusu klawiatury, kwerendy przechwytywania myszy lub uzyskanie kontekstu urządzenia, operacje te są zarządzane przez kontener. COleControl Członkowskie bez okien działania funkcji wywołania tych operacji na pojemniku.
Po włączeniu funkcji bez okien aktywacji delegatów kontenera wprowadzania wiadomości do formantu IOleInPlaceObjectWindowless interfejsu (rozszerzenie IOleInPlaceObject obsługę bez okien). COleControlwykonania tego interfejsu wyśle te wiadomości za pośrednictwem sieci kontroli wiadomości mapę, po dostosowanie myszy koordynuje odpowiednio. Można przetworzyć te wiadomości jak zwykłe okna wiadomości, dodając odpowiednie wpisy do mapy wiadomości.
W formancie bez okien należy zawsze używać funkcji członek COleControl zamiast na odpowiadające im funkcje Państwa CWnd lub ich powiązane z nią funkcje interfejsu API systemu Windows.
OLE kontroli obiektów można również utworzyć okna tylko wtedy, gdy stają się aktywne, ale ilość pracy potrzebne do przejścia Nieaktywne implanty udaje i szybkość przejścia ulegnie uszkodzeniu. Istnieją przypadki, gdy ten problem: na przykład rozważyć siatki pól tekstowych. Kiedy kursorów w górę oraz w dół kolumny, każdej kontroli musi być w miejscu aktywowane i następnie dezaktywowany. Szybkość przejścia nieaktywny/aktywny bezpośrednio wpływa szybkość przewijania.
Aby uzyskać więcej informacji o tworzeniu ram kontroli OLE, zobacz artykuły Formantów ActiveX i Tworzenie programu z ActiveX ControlWizard w Visual C++ Programmer's Guide. Aby uzyskać więcej informacji na temat dodawania funkcji poza podstawowe ramy, zobacz Tworzenie formantu ActiveX (samouczek Circle) w Visual C++ samouczki. Aby uzyskać informacje dotyczące optymalizowania formantów OLE, w tym formanty windowless i pozbawiony migotania, zobacz formantów ActiveX: optymalizacja w Visual C++ Programmer's Guide.
# include lt;afxctl.h>
Członkowie klasy |nbsp; Klasa podstawowa | Wykres hierarchii
Próbki CIRC3 próbki MFC | Próbki MFC DRAWPIC | Próbki MFC TESTHELP
Zobacz też COlePropertyPage, CFontHolder, CPictureHolder