Klasa COleControl

Zaawansowana klasa bazowa do tworzenia kontrolek OLE.

Składnia

class COleControl : public CWnd

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
COleControl::COleControl Tworzy obiekt COleControl.

Metody publiczne

Nazwa/nazwisko opis
COleControl::AmbientAppearance Pobiera bieżący wygląd kontrolki.
COleControl::AmbientBackColor Zwraca wartość właściwości ambient BackColor.
COleControl::AmbientDisplayName Zwraca nazwę kontrolki określonej przez kontener.
COleControl::AmbientFont Zwraca wartość właściwości czcionki otoczenia.
COleControl::AmbientForeColor Zwraca wartość właściwości ambient ForeColor.
COleControl::AmbientLocaleID Zwraca identyfikator ustawień regionalnych kontenera.
COleControl::AmbientScaleUnits Zwraca typ jednostek używanych przez kontener.
COleControl::AmbientShowGrabHandles Określa, czy powinny być wyświetlane uchwyty chwytania.
COleControl::AmbientShowHatching Określa, czy ma być wyświetlane kreskowanie.
COleControl::AmbientTextAlign Zwraca typ wyrównania tekstu określonego przez kontener.
COleControl::AmbientUIDead Określa, czy kontrolka powinna odpowiadać na akcje interfejsu użytkownika.
COleControl::AmbientUserMode Określa tryb kontenera.
COleControl::BoundPropertyChanged Powiadamia kontener o zmianie właściwości powiązanej.
COleControl::BoundPropertyRequestEdit Żąda uprawnień do edytowania wartości właściwości.
COleControl::ClientToParent Tłumaczy punkt względem źródła kontrolki na punkt względny względem źródła kontenera.
COleControl::ClipCaretRect Dostosowuje prostokąt karetki, jeśli nakłada się na nią kontrolka.
COleControl::ControlInfoChanged Wywołaj tę funkcję po zmianie zestawu mnemonics obsługiwanych przez kontrolkę.
COleControl::D isplayError Wyświetla zdarzenia błędu zapasów dla użytkownika kontrolki.
COleControl::D oClick Implementacja metody stockowej DoClick .
COleControl::D oPropExchange Serializuje właściwości COleControl obiektu.
COleControl::D oSuperclassPaint Ponownie rysuje kontrolkę OLE, która została podklasowana z kontrolki systemu Windows.
COleControl::EnableSimpleFrame Umożliwia obsługę prostej ramki dla kontrolki.
COleControl::ExchangeExtent Serializuje szerokość i wysokość kontrolki.
COleControl::ExchangeStockProps Serializuje właściwości akcji kontrolki.
COleControl::ExchangeVersion Serializuje numer wersji kontrolki.
COleControl::FireClick Uruchamia zdarzenie giełdowe Click .
COleControl::FireDblClick Uruchamia zdarzenie giełdowe DblClick .
COleControl::FireError Uruchamia zdarzenie giełdowe Error .
COleControl::FireEvent Uruchamia zdarzenie niestandardowe.
COleControl::FireKeyDown Uruchamia zdarzenie giełdowe KeyDown .
COleControl::FireKeyPress Uruchamia zdarzenie giełdowe KeyPress .
COleControl::FireKeyUp Uruchamia zdarzenie giełdowe KeyUp .
COleControl::FireMouseDown Uruchamia zdarzenie giełdowe MouseDown .
COleControl::FireMouseMove Uruchamia zdarzenie giełdowe MouseMove .
COleControl::FireMouseUp Uruchamia zdarzenie giełdowe MouseUp .
COleControl::FireReadyStateChange Uruchamia zdarzenie, gdy stan gotowości kontrolki ulegnie zmianie.
COleControl::GetActivationPolicy Zmienia domyślne zachowanie aktywacji kontrolki obsługującej IPointerInactive interfejs.
COleControl::GetAmbientProperty Zwraca wartość określonej właściwości otoczenia.
COleControl::GetAppearance Zwraca wartość właściwości Stock Appearance.
COleControl::GetBackColor Zwraca wartość właściwości Stock BackColor.
COleControl::GetBorderStyle Zwraca wartość właściwości Stock BorderStyle.
COleControl::GetCapture Określa, czy obiekt kontrolki bez okna, aktywowany ma przechwytywanie myszy.
COleControl::GetClassID Pobiera identyfikator klasy OLE kontrolki.
COleControl::GetClientOffset Pobiera różnicę między lewym górnym róg prostokątnego obszaru kontrolki a lewym górnym rogu obszaru klienta.
COleControl::GetClientRect Pobiera rozmiar obszaru klienta kontrolki.
COleControl::GetClientSite Wysyła zapytanie do obiektu wskaźnika do bieżącej lokacji klienta w kontenerze.
COleControl::GetControlFlags Pobiera ustawienia flagi sterowania.
COleControl::GetControlSize Zwraca położenie i rozmiar kontrolki OLE.
COleControl::GetDC Zapewnia środki dla kontrolki bez okien w celu pobrania kontekstu urządzenia z kontenera.
COleControl::GetEnabled Zwraca wartość właściwości stock Enabled.
COleControl::GetExtendedControl Pobiera wskaźnik do rozszerzonego obiektu sterującego należącego do kontenera.
COleControl::GetFocus Określa, czy kontrolka ma fokus.
COleControl::GetFont Zwraca wartość właściwości czcionki stockowej.
COleControl::GetFontTextMetrics Zwraca metryki CFontHolder obiektu.
COleControl::GetForeColor Zwraca wartość właściwości Stock ForeColor.
COleControl::GetHwnd Zwraca wartość właściwości hWnd akcji.
COleControl::GetMessageString Zawiera tekst paska stanu dla elementu menu.
COleControl::GetNotSupported Uniemożliwia dostęp do wartości właściwości kontrolki przez użytkownika.
COleControl::GetReadyState Zwraca stan gotowości kontrolki.
COleControl::GetRectInContainer Zwraca prostokąt kontrolki względem kontenera.
COleControl::GetStockTextMetrics Zwraca metryki właściwości czcionki stockowej.
COleControl::GetText Zwraca wartość właściwości Text lub Caption w magazynie.
COleControl::GetWindowlessDropTarget Zastąpić, aby umożliwić sterowanie bez okien jako element docelowy operacji przeciągania i upuszczania.
COleControl::InitializeIDs Informuje klasę bazową identyfikatorów IID, które będą używane przez kontrolkę.
COleControl::InternalGetFont Zwraca obiekt dla właściwości Czcionka CFontHolder giełdowa.
COleControl::InternalGetText Pobiera właściwość Stock Caption lub Text.
COleControl::InternalSetReadyState Ustawia stan gotowości kontrolki i uruchamia zdarzenie gotowej zmiany stanu.
COleControl::InvalidateControl Unieważnia obszar wyświetlanej kontrolki, powodując jego ponowne rysowanie.
COleControl::InvalidateRgn Unieważnia obszar klienta okna kontenera w danym regionie. Umożliwia ponowne rysowanie kontrolek bez okien w regionie.
COleControl::IsConvertingVBX Umożliwia wyspecjalizowane ładowanie kontrolki OLE.
COleControl::IsModified Określa, czy stan kontrolki uległ zmianie.
COleControl::IsOptimizedDraw Wskazuje, czy kontener obsługuje zoptymalizowany rysunek dla bieżącej operacji rysunku.
COleControl::IsSubclassedControl Wywoływane w celu określenia, czy podklasy formantu systemu Windows.
COleControl::Load Resetuje wszystkie poprzednie dane asynchroniczne i inicjuje nowe obciążenie właściwości asynchronicznej kontrolki.
COleControl::LockInPlaceActive Określa, czy kontrolka może być dezaktywowana przez kontener.
COleControl::OnAmbientPropertyChange Wywoływana, gdy właściwość otoczenia jest zmieniana.
COleControl::OnAppearanceChanged Wywoływana po zmianie właściwości wyglądu akcji.
COleControl::OnBackColorChanged Wywoływana po zmianie właściwości Stock BackColor.
COleControl::OnBorderStyleChanged Wywoływana, gdy właściwość Stock BorderStyle zostanie zmieniona.
COleControl::OnClick Wywołana w celu wyzwolenia zdarzenia stock Click.
COleControl::OnClose Powiadamia kontrolkę, która IOleControl::Close została wywołana.
COleControl::OnDoVerb Wywoływane po wykonaniu czasownika sterującego.
COleControl::OnDraw Wywoływana, gdy jest wymagane ponowne rysowanie kontrolki.
COleControl::OnDrawMetafile Wywoływana przez kontener, gdy zażądano ponownego wyrysowania kontrolki przy użyciu kontekstu urządzenia metapliku.
COleControl::OnEdit Wywoływana przez kontener do interfejsu użytkownika aktywowanie kontrolki OLE.
COleControl::OnEnabledChanged Wywoływana, gdy właściwość stock Enabled zostanie zmieniona.
COleControl::OnenumVerbs Wywoływana przez kontener w celu wyliczenia czasowników kontrolki.
COleControl::OnEventAdvise Wywoływane, gdy programy obsługi zdarzeń są połączone lub odłączone od kontrolki.
COleControl::OnFontChanged Wywoływana, gdy właściwość czcionki stockowej zostanie zmieniona.
COleControl::OnForeColorChanged Wywoływana, gdy właściwość Stock ForeColor zostanie zmieniona.
COleControl::OnFreezeEvents Wywoływane, gdy zdarzenia kontrolki są zamrożone lub niezamrożone.
COleControl::OnGetColorSet Powiadamia kontrolkę, która IOleObject::GetColorSet została wywołana.
COleControl::OnGetControlInfo Dostarcza informacje mnemonic do kontenera.
COleControl::OnGetDisplayString Wywoływana w celu uzyskania ciągu reprezentującego wartość właściwości.
COleControl::OnGetInPlaceMenu Żąda obsługi menu kontrolki, które zostanie scalone z menu kontenera.
COleControl::OnGetNaturalExtent Zastąpij, aby pobrać rozmiar wyświetlania kontrolki najbliżej proponowanego rozmiaru i ex tryb namiotu.
COleControl::OnGetPredefinedStrings Zwraca ciągi reprezentujące możliwe wartości dla właściwości.
COleControl::OnGetPredefinedValue Zwraca wartość odpowiadającą wstępnie zdefiniowanemu ciągowi.
COleControl::OnGetViewExtent Zastąp, aby pobrać rozmiar obszarów wyświetlania kontrolki (można użyć do włączenia rysowania dwuprzepustowego).
COleControl::OnGetViewRect Zastąpij, aby przekonwertować rozmiar kontrolki na prostokąt zaczynający się od określonej pozycji.
COleControl::OnGetViewStatus Zastąpij, aby pobrać stan widoku kontrolki.
COleControl::OnHideToolBars Wywoływana przez kontener, gdy kontrolka jest dezaktywowana.
COleControl::OnInactiveMouseMove Zastąpić, aby kontener dla nieaktywnej kontrolki pod wskaźnikiem myszy wysyłał komunikaty WM_MOUSEMOVE do kontrolki.
COleControl::OnInactiveSetCursor Zastąpić, aby kontener dla nieaktywnej kontrolki pod wskaźnikiem myszy wysyłał komunikaty WM_SETCURSOR do kontrolki.
COleControl::OnKeyDownEvent Wywołana po wyzwoleniu zdarzenia keydown zapasów.
COleControl::OnKeyPressevent Wywoływane po uruchomieniu zdarzenia KeyPress.
COleControl::OnKeyUpEvent Wywołana po wyzwoleniu zdarzenia keyup akcji.
COleControl::OnMapPropertyToPage Wskazuje, która strona właściwości ma być używana do edytowania właściwości.
COleControl::OnMnemonic Wywoływana po naciśnięciu klawisza mnemonic kontrolki.
COleControl::OnProperties Wywoływane po wywołaniu czasownika "Właściwości" kontrolki.
COleControl::OnQueryHitPoint Zastąpij zapytanie, czy wyświetlanie kontrolki nakłada się na dany punkt.
COleControl::OnQueryHitRect Zastąpij zapytanie, czy wyświetlacz kontrolki nakłada się na dowolny punkt w danym prostokątze.
COleControl::OnRenderData Wywoływana przez platformę w celu pobrania danych w określonym formacie.
COleControl::OnRenderFileData Wywoływana przez platformę w celu pobrania danych z pliku w określonym formacie.
COleControl::OnrenderGlobalData Wywoływana przez platformę w celu pobierania danych z pamięci globalnej w określonym formacie.
COleControl::OnResetState Resetuje właściwości kontrolki do wartości domyślnych.
COleControl::OnSetClientSite Powiadamia kontrolkę, która IOleControl::SetClientSite została wywołana.
COleControl::OnSetData Zamienia dane kontrolki na inną wartość.
COleControl::OnSetExtent Wywołana po zmianie zakresu kontrolki.
COleControl::OnSetObjectRects Wywoływane po zmianie wymiarów kontrolki.
COleControl::OnShowToolBars Wywoływana, gdy kontrolka została aktywowana przez interfejs użytkownika.
COleControl::OnTextChanged Wywoływana po zmianie właściwości Tekst lub Podpis w magazynie.
COleControl::OnWindowlessMessage Przetwarza komunikaty okien (inne niż komunikaty myszy i klawiatury) dla kontrolek bez okien.
COleControl::P arentToClient Tłumaczy punkt względem źródła kontenera na punkt względny względem źródła kontrolki.
COleControl::P ostModalDialog Powiadamia kontener o zamknięciu modalnego okna dialogowego.
COleControl::P reModalDialog Powiadamia kontener, że zostanie wyświetlone modalne okno dialogowe.
COleControl::RecreateControlWindow Niszczy i ponownie tworzy okno kontrolki.
COleControl::Refresh Wymusza przemalowanie wyglądu kontrolki.
COleControl::ReleaseCapture Zwalnia przechwytywanie myszy.
COleControl::ReleaseDC Zwalnia kontekst wyświetlania urządzenia kontenera kontrolki bez okien.
COleControl::ReparentControlWindow Resetuje element nadrzędny okna sterowania.
COleControl::ResetStockProps Inicjuje COleControl właściwości akcji do ich wartości domyślnych.
COleControl::ResetVersion Inicjuje numer wersji dla danej wartości.
COleControl::ScrollWindow Umożliwia kontrolce bez okien przewijanie obszaru w swoim aktywnym obrazie na ekranie.
COleControl::SelectFontObject Wybiera niestandardową właściwość Czcionka w kontekście urządzenia.
COleControl::SelectStockFont Wybiera właściwość czcionki stockowej w kontekście urządzenia.
COleControl::SerializeExtent Serializuje lub inicjuje miejsce wyświetlania kontrolki.
COleControl::SerializeStockProps Serializuje lub inicjuje COleControl właściwości zapasów.
COleControl::SerializeVersion Serializuje lub inicjuje informacje o wersji kontrolki.
COleControl::SetAppearance Ustawia wartość właściwości Stock Appearance.
COleControl::SetBackColor Ustawia wartość właściwości Stock BackColor.
COleControl::SetBorderStyle Ustawia wartość właściwości Stock BorderStyle.
COleControl::SetCapture Powoduje, że okno kontenera kontrolki ma mieć przechwycenie myszy w imieniu kontrolki.
COleControl::SetControlSize Ustawia położenie i rozmiar kontrolki OLE.
COleControl::SetEnabled Ustawia wartość właściwości stock Enabled.
COleControl::SetFocus Powoduje, że okno kontenera kontrolki ma mieć fokus danych wejściowych w imieniu kontrolki.
COleControl::SetFont Ustawia wartość właściwości czcionki stockowej.
COleControl::SetForeColor Ustawia wartość właściwości Stock ForeColor.
COleControl::SetInitialSize Ustawia rozmiar kontrolki OLE po pierwszym wyświetleniu w kontenerze.
COleControl::SetModifiedFlag Zmienia zmodyfikowany stan kontrolki.
COleControl::SetNotPermitted Wskazuje, że żądanie edycji nie powiodło się.
COleControl::SetNotSupported Uniemożliwia modyfikowanie wartości właściwości kontrolki przez użytkownika.
COleControl::SetRectInContainer Ustawia prostokąt kontrolki względem kontenera.
COleControl::SetText Ustawia wartość właściwości Text (tekst) stock (Tekst) lub Caption (Podpis).
COleControl::ThrowError Sygnały o wystąpieniu błędu w kontrolce OLE.
COleControl::TransformCoords Przekształca wartości współrzędnych między kontenerem a kontrolką.
COleControl::TranslateColor Konwertuje wartość OLE_COLOR na wartość COLORREF.
COleControl::WillAmbientsBeValidDuringLoad Określa, czy właściwości otoczenia będą dostępne przy następnym załadowaniu kontrolki.
COleControl::WindowProc Zawiera procedurę COleControl systemu Windows dla obiektu.

Metody chronione

Nazwa/nazwisko opis
COleControl::D rawContent Wywoływana przez strukturę, gdy wygląd kontrolki musi zostać zaktualizowany.
COleControl::D rawMetafile Wywoływana przez platformę, gdy jest używany kontekst urządzenia metapliku.
COleControl::IsInvokeAllowed Włącza wywołanie metody automatyzacji.
COleControl::SetInitialDataFormats Wywoływana przez platformę w celu zainicjowania listy formatów danych obsługiwanych przez kontrolkę.

Uwagi

Pochodna z CWndklasy , ta klasa dziedziczy wszystkie funkcje obiektu okna systemu Windows oraz dodatkowe funkcje specyficzne dla ole, takie jak wyzwalanie zdarzeń i możliwość obsługi metod i właściwości.

Kontrolki OLE można wstawiać do aplikacji kontenerów OLE i komunikować się z kontenerem przy użyciu dwukierunkowego systemu wyzwalania zdarzeń i uwidaczniania metod i właściwości kontenera. Należy pamiętać, że standardowe kontenery OLE obsługują tylko podstawowe funkcje kontrolki OLE. Nie mogą obsługiwać rozszerzonych funkcji kontrolki OLE. Wyzwalanie zdarzeń występuje, gdy zdarzenia są wysyłane do kontenera w wyniku pewnych akcji w kontrolce. Z kolei kontener komunikuje się z kontrolką przy użyciu uwidocznionego zestawu metod i właściwości analogicznych do funkcji składowych i składowych danych klasy C++. Takie podejście umożliwia deweloperowi kontrolowanie wyglądu kontrolki i powiadamianie kontenera o wystąpieniu określonych akcji.

Kontrolki bez okien

Kontrolki OLE mogą być używane w miejscu aktywnym bez okna. Kontrolki bez okien mają znaczące zalety:

  • Kontrolki bez okien mogą być przezroczyste i nie prostokątne

  • Kontrolki bez okien zmniejszają rozmiar wystąpienia i czas tworzenia obiektu

Kontrolki nie wymagają okna. Usługi oferowane przez okno można łatwo udostępniać za pośrednictwem jednego okna udostępnionego (zazwyczaj kontenera) i trochę kodu wysyłającego. Posiadanie okna jest głównie niepotrzebnym komplikacją obiektu.

Gdy jest używana aktywacja bez okien, kontener (który ma okno) jest odpowiedzialny za dostarczanie usług, które w przeciwnym razie zostałyby dostarczone przez własne okno kontrolki. Jeśli na przykład kontrolka musi wykonywać zapytania dotyczące fokusu klawiatury, wykonywać zapytania dotyczące przechwytywania myszy lub uzyskiwać kontekst urządzenia, te operacje są zarządzane przez kontener. Funkcje COleControl składowe operacji bez okna wywołują te operacje w kontenerze.

Po włączeniu aktywacji bez okien kontener deleguje komunikaty wejściowe do interfejsu kontrolki IOleInPlaceObjectWindowless (rozszerzenie IOleInPlaceObject na potrzeby obsługi bez okien). COleControlImplementacja tego interfejsu spowoduje wysłanie tych komunikatów za pośrednictwem mapy komunikatów kontrolki po odpowiednim dostosowaniu współrzędnych myszy. Możesz przetwarzać te komunikaty, takie jak zwykłe komunikaty okien, dodając odpowiednie wpisy do mapy komunikatów.

W kontrolce bez okien należy zawsze używać COleControl funkcji składowych zamiast odpowiednich CWnd funkcji składowych lub powiązanych funkcji interfejsu API systemu Windows.

Obiekty sterujące OLE mogą również tworzyć okno tylko wtedy, gdy stają się aktywne, ale ilość pracy wymaganej do przejścia nieaktywnego aktywnego rośnie, a szybkość przejścia spadnie. Istnieją przypadki, gdy jest to problem: jako przykład należy wziąć pod uwagę siatkę pól tekstowych. Podczas przechodzenia kursorem w górę i w dół do kolumny każda kontrolka musi być aktywowana w miejscu, a następnie dezaktywowana. Szybkość nieaktywnego/aktywnego przejścia będzie bezpośrednio wpływać na szybkość przewijania.

Aby uzyskać więcej informacji na temat tworzenia struktury sterowania OLE, zobacz artykuły MFC ActiveX Controls and Overview: Creating an MFC ActiveX Control Program (Omówienie: Tworzenie programu kontrolek ActiveX MFC). Aby uzyskać informacje na temat optymalizowania kontrolek OLE, w tym kontrolek bez okien i migotania, zobacz MFC ActiveX Controls: Optimization (Kontrolki ActiveX MFC: optymalizacja).

Hierarchia dziedziczenia

Cobject

Ccmdtarget

Cwnd

COleControl

Wymagania

Nagłówek: afxctl.h

COleControl::AmbientBackColor

Zwraca wartość właściwości ambient BackColor.

OLE_COLOR AmbientBackColor();

Wartość zwracana

Bieżąca wartość właściwości BackColor otoczenia kontenera, jeśli istnieje. Jeśli właściwość nie jest obsługiwana, ta funkcja zwraca zdefiniowany przez system kolor tła systemu Windows.

Uwagi

Właściwość ambient BackColor jest dostępna dla wszystkich kontrolek i jest definiowana przez kontener. Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientDisplayName

Nazwa kontenera przypisana do kontrolki może być używana w komunikatach o błędach wyświetlanych użytkownikowi.

CString AmbientDisplayName();

Wartość zwracana

Nazwa kontrolki OLE. Wartość domyślna to ciąg o zerowej długości.

Uwagi

Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientFont

Zwraca wartość właściwości czcionki otoczenia.

LPFONTDISP AmbientFont();

Wartość zwracana

Wskaźnik do otoczenia interfejsu wysyłania czcionek kontenera. Wartość domyślna to NULL. Jeśli zwracana wartość nie jest równa null, odpowiadasz za zwolnienie czcionki przez wywołanie jej funkcji elementu członkowskiego IUnknown::Release .

Uwagi

Właściwość czcionki otoczenia jest definiowana przez kontener i dostępna dla wszystkich kontrolek. Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientForeColor

Zwraca wartość właściwości ambient ForeColor.

OLE_COLOR AmbientForeColor();

Wartość zwracana

Bieżąca wartość właściwości otoczenia kontenera ForeColor, jeśli istnieje. Jeśli ta funkcja nie jest obsługiwana, zwraca zdefiniowany przez system kolor tekstu systemu Windows.

Uwagi

Właściwość ambient ForeColor jest dostępna dla wszystkich kontrolek i jest definiowana przez kontener. Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientLocaleID

Zwraca identyfikator ustawień regionalnych kontenera.

LCID AmbientLocaleID();

Wartość zwracana

Wartość właściwości LocaleID kontenera, jeśli istnieje. Jeśli ta właściwość nie jest obsługiwana, ta funkcja zwraca wartość 0.

Uwagi

Kontrolka może użyć identyfikatora LocaleID, aby dostosować interfejs użytkownika do określonych ustawień regionalnych. Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientAppearance

Pobiera bieżące ustawienie wyglądu obiektu sterującego.

short AmbientAppearance();

Wartość zwracana

Wygląd kontrolki:

  • 0 Wygląd płaski

  • Wygląd 1 3D

Uwagi

Wywołaj tę funkcję, aby pobrać bieżącą wartość właściwości DISPID_AMBIENT_APPEARANCE dla kontrolki.

COleControl::AmbientScaleUnits

Zwraca typ jednostek używanych przez kontener.

CString AmbientScaleUnits();

Wartość zwracana

Ciąg zawierający elementy ScaleUnits otoczenia kontenera. Jeśli ta właściwość nie jest obsługiwana, ta funkcja zwraca ciąg o zerowej długości.

Uwagi

Właściwość ScaleUnits otoczenia kontenera może służyć do wyświetlania pozycji lub wymiarów, oznaczonych wybraną jednostką, takich jak twips lub centymetry. Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientShowGrabHandles

Określa, czy kontener umożliwia kontrolce wyświetlanie uchwytów chwytania dla siebie, gdy są aktywne.

BOOL AmbientShowGrabHandles();

Wartość zwracana

Niezerowe, jeśli powinny być wyświetlane uchwyty chwytania; w przeciwnym razie 0. Jeśli ta właściwość nie jest obsługiwana, ta funkcja zwraca wartość niezerową.

Uwagi

Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientShowHatching

Określa, czy kontener umożliwia kontrolce wyświetlanie się przy użyciu wzorca kreskowanego, gdy interfejs użytkownika jest aktywny.

BOOL AmbientShowHatching();

Wartość zwracana

Niezero, jeśli ma być pokazany wzór kreskowany; w przeciwnym razie 0. Jeśli ta właściwość nie jest obsługiwana, ta funkcja zwraca wartość niezerową.

Uwagi

Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientTextAlign

Określa wyrównanie tekstu otoczenia preferowane przez kontener sterowania.

short AmbientTextAlign();

Wartość zwracana

Stan otoczenia właściwości TextAlign kontenera. Jeśli ta właściwość nie jest obsługiwana, ta funkcja zwraca wartość 0.

Poniżej znajduje się lista prawidłowych wartości zwracanych:

Wartość zwracana Znaczenie
0 Wyrównanie ogólne (liczby po prawej stronie, tekst po lewej stronie).
1 Wyjustuj w lewo
2 Wyśrodkuj
3 Prawo wyjustuj

Uwagi

Ta właściwość jest dostępna dla wszystkich osadzonych kontrolek i jest definiowana przez kontener. Należy pamiętać, że kontener nie jest wymagany do obsługi tej właściwości.

COleControl::AmbientUIDead

Określa, czy kontener chce, aby kontrolka odpowiadała na akcje interfejsu użytkownika.

BOOL AmbientUIDead();

Wartość zwracana

Niezerowe, jeśli kontrolka powinna reagować na akcje interfejsu użytkownika; w przeciwnym razie 0. Jeśli ta właściwość nie jest obsługiwana, ta funkcja zwraca wartość 0.

Uwagi

Na przykład kontener może ustawić wartość TRUE w trybie projektowania.

COleControl::AmbientUserMode

Określa, czy kontener jest w trybie projektowania, czy w trybie użytkownika.

BOOL AmbientUserMode();

Wartość zwracana

Nonzero, jeśli kontener jest w trybie użytkownika; w przeciwnym razie 0 (w trybie projektowania). Jeśli ta właściwość nie jest obsługiwana, ta funkcja zwraca wartość TRUE.

Uwagi

Na przykład kontener może ustawić wartość FALSE w trybie projektowania.

COleControl::BoundPropertyChanged

Sygnały, że wartość powiązanej właściwości została zmieniona.

void BoundPropertyChanged(DISPID dispid);

Parametry

Dispid
Identyfikator wysyłki powiązanej właściwości kontrolki.

Uwagi

Ta wartość musi być wywoływana za każdym razem, gdy wartość właściwości się zmienia, nawet w przypadkach, gdy zmiana nie została wprowadzona za pomocą metody Set właściwości. Należy szczególnie pamiętać o powiązanych właściwościach mapowanych na zmienne składowe. Za każdym razem, gdy taka zmienna składowa ulegnie zmianie, BoundPropertyChanged należy wywołać metodę .

COleControl::BoundPropertyRequestEdit

Żąda uprawnień z interfejsu IPropertyNotifySink w celu zmiany powiązanej wartości właściwości dostarczonej przez kontrolkę.

BOOL BoundPropertyRequestEdit(DISPID dispid);

Parametry

Dispid
Identyfikator wysyłki powiązanej właściwości kontrolki.

Wartość zwracana

Niezerowe, jeśli zmiana jest dozwolona; w przeciwnym razie 0. Wartość domyślna to nonzero.

Uwagi

Jeśli uprawnienie zostanie odrzucone, kontrolka nie może pozwolić na zmianę wartości właściwości. Można to zrobić, ignorując lub nie wykonując akcji, która próbowała zmienić wartość właściwości.

COleControl::ClientToParent

Tłumaczy współrzędne pPoint na współrzędne nadrzędne.

virtual void ClientToParent(
    LPCRECT lprcBounds,
    LPPOINT pPoint) const;

Parametry

lprcBounds
Wskaźnik do granic kontrolki OLE w kontenerze. Nie obszar klienta, ale obszar całej kontrolki, w tym obramowania i paski przewijania.

pPoint
Wskaźnik do punktu klienta OLE, który ma zostać przetłumaczony na współrzędne elementu nadrzędnego (kontenera).

Uwagi

W danych wejściowych pPoint jest względem źródła obszaru klienta kontrolki OLE (lewy górny róg obszaru klienta kontrolki). W danych wyjściowych pPoint jest względem źródła elementu nadrzędnego (lewy górny róg kontenera).

COleControl::ClipCaretRect

Dostosowuje prostokąt karetki, jeśli jest całkowicie lub częściowo pokryty nakładającymi się, nieprzezroczystymi obiektami.

BOOL ClipCaretRect(LPRECT lpRect);

Parametry

Lprect
W danych wejściowych wskaźnik do struktury RECT , która zawiera obszar karetki do dostosowania. W danych wyjściowych skorygowany obszar karetki lub wartość NULL, jeśli prostokąt karetki jest całkowicie pokryty.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Daszek to migająca linia, blok lub mapa bitowa, która zwykle wskazuje, gdzie zostanie wstawiony tekst lub grafika.

Obiekt bez okien nie może bezpiecznie pokazać karetki bez uprzedniego sprawdzenia, czy daszek jest częściowo lub całkowicie ukryty przez nakładające się obiekty. Aby to możliwe, obiekt może użyć ClipCaretRect do dostosowania karetki (zredukowanej) w celu zapewnienia, że mieści się w regionie wycinków.

Obiekty tworzące karetki powinny przesyłać prostokąt karetki do i używać ClipCaretRect dostosowanego prostokąta dla karetki. Jeśli daszek jest całkowicie ukryty, ta metoda zwróci wartość FALSE, a daszek nie powinien być w ogóle wyświetlany w tym przypadku.

COleControl::COleControl

COleControl Tworzy obiekt.

COleControl();

Uwagi

Ta funkcja zwykle nie jest wywoływana bezpośrednio. Zamiast tego kontrolka OLE jest zwykle tworzona przez fabrykę klas.

COleControl::ControlInfoChanged

Wywołaj tę funkcję, gdy zestaw mnemonics obsługiwanych przez kontrolkę uległ zmianie.

void ControlInfoChanged();

Uwagi

Po otrzymaniu tego powiadomienia kontener kontrolki uzyskuje nowy zestaw mnemonics przez wywołanie metody IOleControl::GetControlInfo. Należy pamiętać, że kontener nie jest wymagany do odpowiadania na to powiadomienie.

COleControl::D isplayError

Wywoływana przez platformę po obsłużeniu zdarzenia błędu zapasów (chyba że program obsługi zdarzeń pominął wyświetlanie błędu).

virtual void DisplayError(
    SCODE scode,
    LPCTSTR lpszDescription,
    LPCTSTR lpszSource,
    LPCTSTR lpszHelpFile,
    UINT nHelpID);

Parametry

Scode
Wartość kodu stanu do zgłoszenia. Aby uzyskać pełną listę możliwych kodów, zobacz artykuł Kontrolki ActiveX: Tematy zaawansowane.

lpszDescription
Opis zgłaszanego błędu.

lpszSource
Nazwa modułu generującego błąd (zazwyczaj nazwa modułu sterowania OLE).

lpszHelpFile
Nazwa pliku pomocy zawierającego opis błędu.

nHelpID
Identyfikator kontekstu pomocy zgłaszanego błędu.

Uwagi

Domyślne zachowanie powoduje wyświetlenie pola komunikatu zawierającego opis błędu zawartego w lpszDescription.

Zastąpij tę funkcję, aby dostosować sposób wyświetlania błędów.

COleControl::D oClick

Symuluje akcję kliknięcia myszy na kontrolce.

void DoClick();

Uwagi

Funkcja składowa, którą można zastąpić, zostanie wywołana COleControl::OnClick , a zdarzenie stock Click zostanie wyzwolone, jeśli jest obsługiwane przez kontrolkę.

Ta funkcja jest obsługiwana COleControl przez klasę bazową jako metodę stockową o nazwie DoClick. Aby uzyskać więcej informacji, zobacz artykuł Kontrolki ActiveX: Metody.

COleControl::D oPropExchange

Wywoływana przez platformę podczas ładowania lub przechowywania kontrolki z trwałej reprezentacji magazynu, takiej jak strumień lub zestaw właściwości.

virtual void DoPropExchange(CPropExchange* pPX);

Parametry

Ppx
Wskaźnik do CPropExchange obiektu. Struktura dostarcza ten obiekt w celu ustalenia kontekstu wymiany nieruchomości, w tym jego kierunku.

Uwagi

Ta funkcja zwykle wykonuje wywołania rodziny PX_ funkcji w celu załadowania lub przechowywania określonych właściwości zdefiniowanych przez użytkownika kontrolki OLE.

Jeśli Kreator sterowania został użyty do utworzenia projektu kontrolki OLE, zastąpiona wersja tej funkcji będzie serializować właściwości zapasów obsługiwane przez COleControl wywołanie funkcji klasy bazowej, COleControl::DoPropExchange. Podczas dodawania właściwości zdefiniowanych przez użytkownika do kontrolki OLE należy zmodyfikować tę funkcję w celu serializacji nowych właściwości. Aby uzyskać więcej informacji na temat serializacji, zobacz artykuł ActiveX Controls: Serializing (Kontrolki ActiveX: serializacja).

COleControl::D oSuperclassPaint

Ponownie rysuje kontrolkę OLE, która została podklasowana z kontrolki systemu Windows.

void DoSuperclassPaint(
    CDC* pDC,
    const CRect& rcBounds);

Parametry

Pdc
Wskaźnik do kontekstu urządzenia kontenera sterowania.

rcBounds
Obszar, w którym ma być rysowany formant.

Uwagi

Wywołaj tę funkcję, aby prawidłowo obsłużyć malowanie nieaktywnej kontrolki OLE. Ta funkcja powinna być używana tylko wtedy, gdy kontrolka OLE podklasuje kontrolkę systemu Windows i powinna być wywoływana w OnDraw funkcji kontrolki.

Aby uzyskać więcej informacji na temat tej funkcji i podklasy kontrolki systemu Windows, zobacz artykuł ActiveX Controls: Subclassing a Windows Control (Formanty ActiveX: podklasowanie kontrolki systemu Windows).

COleControl::D rawContent

Wywoływana przez strukturę, gdy wygląd kontrolki musi zostać zaktualizowany.

void DrawContent(
    CDC* pDC,
    CRect& rc);

Parametry

Pdc
Wskaźnik do kontekstu urządzenia.

Rc
Prostokątny obszar do narysowania.

Uwagi

Ta funkcja bezpośrednio wywołuje funkcję przesłoniętą OnDraw .

COleControl::D rawMetafile

Wywoływana przez platformę, gdy jest używany kontekst urządzenia metapliku.

void DrawMetafile(
    CDC* pDC,
    CRect& rc);

Parametry

Pdc
Wskaźnik do kontekstu urządzenia metapliku.

Rc
Prostokątny obszar do narysowania.

COleControl::EnableSimpleFrame

Umożliwia prostą charakterystykę ramki dla kontrolki OLE.

void EnableSimpleFrame();

Uwagi

Ta cecha umożliwia kontrolce obsługę wizualnego zawierania innych kontrolek, ale nie prawdziwego zawierania OLE. Przykładem może być pole grupy z kilkoma kontrolkami wewnątrz. Te kontrolki nie są zawarte w obiekcie OLE, ale znajdują się w tym samym polu grupy.

COleControl::ExchangeExtent

Serializuje lub inicjuje stan zakresu kontrolki (jego wymiary w jednostkach HIMETRIC).

BOOL ExchangeExtent(CPropExchange* pPX);

Parametry

Ppx
Wskaźnik do obiektu CPropExchange . Struktura dostarcza ten obiekt w celu ustalenia kontekstu wymiany nieruchomości, w tym jego kierunku.

Wartość zwracana

Nonzero, jeśli funkcja powiodła się; 0 w przeciwnym razie.

Uwagi

Ta funkcja jest zwykle wywoływana przez domyślną implementację .COleControl::DoPropExchange

COleControl::ExchangeStockProps

Serializuje lub inicjuje stan właściwości zapasów kontrolki.

void ExchangeStockProps(CPropExchange* pPX);

Parametry

Ppx
Wskaźnik do obiektu CPropExchange . Struktura dostarcza ten obiekt w celu ustalenia kontekstu wymiany nieruchomości, w tym jego kierunku.

Uwagi

Ta funkcja jest zwykle wywoływana przez domyślną implementację .COleControl::DoPropExchange

COleControl::ExchangeVersion

Serializuje lub inicjuje stan informacji o wersji kontrolki.

BOOL ExchangeVersion(
    CPropExchange* pPX,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Parametry

Ppx
Wskaźnik do CPropExchange obiektu. Struktura dostarcza ten obiekt w celu ustalenia kontekstu wymiany nieruchomości, w tym jego kierunku.

dwVersionDefault
Bieżący numer wersji kontrolki.

bConvert
Wskazuje, czy dane trwałe mają być konwertowane na najnowszy format podczas zapisywania, czy utrzymywane w tym samym formacie, który został załadowany.

Wartość zwracana

Niezerowa funkcja powiodła się; 0 w przeciwnym razie.

Uwagi

Zazwyczaj będzie to pierwsza funkcja wywoływana przez zastąpienie kontrolki COleControl::DoPropExchange. Podczas ładowania ta funkcja odczytuje numer wersji danych trwałych i ustawia odpowiednio atrybut wersji obiektu CPropExchange . Podczas zapisywania ta funkcja zapisuje numer wersji danych trwałych.

Aby uzyskać więcej informacji na temat trwałości i przechowywania wersji, zobacz artykuł ActiveX Controls: Serializing (Kontrolki ActiveX: serializowanie).

COleControl::FireClick

Wywoływana przez strukturę po kliknięciu myszy na aktywnej kontrolce.

void FireClick();

Uwagi

Jeśli to zdarzenie jest zdefiniowane jako zdarzenie niestandardowe, określ, kiedy zdarzenie jest uruchamiane.

Aby automatyczne wypalanie zdarzenia kliknięcia miało miejsce, mapa zdarzeń kontrolki musi mieć zdefiniowane zdarzenie stock Click.

COleControl::FireDblClick

Wywoływana przez platformę, gdy mysz jest dwukrotnie klikana za pomocą aktywnej kontrolki.

void FireDblClick();

Uwagi

Jeśli to zdarzenie jest zdefiniowane jako zdarzenie niestandardowe, określ, kiedy zdarzenie jest uruchamiane.

Aby automatyczne wypalanie zdarzenia DblClick miało miejsce, mapa zdarzeń kontrolki musi mieć zdefiniowane zdarzenie DblClick.

COleControl::FireError

Uruchamia zdarzenie błędu zapasów.

void FireError(
    SCODE scode,
    LPCTSTR lpszDescription,
    UINT nHelpID = 0);

Parametry

Scode
Wartość kodu stanu do zgłoszenia. Aby uzyskać pełną listę możliwych kodów, zobacz artykuł Kontrolki ActiveX: Tematy zaawansowane.

lpszDescription
Opis zgłaszanego błędu.

nHelpID
Identyfikator pomocy zgłaszanego błędu.

Uwagi

To zdarzenie zapewnia sposób sygnalizowania w odpowiednich miejscach w kodzie, że w kontrolce wystąpił błąd. W przeciwieństwie do innych zdarzeń giełdowych, takich jak Click lub MouseMove, błąd nigdy nie jest wyzwalany przez strukturę.

Aby zgłosić błąd występujący podczas funkcji get właściwości, funkcji zestawu właściwości lub metody automatyzacji, wywołaj metodę COleControl::ThrowError.

Implementacja zdarzenia Błąd akcji kontrolki OLE używa wartości SCODE. Jeśli kontrolka używa tego zdarzenia i ma być używana w Visual Basic 4.0, wystąpią błędy, ponieważ wartość SCODE nie jest obsługiwana w Visual Basic.

Aby rozwiązać ten problem, ręcznie zmień parametr SCODE w kontrolce . Plik ODL do pliku long. Ponadto każde zdarzenie niestandardowe, metoda lub właściwość używająca parametru SCODE również powoduje ten sam problem.

COleControl::FireEvent

Uruchamia zdarzenie zdefiniowane przez użytkownika z kontrolki z dowolną liczbą opcjonalnych argumentów.

void AFX_CDECL FireEvent(
    DISPID dispid,
    BYTE* pbParams,
...);

Parametry

Dispid
Identyfikator wysyłki zdarzenia, który ma zostać wyzwolony.

pbParams
Deskryptor typów parametrów zdarzenia.

Uwagi

Zazwyczaj ta funkcja nie powinna być wywoływana bezpośrednio. Zamiast tego wywołasz funkcje wyzwalania zdarzeń w sekcji mapy zdarzeń deklaracji klasy kontrolki.

Argument pbParams to rozdzielona spacjami lista VTS_. Co najmniej jedna z tych wartości oddzielona spacjami (nie przecinkami) określa listę parametrów funkcji. Dopuszczalne są następujące wartości:

Symbol Typ parametru
VTS_COLOR OLE_COLOR
VTS_FONT IFontDisp*
VTS_HANDLE HWND
VTS_PICTURE IPictureDisp*
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_XSIZE_HIMETRIC

Uwaga

Dodatkowe stałe wariantu zostały zdefiniowane dla wszystkich typów wariantów, z wyjątkiem VTS_FONT i VTS_PICTURE, które zapewniają wskaźnik do stałej danych wariantu. Te stałe są nazywane przy użyciu konwencji VTS_P<CONSTANT-NAME> . Na przykład VTS_PCOLOR jest wskaźnikiem do stałej VTS_COLOR.

COleControl::FireKeyDown

Wywoływana przez platformę po naciśnięciu klawisza, gdy kontrolka jest aktywna.

void FireKeyDown(
    USHORT* pnChar,
    short nShiftState);

Parametry

pnChar
Wskaźnik do wartości kodu klucza wirtualnego naciśnięcia klawisza. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h

nShiftState
Zawiera kombinację następujących flag:

  • SHIFT_MASK klawisz SHIFT został naciśnięty podczas akcji.

  • CTRL_MASK naciśnięcie klawisza CTRL podczas akcji.

  • ALT_MASK klawisz ALT został naciśnięty podczas akcji.

Uwagi

Jeśli to zdarzenie jest zdefiniowane jako zdarzenie niestandardowe, określ, kiedy zdarzenie jest uruchamiane.

Aby automatyczne wypalanie zdarzenia KeyDown miało miejsce, mapa zdarzeń kontrolki musi mieć zdefiniowane zdarzenie stock KeyDown.

COleControl::FireKeyPress

Wywoływana przez platformę po naciśnięciu i zwolnieniu klawisza, gdy kontrolka niestandardowa jest aktywna interfejsu użytkownika w kontenerze.

void FireKeyPress(USHORT* pnChar);

Parametry

pnChar
Wskaźnik do wartości znaku naciśnięty klawisz.

Uwagi

Jeśli to zdarzenie jest zdefiniowane jako zdarzenie niestandardowe, określ, kiedy zdarzenie jest uruchamiane.

Odbiorca zdarzenia może na przykład zmodyfikować wartość pnChar, na przykład przekonwertować wszystkie małe litery na wielkie litery. Jeśli chcesz zbadać zmodyfikowany znak, zastąpij OnKeyPressEventwartość .

Aby automatyczne wypalanie zdarzenia KeyPress miało miejsce, mapa zdarzeń kontrolki musi mieć zdefiniowane zdarzenie Stock KeyPress.

COleControl::FireKeyUp

Wywoływana przez platformę, gdy klucz jest zwalniany, gdy kontrolka niestandardowa jest aktywna w kontenerze.

void FireKeyUp(
    USHORT* pnChar,
    short nShiftState);

Parametry

pnChar
Wskaźnik do wartości kodu klucza wirtualnego wydanego klucza. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h

nShiftState
Zawiera kombinację następujących flag:

  • SHIFT_MASK klawisz SHIFT został naciśnięty podczas akcji.

  • CTRL_MASK naciśnięcie klawisza CTRL podczas akcji.

  • ALT_MASK klawisz ALT został naciśnięty podczas akcji.

Uwagi

Jeśli to zdarzenie jest zdefiniowane jako zdarzenie niestandardowe, określ, kiedy zdarzenie jest uruchamiane.

Aby automatyczne wypalanie zdarzenia KeyUp miało miejsce, mapa zdarzeń kontrolki musi mieć zdefiniowane zdarzenie stock KeyUp.

COleControl::FireMouseDown

Wywoływana przez platformę po naciśnięciu przycisku myszy na aktywnej kontrolce niestandardowej.

void FireMouseDown(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametry

nButton
Wartość liczbowa naciśnięcia przycisku myszy. Może zawierać jedną z następujących wartości:

  • LEFT_BUTTON Lewy przycisk myszy został przyciśnięty w dół.

  • MIDDLE_BUTTON Środkowy przycisk myszy został naciśnięty w dół.

  • RIGHT_BUTTON Prawy przycisk myszy został naciśnięty w dół.

nShiftState
Zawiera kombinację następujących flag:

  • SHIFT_MASK klawisz SHIFT został naciśnięty podczas akcji.

  • CTRL_MASK naciśnięcie klawisza CTRL podczas akcji.

  • ALT_MASK klawisz ALT został naciśnięty podczas akcji.

X
Współrzędna x kursora po naciśnięciu przycisku myszy w dół. Współrzędna jest względna względem lewego górnego rogu okna sterowania.

Y
Współrzędna y kursora po naciśnięciu przycisku myszy w dół. Współrzędna jest względna względem lewego górnego rogu okna sterowania.

Uwagi

Jeśli to zdarzenie jest zdefiniowane jako zdarzenie niestandardowe, określ, kiedy zdarzenie jest uruchamiane.

Aby automatyczne wypalanie zdarzenia MouseDown miało miejsce, mapa zdarzeń kontrolki musi mieć zdefiniowane zdarzenie Stock MouseDown.

COleControl::FireMouseMove

Wywoływana przez platformę, gdy kursor jest przenoszony przez aktywną kontrolkę niestandardową.

void FireMouseMove(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametry

nButton
Wartość liczbowa naciśniętych przycisków myszy. Zawiera kombinację następujących wartości:

  • LEFT_BUTTON Lewy przycisk myszy został przyciśnięty w dół podczas akcji.

  • MIDDLE_BUTTON Środkowy przycisk myszy został naciśnięty w dół podczas akcji.

  • RIGHT_BUTTON Prawy przycisk myszy został naciśnięty w dół podczas akcji.

nShiftState
Zawiera kombinację następujących flag:

  • SHIFT_MASK klawisz SHIFT został naciśnięty podczas akcji.

  • CTRL_MASK naciśnięcie klawisza CTRL podczas akcji.

  • ALT_MASK klawisz ALT został naciśnięty podczas akcji.

X
Współrzędna x kursora. Współrzędna jest względna względem lewego górnego rogu okna sterowania.

Y
Współrzędna y kursora. Współrzędna jest względna względem lewego górnego rogu okna sterowania.

Uwagi

Jeśli to zdarzenie jest zdefiniowane jako zdarzenie niestandardowe, określ, kiedy zdarzenie jest uruchamiane.

Aby automatyczne wypalanie zdarzenia MouseMove miało miejsce, mapa zdarzeń kontrolki musi mieć zdefiniowane zdarzenie Stock MouseMove.

COleControl::FireMouseUp

Wywoływana przez platformę, gdy przycisk myszy jest zwalniany przez aktywną kontrolkę niestandardową.

void FireMouseUp(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametry

nButton
Wartość liczbowa przycisku myszy została zwolniona. Może mieć jedną z następujących wartości:

  • LEFT_BUTTON Został zwolniony lewy przycisk myszy.

  • MIDDLE_BUTTON Środkowy przycisk myszy został zwolniony.

  • RIGHT_BUTTON Zwolniono prawy przycisk myszy.

nShiftState
Zawiera kombinację następujących flag:

  • SHIFT_MASK klawisz SHIFT został naciśnięty podczas akcji.

  • CTRL_MASK naciśnięcie klawisza CTRL podczas akcji.

  • ALT_MASK klawisz ALT został naciśnięty podczas akcji.

X
Współrzędna x kursora po zwolnieniu przycisku myszy. Współrzędna jest względna względem lewego górnego rogu okna sterowania.

Y
Współrzędna y kursora po zwolnieniu przycisku myszy. Współrzędna jest względna względem lewego górnego rogu okna sterowania.

Uwagi

Jeśli to zdarzenie jest zdefiniowane jako zdarzenie niestandardowe, określ, kiedy zdarzenie jest uruchamiane.

Aby automatyczne wypalanie zdarzenia MouseUp miało miejsce, mapa zdarzeń kontrolki musi mieć zdefiniowane zdarzenie stock MouseUp.

COleControl::FireReadyStateChange

Uruchamia zdarzenie z bieżącą wartością gotowego stanu kontroli.

void FireReadyStateChange();

Uwagi

Stan gotowości może być jedną z następujących wartości:

Nazwa/nazwisko opis
READYSTATE_UNINITIALIZED Domyślny stan inicjowania
READYSTATE_LOADING Kontrolka aktualnie ładuje jej właściwości
READYSTATE_LOADED Kontrolka została zainicjowana
READYSTATE_INTERACTIVE Kontrolka ma wystarczającą ilość danych, aby być interakcyjnymi, ale nie wszystkie dane asynchroniczne zostały jeszcze załadowane
READYSTATE_COMPLETE Kontrolka ma wszystkie swoje dane

Użyj polecenia GetReadyState , aby określić bieżącą gotowość kontrolki.

InternalSetReadyState zmienia stan gotowości na podaną wartość, a następnie wywołuje metodę FireReadyStateChange.

COleControl::GetActivationPolicy

Zmienia domyślne zachowanie aktywacji kontrolki obsługującej IPointerInactive interfejs.

virtual DWORD GetActivationPolicy();

Wartość zwracana

Kombinacja flag z wyliczenia POINTERINACTIVE. Możliwe flagi to:

Nazwa/nazwisko opis
POINTERINACTIVE_ACTIVATEONENTRY Obiekt powinien być aktywowany w miejscu, gdy mysz przechodzi do niego podczas operacji przenoszenia myszy.
POINTERINACTIVE_DEACTIVATEONLEAVE Obiekt powinien zostać zdezaktywowany, gdy mysz opuszcza obiekt podczas operacji przenoszenia myszy.
POINTERINACTIVE_ACTIVATEONDRAG Obiekt powinien być aktywowany w miejscu, gdy mysz zostanie przeciągnięta na nią podczas operacji przeciągania i upuszczania.

Uwagi

Po włączeniu interfejsu IPointerInactive kontener deleguje WM_SETCURSOR i WM_MOUSEMOVE do niego komunikaty. COleControlImplementacja tego interfejsu spowoduje wysłanie tych komunikatów za pośrednictwem mapy komunikatów kontrolki po odpowiednim dostosowaniu współrzędnych myszy.

Za każdym razem, gdy kontener odbiera komunikat WM_SETCURSOR lub WM_MOUSEMOVE z wskaźnikiem myszy nad nieaktywnym obiektem obsługującym IPointerInactive, powinien wywołać GetActivationPolicy interfejs i zwracać flagi z wyliczenia POINTERINACTIVE.

Te komunikaty można przetwarzać tak samo jak zwykłe komunikaty okien, dodając odpowiednie wpisy do mapy komunikatów. W programach obsługi należy unikać używania zmiennej m_hWnd składowej (lub dowolnych funkcji członkowskich, które go używają) bez uprzedniego sprawdzenia, czy jej wartość nie ma wartości NULL.

Każdy obiekt przeznaczony do wykonania więcej niż ustawić kursor myszy i/lub zwolnić zdarzenie przenoszenia myszy, takie jak nadanie specjalnej opinii wizualnej, powinno zwrócić flagę POINTERINACTIVE_ACTIVATEONENTRY i narysować opinię tylko wtedy, gdy jest aktywna. Jeśli obiekt zwraca tę flagę, kontener powinien natychmiast aktywować go w miejscu, a następnie przekazać do niego ten sam komunikat, który wyzwolił wywołanie metody GetActivationPolicy.

Jeśli zostaną zwrócone zarówno flagi POINTERINACTIVE_ACTIVATEONENTRY, jak i POINTERINACTIVE_DEACTIVATEONLEAVE, obiekt zostanie aktywowany tylko wtedy, gdy mysz jest nad obiektem. Jeśli zostanie zwrócona tylko flaga POINTERINACTIVE_ACTIVATEONENTRY, obiekt zostanie aktywowany tylko raz po pierwszym wejściu myszy do obiektu.

Możesz również chcieć, aby kontrolka nieaktywna stanowiła element docelowy operacji przeciągania i upuszczania OLE. Wymaga to aktywowania kontrolki w momencie przeciągania obiektu przez użytkownika, aby okno kontrolki można było zarejestrować jako cel upuszczania. Aby spowodować wystąpienie aktywacji podczas przeciągania, zwróć flagę POINTERINACTIVE_ACTIVATEONDRAG:

DWORD CMyAxCtrl::GetActivationPolicy()
{
   return POINTERINACTIVE_ACTIVATEONDRAG;
}

Informacje przekazywane przez GetActivationPolicy program nie powinny być buforowane przez kontener. Zamiast tego ta metoda powinna być wywoływana za każdym razem, gdy mysz wchodzi w nieaktywny obiekt.

Jeśli nieaktywny obiekt nie żąda aktywowania w miejscu po wprowadzeniu myszy, jego kontener powinien wysyłać kolejne komunikaty WM_SETCURSOR do tego obiektu, wywołując onInactiveSetCursor , o ile wskaźnik myszy pozostaje nad obiektem.

Włączenie interfejsu IPointerInactive zwykle oznacza, że kontrolka ma być w stanie przetwarzać komunikaty myszy przez cały czas. Aby uzyskać to zachowanie w kontenerze, który nie obsługuje interfejsu IPointerInactive , musisz zawsze aktywować kontrolkę, gdy jest widoczna, co oznacza, że kontrolka powinna mieć flagę OLEMISC_ACTIVATEWHENVISIBLE między różnymi flagami. Jednak aby zapobiec wystąpieniu tej flagi w kontenerze, który obsługuje IPointerInactive, można również określić flagę OLEMISC_IGNOREACTIVATEWHENVISIBLE:

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

COleControl::GetAmbientProperty

Pobiera wartość właściwości otoczenia kontenera.

BOOL GetAmbientProperty(
    DISPID dispid,
    VARTYPE vtProp,
    void* pvProp);

Parametry

dwDispid
Identyfikator wysyłki żądanej właściwości otoczenia.

vtProp
Tag typu wariantu, który określa typ wartości, która ma być zwracana w pvProp.

pvProp
Wskaźnik do adresu zmiennej, która otrzyma wartość właściwości lub wartość zwracaną. Rzeczywisty typ tego wskaźnika musi być zgodny z typem określonym przez vtProp.

vtProp Typ pvProp
VT_BOOL BOOL*
VT_BSTR CString*
VT_I2 short*
VT_I4 long*
VT_R4 float*
VT_R8 double*
VT_CY CY*
VT_COLOR OLE_COLOR*
VT_DISPATCH LPDISPATCH*
VT_FONT LPFONTDISP*

Wartość zwracana

Nonzero, jeśli właściwość otoczenia jest obsługiwana; w przeciwnym razie 0.

Uwagi

Jeśli używasz GetAmbientProperty polecenia do pobierania właściwości ambient DisplayName i ScaleUnits, ustaw wartość vtProp na wartość VT_BSTR i pvProp na CString*wartość . Jeśli pobierasz właściwość czcionki otoczenia, ustaw wartość vtProp na VT_FONT i pvProp na wartość LPFONTDISP*.

Należy pamiętać, że funkcje zostały już udostępnione dla typowych właściwości otoczenia, takich jak AmbientBackColor i AmbientFont.

COleControl::GetAppearance

Implementuje funkcję Get właściwości Stock Appearance kontrolki.

short GetAppearance ();

Wartość zwracana

Wartość zwracana określa bieżące ustawienie wyglądu jako short wartość (VT_I2), jeśli powiedzie się. Ta wartość jest równa zero, jeśli wygląd kontrolki jest płaski i 1, jeśli wygląd kontrolki ma wartość 3D.

COleControl::GetBackColor

Implementuje funkcję Get właściwości stock kontrolki BackColor.

OLE_COLOR GetBackColor();

Wartość zwracana

Wartość zwracana określa bieżący kolor tła jako wartość OLE_COLOR, jeśli się powiedzie. Tę wartość można przetłumaczyć na wartość COLORREF za pomocą wywołania metody TranslateColor.

COleControl::GetBorderStyle

Implementuje funkcję Get właściwości Stock BorderStyle kontrolki.

short GetBorderStyle();

Wartość zwracana

1, jeśli kontrolka ma normalne obramowanie; 0, jeśli kontrolka nie ma obramowania.

COleControl::GetCapture

Określa, czy COleControl obiekt ma przechwycenie myszy.

CWnd* GetCapture();

Wartość zwracana

Jeśli kontrolka jest aktywowana i bez okien, zwraca this wartość , jeśli kontrolka ma obecnie przechwytywanie myszy (określone przez kontener kontrolki) lub wartość NULL, jeśli nie ma przechwycenia.

W przeciwnym razie zwraca CWnd obiekt, który ma przechwytywanie myszy (taki sam jak CWnd::GetCapture).

Uwagi

Aktywowana kontrolka bez okna odbiera przechwytywanie myszy po wywołaniu funkcji SetCapture .

COleControl::GetClassID

Wywoływana przez strukturę w celu pobrania identyfikatora klasy OLE kontrolki.

virtual HRESULT GetClassID(LPCLSID pclsid) = 0;

Parametry

pclsid
Wskaźnik do lokalizacji identyfikatora klasy.

Wartość zwracana

Niezerowe, jeśli wywołanie nie powiodło się; w przeciwnym razie 0.

Uwagi

Zazwyczaj implementowane przez IMPLEMENT_OLECREATE_EX.

COleControl::GetClientOffset

Pobiera różnicę między lewym górnym róg prostokątnego obszaru kontrolki a lewym górnym rogu obszaru klienta.

virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;

Parametry

pdxOffset
Wskaźnik do przesunięcia poziomego obszaru klienta kontrolki OLE.

pdyOffset
Wskaźnik do pionowego przesunięcia obszaru klienta kontrolki OLE.

Uwagi

Kontrolka OLE ma prostokątny obszar w kontenerze. Obszarem klienta kontrolki jest obszar sterowania z wyłączeniem obramowań i pasków przewijania. Przesunięcie pobrane przez GetClientOffset program jest różnicą między lewym górnym rogu prostokątnego obszaru kontrolki a lewym górnym rogu obszaru klienta. Jeśli kontrolka ma elementy inne niż standardowe obramowania i paski przewijania, przesłoń tę funkcję składową, aby określić przesunięcie.

COleControl::GetClientRect

Pobiera rozmiar obszaru klienta kontrolki.

virtual void GetClientRect(LPRECT lpRect) const;

Parametry

Lprect
Wskaźnik do RECT struktury zawierającej wymiary obszaru klienta kontrolki bez okna. Oznacza to, że rozmiar kontrolki minus obramowania okna, ramek, pasków przewijania itd. Parametr lpRect wskazuje rozmiar prostokąta klienta kontrolki, a nie jego położenie.

COleControl::GetClientSite

Wysyła zapytanie do obiektu wskaźnika do bieżącej lokacji klienta w kontenerze.

LPOLECLIENTSITE GetClientSite();

Wartość zwracana

Wskaźnik do bieżącej lokacji klienta kontrolki w kontenerze.

Uwagi

Zwrócony wskaźnik wskazuje wystąpienie klasy IOleClientSite. Interfejs IOleClientSite implementowany przez kontenery to widok jego kontekstu obiektu: gdzie jest on zakotwiczony w dokumencie, gdzie pobiera magazyn, interfejs użytkownika i inne zasoby.

COleControl::GetControlFlags

Pobiera ustawienia flagi sterowania.

virtual DWORD GetControlFlags();

Wartość zwracana

Kombinacja ORed flag w wyliczenie ControlFlags:

enum ControlFlags {
    fastBeginPaint = 0x0001,
    clipPaintDC = 0x0002,
    pointerInactive = 0x0004,
    noFlickerActivate = 0x0008,
    windowlessActivate = 0x0010,
    canOptimizeDraw = 0x0020,
    };

Uwagi

Domyślnie GetControlFlags funkcja zwraca wartość fastBeginPaint | clipPaintDC.

Nazwa/nazwisko opis
fastBeginPaint W przypadku ustawienia używa funkcji begin-paint dostosowanej do kontrolek OLE zamiast interfejsu API BeginPaint (domyślnie ustawionego).
clipPaintDC Jeśli nie jest ustawiona, wyłącza wywołanie IntersectClipRect metody i COleControl zyskuje niewielką przewagę prędkości. Jeśli używasz aktywacji bez okien, flaga nie ma żadnego efektu.
pointerInactive W przypadku ustawienia zapewnia interakcję myszy, gdy kontrolka jest nieaktywna, włączając COleControlimplementację interfejsu IPointerInactive , która jest domyślnie wyłączona.
noFlickerActivate W przypadku ustawienia eliminuje dodatkowe operacje rysowania i towarzyszących wizualizacji migotanie. Użyj polecenia , gdy kontrolka rysuje się identycznie w stanach nieaktywnych i aktywnych. Jeśli używasz aktywacji bez okien, flaga nie ma żadnego efektu.
windowlessActivate W przypadku ustawienia wskazuje, że kontrolka używa aktywacji bez okien.
canOptimizeDraw W przypadku ustawienia wskazuje, że kontrolka będzie wykonywać zoptymalizowane rysowanie, jeśli kontener go obsługuje.

Aby uzyskać więcej informacji na temat GetControlFlags i innych optymalizacji kontrolek OLE, zobacz ActiveX Controls: Optimization (Kontrolki ActiveX: optymalizacja).

COleControl::GetControlSize

Pobiera rozmiar okna kontrolki OLE.

void GetControlSize(
    int* pcx,
    int* pcy);

Parametry

Pcx
Określa szerokość kontrolki w pikselach.

pcy
Określa wysokość kontrolki w pikselach.

Uwagi

Należy pamiętać, że wszystkie współrzędne okien sterowania są względem lewego górnego rogu kontrolki.

COleControl::GetDC

Udostępnia obiekt bez okna umożliwiający uzyskanie kontekstu urządzenia ekranu (lub zgodnego) z jego kontenera.

CDC* GetDC(
    LPCRECT lprcRect = NULL,
    DWORD dwFlags = OLEDC_PAINTBKGND);

Parametry

lprcRect
Wskaźnik do prostokąta kontrolki bez okna chce ponownie wyrysować, we współrzędnych klienta kontrolki. Wartość NULL oznacza zakres pełnego obiektu.

Dwflags
Rysowanie atrybutów kontekstu urządzenia. Dostępne są następujące opcje:

  • OLEDC_NODRAW Wskazuje, że obiekt nie będzie używać kontekstu urządzenia do wykonywania żadnego rysunku, ale tylko w celu uzyskania informacji o urządzeniu wyświetlania. Kontener powinien po prostu przekazać kontroler domeny okna bez dalszego przetwarzania.

  • OLEDC_PAINTBKGND Żądania, że kontener maluje tło przed zwróceniem kontrolera domeny. Obiekt powinien używać tej flagi, jeśli żąda kontrolera domeny do ponownego wyrysowania obszaru z przezroczystym tłem.

  • OLEDC_OFFSCREEN Informuje kontener, że obiekt chce renderować w mapę bitową poza ekranem, która następnie powinna zostać skopiowana na ekran. Obiekt powinien używać tej flagi podczas operacji rysowania, która ma być wykonywana, generuje dużo migotania. Kontener jest bezpłatny do przestrzegania tego żądania. Jeśli jednak ta flaga nie jest ustawiona, kontener musi przekazać kontroler domeny na ekranie. Dzięki temu obiekty mogą wykonywać bezpośrednie operacje ekranu, takie jak pokazywanie zaznaczenia (za pośrednictwem operacji XOR ).

Wartość zwracana

Wskaźnik do kontekstu wyświetlania urządzenia dla obszaru klienta kontenera CWnd , jeśli się powiedzie; w przeciwnym razie zwracana wartość ma wartość NULL. Kontekst urządzenia wyświetlania może być używany w kolejnych funkcjach GDI do rysowania w obszarze klienta okna kontenera.

Uwagi

Aby zwolnić kontekst po obrazie, należy wywołać funkcję składową usługi ReleaseDC . Podczas wywoływania GetDCobiektu obiekty przekazują prostokąt, do którego chcą rysować się we własnych współrzędnych klienta. GetDC tłumaczy je na współrzędne obszaru klienta kontenera. Obiekt nie powinien żądać żądanego prostokąta rysunku większego niż prostokąt obszaru klienta, którego rozmiar można pobrać za pomocą polecenia GetClientRect. Zapobiega to nieumyślnemu rysowaniu obiektów, w których nie powinny być.

COleControl::GetEnabled

Implementuje funkcję Get właściwości stock enabled kontrolki.

BOOL GetEnabled();

Wartość zwracana

Nonzero, jeśli kontrolka jest włączona; w przeciwnym razie 0.

COleControl::GetExtendedControl

Uzyskuje wskaźnik do obiektu obsługiwanego przez kontener, który reprezentuje kontrolkę z rozszerzonym zestawem właściwości.

LPDISPATCH GetExtendedControl();

Wartość zwracana

Wskaźnik do obiektu rozszerzonej kontrolki kontenera. Jeśli nie ma dostępnego obiektu, wartość ma wartość NULL.

Ten obiekt może być manipulowany za pośrednictwem interfejsu IDispatch . Można również użyć QueryInterface do uzyskania innych dostępnych interfejsów udostępnianych przez obiekt. Jednak obiekt nie jest wymagany do obsługi określonego zestawu interfejsów. Należy pamiętać, że poleganie na określonych funkcjach obiektu rozszerzonego sterowania kontenera ogranicza przenośność kontrolki do innych dowolnych kontenerów.

Uwagi

Funkcja, która wywołuje tę funkcję, jest odpowiedzialna za zwolnienie wskaźnika po zakończeniu z obiektem. Należy pamiętać, że kontener nie jest wymagany do obsługi tego obiektu.

COleControl::GetFocus

Określa, czy COleControl obiekt ma fokus.

CWnd* GetFocus();

Wartość zwracana

Jeśli kontrolka jest aktywowana i bez okien, zwraca this wartość , jeśli kontrolka aktualnie ma fokus klawiatury (określony przez kontener kontrolki) lub wartość NULL, jeśli nie ma fokusu.

W przeciwnym razie zwraca CWnd obiekt, który ma fokus (taki sam jak CWnd::GetFocus).

Uwagi

Aktywowana kontrolka bez okna odbiera fokus po wywołaniu kontrolki SetFocus .

COleControl::GetFont

Implementuje funkcję Get właściwości czcionki stockowej.

LPFONTDISP GetFont();

Wartość zwracana

Wskaźnik do interfejsu wysyłania czcionki właściwości czcionki akcji kontrolki Czcionka.

Uwagi

Należy pamiętać, że obiekt wywołujący musi zwolnić obiekt po zakończeniu. W ramach implementacji kontrolki użyj polecenia InternalGetFont , aby uzyskać dostęp do stockowego obiektu Czcionka kontrolki. Aby uzyskać więcej informacji na temat używania czcionek w kontrolce, zobacz artykuł Kontrolki ActiveX: używanie czcionek w kontrolce ActiveX.

COleControl::GetFontTextMetrics

Mierzy metryki tekstu dla dowolnego CFontHolder obiektu należącego do kontrolki.

void GetFontTextMetrics(
    LPTEXTMETRIC lptm,
    CFontHolder& fontHolder);

Parametry

lptm
Wskaźnik do struktury TEXTMETRIC .

fontHolder
Odwołanie do obiektu CFontHolder .

Uwagi

Taką czcionkę można wybrać za pomocą funkcji COleControl::SelectFontObject . GetFontTextMetrics zainicjuje TEXTMETRIC strukturę wskazywaną przez lptm z prawidłowymi informacjami o fontHoldermetrykach czcionki, jeśli zakończy się powodzeniem, lub wypełni strukturę zerami, jeśli nie powiedzie się. Tej funkcji należy użyć zamiast getTextMetrics podczas malowania kontrolki, ponieważ kontrolki, podobnie jak dowolny osadzony obiekt OLE, mogą być wymagane do renderowania się w metapliku.

Struktura TEXTMETRIC czcionki domyślnej jest odświeżona po wywołaniu funkcji SelectFontObject . Wywołaj metodę GetFontTextMetrics tylko po wybraniu właściwości czcionki stockowej, aby upewnić się, że informacje, które podaje, są prawidłowe.

COleControl::GetForeColor

Implementuje funkcję Get właściwości stock ForeColor.

OLE_COLOR GetForeColor();

Wartość zwracana

Wartość zwracana określa bieżący kolor pierwszego planu jako wartość OLE_COLOR, jeśli się powiedzie. Tę wartość można przetłumaczyć na wartość COLORREF za pomocą wywołania metody TranslateColor.

COleControl::GetHwnd

Implementuje funkcję Get właściwości stock hWnd.

OLE_HANDLE GetHwnd();

Wartość zwracana

Uchwyt okna kontrolki OLE, jeśli istnieje; w przeciwnym razie wartość NULL.

COleControl::GetMessageString

Wywoływana przez platformę w celu uzyskania krótkiego ciągu opisującego przeznaczenie elementu menu zidentyfikowanego przez identyfikator nID.

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

Parametry

Nid
Identyfikator elementu menu.

rMessage
Odwołanie do obiektu CString , za pomocą którego zostanie zwrócony ciąg.

Uwagi

Może to służyć do uzyskania komunikatu do wyświetlania na pasku stanu, gdy element menu jest wyróżniony. Domyślna implementacja próbuje załadować zasób ciągu zidentyfikowany przez identyfikator nID.

COleControl::GetNotSupported

Uniemożliwia dostęp do wartości właściwości kontrolki przez użytkownika.

void GetNotSupported();

Uwagi

Wywołaj tę funkcję zamiast funkcji Get dowolnej właściwości, w której pobieranie właściwości przez użytkownika kontrolki nie jest obsługiwane. Przykładem może być właściwość, która jest tylko zapisem.

COleControl::GetReadyState

Zwraca stan gotowości kontrolki.

long GetReadyState();

Wartość zwracana

Stan gotowości kontrolki, jedna z następujących wartości:

Nazwa/nazwisko opis
READYSTATE_UNINITIALIZED Domyślny stan inicjowania
READYSTATE_LOADING Kontrolka aktualnie ładuje jej właściwości
READYSTATE_LOADED Kontrolka została zainicjowana
READYSTATE_INTERACTIVE Kontrolka ma wystarczającą ilość danych, aby być interakcyjnymi, ale nie wszystkie dane asynchroniczne zostały jeszcze załadowane
READYSTATE_COMPLETE Kontrolka ma wszystkie swoje dane

Uwagi

Większość prostych kontrolek nigdy nie musi rozróżniać elementów ZAŁADOWANYCH i INTERAKTYWNYch. Jednak kontrolki obsługujące właściwości ścieżki danych mogą nie być gotowe do interakcyjnego, dopóki co najmniej niektóre dane nie zostaną odebrane asynchronicznie. Kontrolka powinna próbować zostać interaktywna tak szybko, jak to możliwe.

COleControl::GetRectInContainer

Uzyskuje współrzędne prostokąta kontrolki względem kontenera wyrażone w jednostkach urządzenia.

BOOL GetRectInContainer(LPRECT lpRect);

Parametry

Lprect
Wskaźnik do struktury prostokąta, do której zostaną skopiowane współrzędne kontrolki.

Wartość zwracana

Niezerowe, jeśli kontrolka jest aktywna w miejscu; w przeciwnym razie 0.

Uwagi

Prostokąt jest prawidłowy tylko wtedy, gdy kontrolka jest aktywna w miejscu.

COleControl::GetStockTextMetrics

Mierzy metryki tekstowe dla właściwości czcionki akcji kontrolki, którą można wybrać za pomocą funkcji SelectStockFont .

void GetStockTextMetrics(LPTEXTMETRIC lptm);

Parametry

lptm
Wskaźnik do struktury TEXTMETRIC .

Uwagi

Funkcja GetStockTextMetrics zainicjuje TEXTMETRIC strukturę wskazywaną przez lptm z prawidłowymi informacjami o metrykach, jeśli zakończy się powodzeniem, lub wypełni strukturę zerami, jeśli nie powiedzie się. Użyj tej funkcji zamiast GetTextMetrics podczas malowania kontrolki, ponieważ kontrolki, podobnie jak dowolny osadzony obiekt OLE, mogą być wymagane do renderowania się w metapliku.

Struktura TEXTMETRIC czcionki domyślnej jest odświeżona po wywołaniu SelectStockFont funkcji. Tę funkcję należy wywołać dopiero po wybraniu czcionki stockowej, aby upewnić się, że informacje, które podaje, są prawidłowe.

COleControl::GetText

Implementuje funkcję Get właściwości Text lub Caption stock.

BSTR GetText();

Wartość zwracana

Bieżąca wartość ciągu tekstowego kontrolki lub ciągu o zerowej długości, jeśli żaden ciąg nie jest obecny.

Uwaga

Aby uzyskać więcej informacji na temat typu danych BSTR, zobacz Typy danych w sekcji Makra i globalne.

Uwagi

Należy pamiętać, że obiekt wywołujący tej funkcji musi wywołać SysFreeString zwrócony ciąg, aby zwolnić zasób. W ramach implementacji kontrolki użyj polecenia InternalGetText , aby uzyskać dostęp do właściwości Text lub Caption kontrolki.

COleControl::GetWindowlessDropTarget

Zastąpij GetWindowlessDropTarget , gdy kontrolka bez okna ma być elementem docelowym operacji przeciągania i upuszczania OLE.

virtual IDropTarget* GetWindowlessDropTarget();

Wartość zwracana

Wskaźnik do interfejsu IDropTarget obiektu. Ponieważ nie ma okna, obiekt bez okien nie może zarejestrować interfejsu IDropTarget . Jednak aby wziąć udział w przeciąganiu i upuszczaniu, obiekt bez okien może nadal implementować interfejs i zwracać go w obiekcie GetWindowlessDropTarget.

Uwagi

Zwykle wymagałoby to zarejestrowania okna kontrolki jako miejsca docelowego upuszczania. Ponieważ kontrolka nie ma własnego okna, kontener użyje własnego okna jako miejsca docelowego upuszczania. Kontrolka musi po prostu zapewnić implementację interfejsu IDropTarget , do którego kontener może delegować wywołania w odpowiednim czasie. Przykład:

IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
   m_xDropTarget.AddRef();
   return &m_xDropTarget;
}

COleControl::InitializeIDs

Informuje klasę bazową identyfikatorów IID, które będą używane przez kontrolkę.

void InitializeIIDs(
    const IID* piidPrimary,
    const IID* piidEvents);

Parametry

piidPrimary
Wskaźnik do identyfikatora interfejsu podstawowego interfejsu wysyłania kontrolki.

piidEvents
Wskaźnik do identyfikatora interfejsu interfejsu zdarzenia kontrolki.

Uwagi

Wywołaj tę funkcję w konstruktorze kontrolki, aby poinformować klasę bazową identyfikatorów interfejsów używanych przez kontrolkę.

COleControl::InternalGetFont

Uzyskuje dostęp do właściwości czcionki akcji kontrolki

CFontHolder& InternalGetFont();

Wartość zwracana

Odwołanie do obiektu CFontHolder , który zawiera obiekt czcionki akcji.

COleControl::InternalGetText

Uzyskuje dostęp do stockowej właściwości Text lub Caption kontrolki.

const CString& InternalGetText();

Wartość zwracana

Odwołanie do ciągu tekstowego kontrolki.

COleControl::InternalSetReadyState

Ustawia stan gotowości kontrolki.

void InternalSetReadyState(long lNewReadyState);

Parametry

lNewReadyState
Stan gotowości, który ma być ustawiony dla kontrolki, jedną z następujących wartości:

Nazwa/nazwisko opis
READYSTATE_UNINITIALIZED Domyślny stan inicjowania
READYSTATE_LOADING Kontrolka aktualnie ładuje jej właściwości
READYSTATE_LOADED Kontrolka została zainicjowana
READYSTATE_INTERACTIVE Kontrolka ma wystarczającą ilość danych, aby być interakcyjnymi, ale nie wszystkie dane asynchroniczne zostały jeszcze załadowane
READYSTATE_COMPLETE Kontrolka ma wszystkie swoje dane

Uwagi

Większość prostych kontrolek nigdy nie musi rozróżniać elementów ZAŁADOWANYCH i INTERAKTYWNYch. Jednak kontrolki obsługujące właściwości ścieżki danych mogą nie być gotowe do interakcyjnego, dopóki co najmniej niektóre dane nie zostaną odebrane asynchronicznie. Kontrolka powinna próbować zostać interaktywna tak szybko, jak to możliwe.

COleControl::InvalidateControl

Wymusza kontrolę, aby ponownie rysować się.

void InvalidateControl(
    LPCRECT lpRect = NULL,
    BOOL bErase = TRUE);

Parametry

Lprect
Wskaźnik do regionu kontrolki, który ma zostać unieważniony.

bErase
Określa, czy tło w regionie aktualizacji ma zostać wymazane po przetworzeniu regionu aktualizacji.

Uwagi

Jeśli wartość lpRect ma wartość NULL, cała kontrolka zostanie ponownie wyrysowana. Jeśli wartość lpRect nie ma wartości NULL, oznacza to część prostokąta kontrolki, która ma zostać unieważniona. W przypadkach, gdy kontrolka nie ma okna lub nie jest obecnie aktywna, prostokąt jest ignorowany, a wywołanie jest wykonywane do funkcji składowej IAdviseSink::OnViewChange . Użyj tej funkcji zamiast CWnd::InvalidateRect lub InvalidateRect.

COleControl::InvalidateRgn

Unieważnia obszar klienta okna kontenera w danym regionie.

void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);

Parametry

pRgn
Wskaźnik do obiektu CRgn , który identyfikuje region wyświetlania obiektu OLE w celu unieważnienia, we współrzędnych klienta okna zawierającego. Jeśli ten parametr ma wartość NULL, zakres jest całym obiektem.

bErase
Określa, czy tło w nieprawidłowym regionie ma zostać wymazane. Jeśli wartość TRUE, tło zostanie wymazane. Jeśli wartość FALSE, tło pozostanie niezmienione.

Uwagi

Umożliwia to ponowne rysowanie kontrolek bez okien w kontenerze. Unieważniony region wraz ze wszystkimi innymi obszarami w regionie aktualizacji jest oznaczony do malowania po wysłaniu następnego komunikatu WM_PAINT .

Jeśli wartość bErase ma wartość TRUE dla każdej części regionu aktualizacji, tło w całym regionie, a nie tylko w danej części, zostanie wymazane.

COleControl::IsConvertingVBX

Umożliwia wyspecjalizowane ładowanie kontrolki OLE.

BOOL IsConvertingVBX();

Wartość zwracana

Niezerowe, jeśli kontrolka jest konwertowana; w przeciwnym razie 0.

Uwagi

Podczas konwertowania formularza korzystającego z kontrolek VBX na formularz, który używa kontrolek OLE, może być wymagany specjalny kod ładowania dla kontrolek OLE. Jeśli na przykład ładujesz wystąpienie kontrolki OLE, może być konieczne wywołanie PX_Font w elemecie DoPropExchange:

PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);

Jednak kontrolki VBX nie miały obiektu Czcionka; każda właściwość czcionki została zapisana indywidualnie. W takim przypadku należy użyć IsConvertingVBX metody , aby rozróżnić te dwa przypadki:

if (!IsConvertingVBX())
{
   PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
   PX_String(pPX, _T("FontName"), tempString, DefaultName);
   m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
   PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
   m_pMyFont->m_pFont->put_Underline(tempBool);
}

Innym przypadkiem byłoby zapisanie zastrzeżonych danych binarnych przez kontrolkę VBX (w programie obsługi komunikatów VBM_SAVEPROPERTY), a kontrolka OLE zapisuje dane binarne w innym formacie. Jeśli chcesz, aby kontrolka OLE była zgodna z poprzednimi wersjami kontrolki VBX, możesz odczytać zarówno stare, jak i nowe formaty przy użyciu IsConvertingVBX funkcji, rozróżniając, czy kontrolka VBX, czy kontrolka OLE została załadowana.

W funkcji kontrolki DoPropExchange możesz sprawdzić, czy ten warunek jest spełniony, a jeśli ma wartość true, wykonaj kod ładowania specyficzny dla tej konwersji (na przykład w poprzednich przykładach). Jeśli kontrolka nie jest konwertowana, możesz wykonać normalny kod ładowania. Ta możliwość ma zastosowanie tylko do kontrolek konwertowanych z odpowiedników VBX.

COleControl::IsInvokeAllowed

Włącza wywołanie metody automatyzacji.

BOOL IsInvokeAllowed(DISPID dispid);

Wartość zwracana

Niezerowe, jeśli kontrolka została zainicjowana; w przeciwnym razie 0.

Uwagi

Implementacja wywołań IsInvokeAllowed platformy IDispatch::Invoke w celu określenia, czy dana funkcja (zidentyfikowana przez dispid) może zostać wywołana. Domyślne zachowanie kontrolki OLE polega na umożliwieniu wywoływanie metod automatyzacji tylko wtedy, gdy kontrolka została zainicjowana; IsInvokeAllowed jednak jest funkcją wirtualną i może zostać zastąpiona w razie potrzeby (na przykład gdy kontrolka jest używana jako serwer automatyzacji).

COleControl::IsModified

Określa, czy stan kontrolki został zmodyfikowany.

BOOL IsModified();

Wartość zwracana

Nonzero, jeśli stan kontrolki został zmodyfikowany od czasu jego ostatniego zapisania; w przeciwnym razie 0.

Uwagi

Stan kontrolki jest modyfikowany, gdy właściwość zmienia wartość.

COleControl::IsOptimizedDraw

Określa, czy kontener obsługuje zoptymalizowany rysunek dla bieżącej operacji rysunku.

BOOL IsOptimizedDraw();

Wartość zwracana

WARTOŚĆ TRUE, jeśli kontener obsługuje zoptymalizowany rysunek dla bieżącej operacji rysowania; w przeciwnym razie FAŁSZ.

Uwagi

Jeśli zoptymalizowany rysunek jest obsługiwany, kontrolka nie musi wybierać starych obiektów (piór, pędzli, czcionek itp.) do kontekstu urządzenia po zakończeniu rysunku.

COleControl::IsSubclassedControl

Wywoływana przez platformę w celu określenia, czy podklasy formantu systemu Windows.

virtual BOOL IsSubclassedControl();

Wartość zwracana

Nonzero, jeśli kontrolka jest podklasowana; w przeciwnym razie 0.

Uwagi

Należy zastąpić tę funkcję i zwrócić wartość TRUE, jeśli kontrolka OLE podklasy kontrolki systemu Windows.

COleControl::Load

Resetuje wszystkie poprzednie dane załadowane asynchronicznie i inicjuje nowe ładowanie właściwości asynchronicznej kontrolki.

void Load(LPCTSTR strNewPath, CDataPathProperty& prop);

Parametry

strNewPath
Wskaźnik do ciągu zawierającego ścieżkę odwołującą się do bezwzględnej lokalizacji właściwości kontrolki asynchronicznej.

Wniosku
Obiekt CDataPathProperty implementuje właściwość kontrolki asynchronicznej.

COleControl::LockInPlaceActive

Zapobiega dezaktywowaniu kontrolki przez kontener.

BOOL LockInPlaceActive(BOOL bLock);

Parametry

Bloku
WARTOŚĆ TRUE, jeśli stan aktywny w miejscu kontrolki ma być zablokowany; FAŁSZ, jeśli ma zostać odblokowany.

Wartość zwracana

Nonzero, jeśli blokada zakończyła się pomyślnie; w przeciwnym razie 0.

Uwagi

Należy pamiętać, że każde blokowanie kontrolki musi być sparowane z odblokowywaniem kontrolki po zakończeniu. Kontrolkę należy zablokować tylko przez krótkie okresy, na przykład podczas wyzwalania zdarzenia.

COleControl::OnAmbientPropertyChange

Wywoływana przez strukturę, gdy właściwość otoczenia kontenera zmieniła wartość.

virtual void OnAmbientPropertyChange(DISPID dispid);

Parametry

Dispid
Identyfikator wysyłki właściwości otoczenia, która uległa zmianie lub DISPID_UNKNOWN, jeśli wiele właściwości uległo zmianie.

COleControl::OnAppearanceChanged

Wywoływana przez platformę, gdy wartość właściwości wyglądu zapasów uległa zmianie.

virtual void OnAppearanceChanged ();

Uwagi

Zastąpi tę funkcję, jeśli chcesz otrzymywać powiadomienia po zmianie tej właściwości. Domyślna implementacja wywołuje metodę InvalidateControl.

COleControl::OnBackColorChanged

Wywoływana przez platformę po zmianie wartości właściwości BackColor stock.

virtual void OnBackColorChanged();

Uwagi

Zastąpi tę funkcję, jeśli chcesz otrzymywać powiadomienia po zmianie tej właściwości. Domyślna implementacja wywołuje metodę InvalidateControl.

COleControl::OnBorderStyleChanged

Wywoływana przez platformę, gdy wartość właściwości BorderStyle zapasów uległa zmianie.

virtual void OnBorderStyleChanged();

Uwagi

Domyślna implementacja wywołuje metodę InvalidateControl.

Zastąpi tę funkcję, jeśli chcesz otrzymywać powiadomienia po zmianie tej właściwości.

COleControl::OnClick

Wywoływana przez strukturę po kliknięciu przycisku myszy lub wywołaniu metody akcji DoClick.

virtual void OnClick(USHORT iButton);

Parametry

iButton
Indeks przycisku myszy. Może mieć jedną z następujących wartości:

  • LEFT_BUTTON Kliknięto lewy przycisk myszy.

  • MIDDLE_BUTTON Kliknięto środkowy przycisk myszy.

  • RIGHT_BUTTON Kliknięto prawym przyciskiem myszy.

Uwagi

Domyślna implementacja wywołuje metodę COleControl::FireClick.

Zastąpi tę funkcję składową, aby zmodyfikować lub rozszerzyć obsługę domyślną.

COleControl::OnClose

Wywoływana przez platformę, gdy kontener nazwał funkcję kontrolki IOleControl::Close .

virtual void OnClose(DWORD dwSaveOption);

Parametry

dwSaveOption
Flaga wskazująca, czy obiekt powinien zostać zapisany przed załadowaniem. Prawidłowe wartości:

  • OLECLOSE_SAVEIFDIRTY

  • OLECLOSE_NOSAVE

  • OLECLOSE_PROMPTSAVE

Uwagi

Domyślnie zapisuje obiekt kontrolny, OnClose jeśli został zmodyfikowany, a obiekt dwSaveOption jest OLECLOSE_SAVEIFDIRTY lub OLECLOSE_PROMPTSAVE.

COleControl::OnDoVerb

Wywoływana przez platformę, gdy kontener wywołuje funkcję składową IOleObject::DoVerb .

virtual BOOL OnDoVerb(
    LONG iVerb,
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametry

iVerb
Indeks czasownika sterującego do wywołania.

lpMsg
Wskaźnik komunikatu systemu Windows, który spowodował wywołanie czasownika.

hWndParent
Uchwyt do okna nadrzędnego kontrolki. Jeśli wykonanie czasownika tworzy okno (lub okna), hWndParent należy użyć jako elementu nadrzędnego.

Lprect
Wskaźnik do struktury RECT, do której zostaną skopiowane współrzędne kontrolki względem kontenera.

Wartość zwracana

Bezzerowe, jeśli wywołanie zakończyło się pomyślnie; w przeciwnym razie 0.

Uwagi

Domyślna implementacja używa ON_OLEVERB i ON_STDOLEVERB wpisów mapy komunikatów, aby określić właściwą funkcję do wywołania.

Zastąpi tę funkcję, aby zmienić domyślną obsługę czasownika.

COleControl::OnDraw

Wywoływana przez platformę w celu narysowania kontrolki OLE w określonym prostokątze ograniczenia przy użyciu określonego kontekstu urządzenia.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rcBounds,
    const CRect& rcInvalid);

Parametry

Pdc
Kontekst urządzenia, w którym występuje rysunek.

rcBounds
Prostokątny obszar kontrolki, w tym obramowanie.

rcInvalid
Prostokątny obszar kontrolki, który jest nieprawidłowy.

Uwagi

OnDraw jest zwykle wywoływany dla wyświetlania ekranu, przekazując kontekst urządzenia ekranu jako centrum dystrybucji kluczy. Parametr rcBounds identyfikuje prostokąt w kontekście urządzenia docelowego (względem bieżącego trybu mapowania). RcInvalid parametr jest rzeczywistym prostokątem, który jest nieprawidłowy. W niektórych przypadkach będzie to mniejszy obszar niż rcBounds.

COleControl::OnDrawMetafile

Wywoływana przez strukturę w celu narysowania kontrolki OLE w określonym prostokątze ograniczenia przy użyciu określonego kontekstu urządzenia metapliku.

virtual void OnDrawMetafile(
    CDC* pDC,
    const CRect& rcBounds);

Parametry

Pdc
Kontekst urządzenia, w którym występuje rysunek.

rcBounds
Prostokątny obszar kontrolki, w tym obramowanie.

Uwagi

Domyślna implementacja wywołuje funkcję OnDraw .

COleControl::OnEdit

Powoduje aktywowanie kontrolki za pomocą interfejsu użytkownika.

virtual BOOL OnEdit(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametry

lpMsg
Wskaźnik do komunikatu systemu Windows, który wywołał zlecenie.

hWndParent
Uchwyt do okna nadrzędnego kontrolki.

Lprect
Wskaźnik do prostokąta używanego przez kontrolkę w kontenerze.

Wartość zwracana

Nonzero, jeśli wywołanie zakończyło się pomyślnie; w przeciwnym razie 0.

Uwagi

Ma to taki sam efekt, jak wywołanie OLEIVERB_UIACTIVATE czasownika kontrolki.

Ta funkcja jest zwykle używana jako funkcja obsługi dla wpisu mapy komunikatów ON_OLEVERB. Dzięki temu czasownik "Edit" jest dostępny w menu "Object" kontrolki. Przykład:

ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)

COleControl::OnEnabledChanged

Wywoływana przez platformę, gdy wartość właściwości włączonej akcji uległa zmianie.

virtual void OnEnabledChanged();

Uwagi

Zastąpi tę funkcję, jeśli chcesz otrzymywać powiadomienia po zmianie tej właściwości. Domyślna implementacja wywołuje metodę InvalidateControl.

COleControl::OnenumVerbs

Wywoływana przez platformę, gdy kontener wywołuje funkcję składową IOleObject::EnumVerbs .

virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);

Parametry

ppenumOleVerb
Wskaźnik do IEnumOLEVERB obiektu, który wylicza czasowniki kontrolki.

Wartość zwracana

Niezerowe, jeśli czasowniki są dostępne; w przeciwnym razie 0.

Uwagi

Domyślna implementacja wylicza wpisy ON_OLEVERB na mapie komunikatów.

Zastąpi tę funkcję, aby zmienić domyślny sposób wyliczania czasowników.

COleControl::OnEventAdvise

Wywoływana przez platformę, gdy program obsługi zdarzeń jest połączony lub odłączony od kontrolki OLE.

virtual void OnEventAdvise(BOOL bAdvise);

Parametry

bAdvise
Wartość TRUE wskazuje, że program obsługi zdarzeń został połączony z kontrolką. FAŁSZ wskazuje, że program obsługi zdarzeń został odłączony od kontrolki.

COleControl::OnFontChanged

Wywoływana przez strukturę, gdy wartość właściwości czcionki stockowej uległa zmianie.

virtual void OnFontChanged();

Uwagi

Domyślna implementacja wywołuje metodę COleControl::InvalidateControl. Jeśli kontrolka jest podklasą kontrolki systemu Windows, domyślna implementacja wysyła również komunikat WM_SETFONT do okna kontrolki.

Zastąpi tę funkcję, jeśli chcesz otrzymywać powiadomienia po zmianie tej właściwości.

Przykład

void CMyAxCtrl::OnFontChanged()
{
   // Always set it to the container's font
   if (m_MyEdit.m_hWnd != NULL)
   {
      IFontDisp *pFontDisp = NULL;
      IFont *pFont = NULL;
      HRESULT hr;

      // Get the container's FontDisp interface
      pFontDisp = AmbientFont();
      if (pFontDisp)
      {
         hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
         if (FAILED(hr))
         {
            pFontDisp->Release();
            return;
         }
      }

      HFONT hFont = NULL;
      if (pFont)
      {
         pFont->get_hFont(&hFont);
         m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
      }

      pFontDisp->Release();
   }

   // Invalidate the control
   m_MyEdit.Invalidate();
   m_MyEdit.UpdateWindow();

   COleControl::OnFontChanged();
}

COleControl::OnForeColorChanged

Wywoływana przez platformę, gdy wartość właściwości Stock ForeColor uległa zmianie.

virtual void OnForeColorChanged();

Uwagi

Domyślna implementacja wywołuje metodę InvalidateControl.

Zastąpi tę funkcję, jeśli chcesz otrzymywać powiadomienia po zmianie tej właściwości.

COleControl::OnFreezeEvents

Wywoływana przez platformę po wywołaniu IOleControl::FreezeEventskontenera .

virtual void OnFreezeEvents(BOOL bFreeze);

Parametry

bFreeze
Wartość TRUE, jeśli obsługa zdarzeń kontrolki jest zamrożona; w przeciwnym razie FAŁSZ.

Uwagi

Domyślna implementacja nic nie robi.

Zastąpi tę funkcję, jeśli potrzebujesz dodatkowego zachowania, gdy obsługa zdarzeń jest zamrożona lub niezamrożona.

COleControl::OnGetColorSet

Wywoływana przez platformę, gdy kontener wywołuje funkcję składową IViewObject::GetColorSet .

virtual BOOL OnGetColorSet(
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    LPLOGPALETTE* ppColorSet);

Parametry

Ptd
Wskazuje urządzenie docelowe, dla którego obraz powinien być renderowany. Jeśli ta wartość ma wartość NULL, obraz powinien być renderowany dla domyślnego urządzenia docelowego, zazwyczaj urządzenia wyświetlanego.

hicTargetDev
Określa kontekst informacji na urządzeniu docelowym wskazanym przez pktd. Ten parametr może być kontekstem urządzenia, ale niekoniecznie. Jeśli parametr ptd ma wartość NULL, wartość hicTargetDev również powinna mieć wartość NULL.

ppColorSet
Wskaźnik do lokalizacji, w której należy skopiować zestaw kolorów, które będą używane. Jeśli funkcja nie zwraca zestawu kolorów, zwracana jest wartość NULL.

Wartość zwracana

Nonzero, jeśli zwracany jest prawidłowy zestaw kolorów; w przeciwnym razie 0.

Uwagi

Kontener wywołuje tę funkcję, aby uzyskać wszystkie kolory potrzebne do narysowania kontrolki OLE. Kontener może używać zestawów kolorów uzyskanych w połączeniu z kolorami, które musi ustawić ogólną paletę kolorów. Domyślna implementacja zwraca wartość FALSE.

Zastąpij tę funkcję, aby wykonać specjalne przetwarzanie tego żądania.

COleControl::OnGetControlInfo

Wywoływana przez platformę, gdy kontener kontrolki zażądał informacji o kontrolce.

virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);

Parametry

pControlInfo
Wskaźnik do struktury CONTROLINFO , która ma zostać wypełniona.

Uwagi

Te informacje składają się głównie z opisu kluczy mnemonic kontrolki. Domyślna implementacja wypełnia wartość pControlInfo informacjami domyślnymi.

Zastąpi tę funkcję, jeśli kontrolka musi przetwarzać klucze mnemonic.

COleControl::OnGetDisplayString

Wywoływana przez platformę w celu uzyskania ciągu reprezentującego bieżącą wartość właściwości zidentyfikowanej przez dispid.

virtual BOOL OnGetDisplayString(
    DISPID dispid,
    CString& strValue);

Parametry

Dispid
Identyfikator wysyłania właściwości kontrolki.

strValue
Odwołanie do obiektu CString , za pomocą którego zostanie zwrócony ciąg.

Wartość zwracana

Nonzero, jeśli ciąg został zwrócony w parametrze strValue; w przeciwnym razie 0.

Uwagi

Zastąpi tę funkcję, jeśli kontrolka ma właściwość, której wartość nie może zostać bezpośrednio przekonwertowana na ciąg i chcesz, aby wartość właściwości została wyświetlona w przeglądarce właściwości dostarczonej przez kontener.

COleControl::OnGetInPlaceMenu

Wywoływana przez platformę, gdy kontrolka jest aktywowana w celu uzyskania menu, które ma zostać scalone z istniejącym menu kontenera.

virtual HMENU OnGetInPlaceMenu();

Wartość zwracana

Uchwyt menu kontrolki lub wartość NULL, jeśli kontrolka nie ma żadnego. Domyślna implementacja zwraca wartość NULL.

Uwagi

Aby uzyskać więcej informacji na temat scalania zasobów OLE, zobacz artykuł Menu i zasoby (OLE).

COleControl::OnGetNaturalExtent

Wywoływana przez platformę w odpowiedzi na żądanie kontenera IViewObjectEx::GetNaturalExtent .

virtual BOOL OnGetNaturalExtent(
    DWORD dwAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    DVEXTENTINFO* pExtentInfo,
    LPSIZEL psizel);

Parametry

dwAspect
Określa sposób reprezentowania obiektu. Reprezentacje obejmują zawartość, ikonę, miniaturę lub wydrukowany dokument. Prawidłowe wartości są pobierane z wyliczenia DVASPECT lub DVASPECT2.

Lindex
Część obiektu, który jest interesujący. Obecnie tylko -1 jest prawidłowy.

Ptd
Wskazuje strukturę DVTARGETDEVICE definiującą urządzenie docelowe, dla którego powinien zostać zwrócony rozmiar obiektu.

hicTargetDev
Określa kontekst informacji dla urządzenia docelowego wskazanego przez parametr ptd , z którego obiekt może wyodrębnić metryki urządzenia i przetestować możliwości urządzenia. Jeśli parametr ptd ma wartość NULL, obiekt powinien zignorować wartość w parametrze hicTargetDev .

pExtentInfo
Wskazuje strukturę określającą DVEXTENTINFO rozmiar danych. Struktura DVEXTENTINFO jest:

typedef struct tagExtentInfo
{
    UINT cb;
    DWORD dwExtentMode;
    SIZEL sizelProposed;
}   DVEXTENTINFO;

Składowa dwExtentMode struktury może przyjmować jedną z dwóch wartości:

  • DVEXTENT_CONTENT Dowiedzieć się, jak duża powinna być kontrolka, aby dokładnie dopasować zawartość (przyciąganie do rozmiaru)

  • DVEXTENT_INTEGRAL Podczas zmiany rozmiaru należy przekazać proponowany rozmiar, aby kontrolować

psizel
Wskazuje na ustalanie rozmiaru danych zwracanych przez kontrolkę. Zwrócone dane ustalania rozmiaru są ustawione na -1 dla każdego wymiaru, który nie został skorygowany.

Wartość zwracana

Nonzero, jeśli pomyślnie zwraca lub dostosowuje rozmiar; w przeciwnym razie 0.

Uwagi

Zastąpi tę funkcję, aby zwrócić rozmiar wyświetlania obiektu znajdujący się najbliżej proponowanego rozmiaru i ex tryb namiotu w DVEXTENTINFO strukturze. Domyślna implementacja zwraca wartość FALSE i nie wprowadza żadnych korekt rozmiaru.

COleControl::OnGetPredefinedStrings

Wywoływana przez platformę w celu uzyskania zestawu wstępnie zdefiniowanych ciągów reprezentujących możliwe wartości dla właściwości.

virtual BOOL OnGetPredefinedStrings(
    DISPID dispid,
    CStringArray* pStringArray,
    CDWordArray* pCookieArray);

Parametry

Dispid
Identyfikator wysyłania właściwości kontrolki.

pStringArray
Tablica ciągów, która ma być wypełniona wartościami zwracanymi.

pCookieArray
Tablica DWORD, która ma być wypełniona wartościami zwracanymi.

Wartość zwracana

Nonzero, jeśli elementy zostały dodane do pStringArray i pCookieArray.

Uwagi

Zastąpi tę funkcję, jeśli kontrolka ma właściwość z zestawem możliwych wartości, które mogą być reprezentowane przez ciągi. Dla każdego elementu dodanego do elementu pStringArray należy dodać odpowiedni element "cookie" do pliku pCookieArray. Te wartości "cookie" mogą być później przekazywane przez platformę COleControl::OnGetPredefinedValue do funkcji.

COleControl::OnGetPredefinedValue

Wywoływana przez strukturę w celu uzyskania wartości odpowiadającej jednemu ze wstępnie zdefiniowanych ciągów zwróconych wcześniej przez przesłonięcia elementu COleControl::OnGetPredefinedStrings.

virtual BOOL OnGetPredefinedValue(
    DISPID dispid,
    DWORD dwCookie,
    VARIANT* lpvarOut);

Parametry

Dispid
Identyfikator wysyłania właściwości kontrolki.

dwCookie
Wartość pliku cookie zwrócona wcześniej przez zastąpienie elementu COleControl::OnGetPredefinedStrings.

lpvarOut
Wskaźnik do VARIANT struktury, za pomocą której zostanie zwrócona wartość właściwości.

Wartość zwracana

Nonzero, jeśli wartość została zwrócona w lpvarOut; w przeciwnym razie 0.

COleControl::OnGetViewExtent

Wywoływana przez platformę w odpowiedzi na żądanie IViewObject2::GetExtent kontenera.

virtual BOOL OnGetViewExtent(
    DWORD dwDrawAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    LPSIZEL lpsizel);

Parametry

dwDrawAspect
DWORD opisujący, która forma lub aspekt obiektu ma być wyświetlany. Prawidłowe wartości są pobierane z wyliczenia DVASPECT lub DVASPECT2.

Lindex
Część obiektu, który jest interesujący. Obecnie tylko -1 jest prawidłowy.

Ptd
Wskazuje strukturę DVTARGETDEVICE definiującą urządzenie docelowe, dla którego powinien zostać zwrócony rozmiar obiektu.

lpsizel
Wskazuje lokalizację, w której zwracany jest rozmiar obiektu.

Wartość zwracana

Niezero, jeśli informacje o zakresie zostały pomyślnie zwrócone; w przeciwnym razie 0.

Uwagi

Zastąpi tę funkcję, jeśli kontrolka używa rysunku dwuprzepustowego, a jego nieprzezroczyste i przezroczyste części mają różne wymiary.

COleControl::OnGetViewRect

Wywoływana przez platformę w odpowiedzi na żądanie kontenera IViewObjectEx::GetRect .

virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);

Parametry

dwAspect
DWORD opisujący, która forma lub aspekt obiektu ma być wyświetlany. Prawidłowe wartości są pobierane z wyliczenia DVASPECT lub DVASPECT2:

  • DVASPECT_CONTENT prostokąt ograniczenia całego obiektu. Lewy górny róg w miejscu pochodzenia i rozmiaru obiektu równym zakresowi zwróconym przez GetViewExtentelement .

  • DVASPECT_OPAQUE Obiekty z prostokątnym nieprzezroczystym regionem zwracają ten prostokąt. Inne nie powiodły się.

  • DVASPECT_TRANSPARENT prostokąt obejmujący wszystkie przezroczyste lub nieregularne części.

PRect
Wskazuje strukturę RECTL określającą prostokąt, w którym ma zostać narysowany obiekt. Ten parametr steruje pozycjonowaniem i rozciąganiem obiektu.

Wartość zwracana

Niezero, jeśli rozmiar prostokąta do obiektu został pomyślnie zwrócony; w przeciwnym razie 0.

Uwagi

Rozmiar obiektu jest konwertowany OnGetViewRect na prostokąt zaczynający się od określonej pozycji (wartość domyślna to lewy górny róg ekranu). Zastąpi tę funkcję, jeśli kontrolka używa rysunku dwuprzepustowego, a jego nieprzezroczyste i przezroczyste części mają różne wymiary.

COleControl::OnGetViewStatus

Wywoływana przez platformę w odpowiedzi na żądanie kontenera IViewObjectEx::GetViewStatus .

virtual DWORD OnGetViewStatus();

Wartość zwracana

Jedna z wartości wyliczenia VIEWSTATUS, jeśli zakończy się powodzeniem; w przeciwnym razie 0. Możliwe wartości to dowolna kombinacja następujących elementów:

Nazwa/nazwisko opis
VIEWSTATUS_OPAQUE Obiekt jest całkowicie nieprzezroczystym. Jeśli ten bit nie jest ustawiony, obiekt zawiera przezroczyste części. Ten bit dotyczy tylko aspektów związanych z zawartością, a nie DVASPECT_ICON lub DVASPECT_DOCPRINT.
VIEWSTATUS_SOLIDBKGND Obiekt ma solidne tło (składające się z stałego koloru, a nie wzorca pędzla). Ten bit ma znaczenie tylko wtedy, gdy VIEWSTATUS_OPAQUE jest ustawiony i ma zastosowanie tylko do aspektów związanych z zawartością, a nie do DVASPECT_ICON lub DVASPECT_DOCPRINT.
VIEWSTATUS_DVASPECTOPAQUE Obiekt obsługuje DVASPECT_OPAQUE. Wszystkie metody IViewObjectEx, które przyjmują aspekt rysunku jako parametr, można wywołać za pomocą tego aspektu.
VIEWSTATUS_DVASPECTTRANSPARENT Obiekt obsługuje DVASPECT_TRANSPARENT. Wszystkie IViewObjectEx metody, które przyjmują aspekt rysunku jako parametr, można wywołać za pomocą tego aspektu.

Uwagi

Zastąpi tę funkcję, jeśli kontrolka używa rysunku dwuprzepustowego. Domyślna implementacja zwraca VIEWSTATUS_OPAQUE.

COleControl::OnHideToolBars

Wywoływana przez platformę, gdy kontrolka jest dezaktywowana przez interfejs użytkownika.

virtual void OnHideToolBars();

Uwagi

Implementacja powinna ukrywać wszystkie paski narzędzi wyświetlane przez OnShowToolbarselement .

COleControl::OnInactiveMouseMove

Wywoływana przez kontener dla nieaktywnego obiektu pod wskaźnikiem myszy po otrzymaniu komunikatu WM_MOUSEMOVE.

virtual void OnInactiveMouseMove(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwKeyState);

Parametry

lprcBounds
Prostokąt ograniczenia obiektu we współrzędnych klienta okna zawierającego. Informuje obiekt o jego dokładnej pozycji i rozmiarze na ekranie po odebraniu komunikatu WM_MOUSEMOVE.

X
Współrzędna x lokalizacji myszy we współrzędnych klienta okna zawierającego.

Y
Współrzędna y lokalizacji myszy we współrzędnych klienta okna zawierającego.

dwKeyState
Identyfikuje bieżący stan klawiszy modyfikatora klawiatury na klawiaturze. Prawidłowe wartości mogą być kombinacją dowolnych flag MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON i MK_RBUTTON.

Uwagi

Należy pamiętać, że współrzędne klienta okna (piksele) są używane do przekazywania położenia kursora myszy. Dzięki temu można również przekazać prostokąt ograniczenia obiektu w tym samym układzie współrzędnych.

COleControl::OnInactiveSetCursor

Wywoływana przez kontener dla obiektu nieaktywnego pod wskaźnikiem myszy po otrzymaniu komunikatu WM_SETCURSOR.

virtual BOOL OnInactiveSetCursor(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwMouseMsg,
    BOOL bSetAlways);

Parametry

lprcBounds
Prostokąt ograniczenia obiektu we współrzędnych klienta okna zawierającego. Informuje obiekt o jego dokładnej pozycji i rozmiarze na ekranie po odebraniu komunikatu WM_SETCURSOR.

X
Współrzędna x lokalizacji myszy we współrzędnych klienta okna zawierającego.

Y
Współrzędna y lokalizacji myszy we współrzędnych klienta okna zawierającego.

dwMouseMsg
Identyfikator komunikatu myszy, dla którego wystąpił WM_SETCURSOR.

bSetAlways
Określa, czy obiekt musi ustawić kursor. Jeśli wartość TRUE, obiekt musi ustawić kursor; jeśli fałsz, kursor nie jest zobowiązany do ustawienia kursora i powinien zwrócić S_FALSE w tym przypadku.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Należy pamiętać, że współrzędne klienta okna (piksele) są używane do przekazywania położenia kursora myszy. Dzięki temu można również przekazać prostokąt ograniczenia obiektu w tym samym układzie współrzędnych.

COleControl::OnKeyDownEvent

Wywoływana przez strukturę po przetworzeniu zdarzenia keydown zapasów.

virtual void OnKeyDownEvent(
    USHORT nChar,
    USHORT nShiftState);

Parametry

Nchar
Wartość kodu klucza wirtualnego naciśnięcia klawisza. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h

nShiftState
Zawiera kombinację następujących flag:

  • SHIFT_MASK klawisz SHIFT został naciśnięty podczas akcji.

  • CTRL_MASK naciśnięcie klawisza CTRL podczas akcji.

  • ALT_MASK klawisz ALT został naciśnięty podczas akcji.

Uwagi

Zastąpi tę funkcję, jeśli kontrola wymaga dostępu do kluczowych informacji po wyzwoleniu zdarzenia.

COleControl::OnKeyPressevent

Wywoływana przez platformę po uruchomieniu zdarzenia KeyPress.

virtual void OnKeyPressEvent(USHORT nChar);

Parametry

Nchar
Zawiera wartość kodu klucza wirtualnego naciśnięcia klawisza. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h

Uwagi

Należy pamiętać, że wartość nChar mogła zostać zmodyfikowana przez kontener.

Zastąpi tę funkcję, jeśli chcesz otrzymywać powiadomienia po wystąpieniu tego zdarzenia.

COleControl::OnKeyUpEvent

Wywoływana przez strukturę po przetworzeniu zdarzenia keydown zapasów.

virtual void OnKeyUpEvent(
    USHORT nChar,
    USHORT nShiftState);

Parametry

Nchar
Wartość kodu klucza wirtualnego naciśnięcia klawisza. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h

nShiftState
Zawiera kombinację następujących flag:

  • SHIFT_MASK klawisz SHIFT został naciśnięty podczas akcji.

  • CTRL_MASK naciśnięcie klawisza CTRL podczas akcji.

  • ALT_MASK klawisz ALT został naciśnięty podczas akcji.

Uwagi

Zastąpi tę funkcję, jeśli kontrola wymaga dostępu do kluczowych informacji po wyzwoleniu zdarzenia.

COleControl::OnMapPropertyToPage

Wywoływana przez platformę w celu uzyskania identyfikatora klasy strony właściwości, która implementuje edycję określonej właściwości.

virtual BOOL OnMapPropertyToPage(
    DISPID dispid,
    LPCLSID lpclsid,
    BOOL* pbPageOptional);

Parametry

Dispid
Identyfikator wysyłania właściwości kontrolki.

lpclsid
Wskaźnik do CLSID struktury, za pomocą której zostanie zwrócony identyfikator klasy.

pbPageOptional
Zwraca wskaźnik, czy użycie określonej strony właściwości jest opcjonalne.

Wartość zwracana

Nonzero, jeśli identyfikator klasy został zwrócony w lpclsid; w przeciwnym razie 0.

Uwagi

Zastąpi tę funkcję, aby zapewnić sposób wywoływania stron właściwości kontrolki z przeglądarki właściwości kontenera.

COleControl::OnMnemonic

Wywoływana przez platformę, gdy kontener wykrył, że naciśnięty został klawisz mnemonic kontrolki OLE.

virtual void OnMnemonic(LPMSG pMsg);

Parametry

PMsg
Wskaźnik do komunikatu systemu Windows wygenerowanego przez naciśnięcie klawisza mnemonic.

COleControl::OnProperties

Wywoływana przez platformę, gdy czasownik właściwości kontrolki został wywołany przez kontener.

virtual BOOL OnProperties(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametry

lpMsg
Wskaźnik do komunikatu systemu Windows, który wywołał zlecenie.

hWndParent
Uchwyt do okna nadrzędnego kontrolki.

Lprect
Wskaźnik do prostokąta używanego przez kontrolkę w kontenerze.

Wartość zwracana

Nonzero, jeśli wywołanie zakończyło się pomyślnie; w przeciwnym razie 0.

Uwagi

Domyślna implementacja wyświetla okno dialogowe właściwości modalnej.

Możesz również użyć tej funkcji, aby spowodować wyświetlanie stron właściwości kontrolki. Wywołaj OnProperties funkcję, przekazując dojście do elementu nadrzędnego kontrolki w parametrze hWndParent . W tym przypadku wartości parametrów lpMsg i lpRect są ignorowane.

COleControl::OnQueryHitPoint

Wywoływana przez platformę w odpowiedzi na żądanie kontenera IViewObjectEx::QueryHitPoint .

virtual BOOL OnQueryHitPoint(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    POINT ptlLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Parametry

dwAspect
Określa sposób reprezentowania obiektu. Prawidłowe wartości są pobierane z wyliczenia DVASPECT lub DVASPECT2.

pRectBounds
Wskaźnik do RECT struktury określającej prostokąt ograniczenia obszaru klienta kontrolki OLE.

ptlLoc
Wskaźnik do POINT struktury określającej punkt, który ma zostać sprawdzony pod kątem trafienia. Punkt jest określony we współrzędnych obszaru klienta OLE.

lCloseHint
Odległość, która definiuje "blisko" do punktu sprawdzanego pod kątem trafienia.

pHitResult
Wskaźnik do wyniku zapytania trafienia. Jedna z następujących wartości:

  • HITRESULT_OUTSIDE ptlLoc znajduje się poza obiektem OLE i nie jest zamykany.

  • HITRESULT_TRANSPARENT ptlLoc znajduje się w granicach obiektu OLE, ale nie znajduje się w pobliżu obrazu. Na przykład punkt w środku przezroczystego okręgu może być HITRESULT_TRANSPARENT.

  • HITRESULT_CLOSE ptlLoc znajduje się wewnątrz lub na zewnątrz obiektu OLE, ale wystarczająco blisko obiektu, aby można go było uznać za wewnątrz. Małe, cienkie lub szczegółowe obiekty mogą używać tej wartości. Nawet jeśli punkt znajduje się poza prostokątem ograniczenia obiektu, może być nadal blisko (jest to konieczne do trafienia małych obiektów).

  • HITRESULT_HIT ptlLoc znajduje się na obrazie obiektu.

Wartość zwracana

Niezero, jeśli wynik trafienia zostanie pomyślnie zwrócony; w przeciwnym razie 0. Trafienie jest nakładające się na obszar wyświetlania kontrolki OLE.

Uwagi

Kwerenda, czy prostokąt wyświetlania obiektu nakłada się na dany punkt (osiąga punkt). QueryHitPoint można przesłonić w celu przetestowania trafień dla obiektów innych niż prostokątne.

COleControl::OnQueryHitRect

Wywoływana przez platformę w odpowiedzi na żądanie kontenera IViewObjectEx::QueryHitRect .

virtual BOOL OnQueryHitRect(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    LPCRECT prcLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Parametry

dwAspect
Określa sposób reprezentowania obiektu. Prawidłowe wartości są pobierane z wyliczenia DVASPECT lub DVASPECT2.

pRectBounds
Wskaźnik do RECT struktury określającej prostokąt ograniczenia obszaru klienta kontrolki OLE.

chrlLoc
Wskaźnik do RECT struktury określającej prostokąt, który ma być sprawdzany pod kątem trafienia (nakładają się na prostokąt obiektu), względem lewego górnego rogu obiektu.

lCloseHint
Nie używany.

pHitResult
Wskaźnik do wyniku zapytania trafienia. Jedna z następujących wartości:

  • HITRESULT_OUTSIDE żaden punkt w prostokątze nie jest osiągany przez obiekt OLE.

  • HITRESULT_HIT co najmniej jeden punkt w prostokątze będzie trafieniem obiektu.

Wartość zwracana

Niezero, jeśli wynik trafienia zostanie pomyślnie zwrócony; w przeciwnym razie 0.

Uwagi

Kwerenda, czy prostokąt wyświetlania obiektu nakłada się na dowolny punkt w danym prostokątze (osiąga prostokąt). QueryHitRect można przesłonić w celu przetestowania trafień dla obiektów innych niż prostokątne.

COleControl::OnRenderData

Wywoływana przez platformę w celu pobrania danych w określonym formacie.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Parametry

lpFormatEtc
Wskazuje strukturę FORMATETC określającą format, w którym są żądane informacje.

lpStgMedium
Wskazuje strukturę STGMEDIUM, w której dane mają być zwracane.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Określony format jest wcześniej umieszczony w obiekcie sterującym przy użyciu funkcji składowych DelayRenderData lub DelayRenderFileData na potrzeby opóźnionego renderowania. Domyślna implementacja tej funkcji wywołuje OnRenderFileData lub OnRenderGlobalData, odpowiednio, jeśli podany nośnik magazynu jest plikiem lub pamięcią. Jeśli żądany format jest CF_METAFILEPICT lub trwały format zestawu właściwości, domyślna implementacja renderuje odpowiednie dane i zwraca wartość niezerowa. W przeciwnym razie zwraca wartość 0 i nic nie robi.

Jeśli lpStgMedium-tymed> jest TYMED_NULL, STGMEDIUM należy przydzielić i wypełnić zgodnie z lpFormatEtc-tymed>. Jeśli nie TYMED_NULL, plik STGMEDIUM powinien zostać wypełniony danymi.

Zastąpi tę funkcję, aby udostępnić dane w żądanym formacie i nośniku. W zależności od danych możesz zastąpić jedną z pozostałych wersji tej funkcji. Jeśli dane są małe i stałe, zastąpij OnRenderGlobalDatawartość . Jeśli dane są w pliku lub mają zmienny rozmiar, przesłoń OnRenderFileDatawartość .

Aby uzyskać więcej informacji, zobacz struktury FORMATETC i STGMEDIUM w zestawie Windows SDK.

COleControl::OnRenderFileData

Wywoływana przez platformę w celu pobrania danych w określonym formacie, gdy nośnik magazynu jest plikiem.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Parametry

lpFormatEtc
Wskazuje strukturę FORMATETC określającą format, w którym są żądane informacje.

plik pFile
Wskazuje obiekt CFile, w którym dane mają być renderowane.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Określony format jest wcześniej umieszczony w obiekcie kontrolnym przy użyciu funkcji składowej DelayRenderData na potrzeby opóźnionego renderowania. Domyślna implementacja tej funkcji po prostu zwraca wartość FALSE.

Zastąpi tę funkcję, aby udostępnić dane w żądanym formacie i nośniku. W zależności od danych warto zastąpić jedną z pozostałych wersji tej funkcji. Jeśli chcesz obsługiwać wiele nośników magazynu, zastąpij OnRenderDatawartość . Jeśli dane są w pliku lub mają zmienny rozmiar, przesłoń OnRenderFileDatawartość .

Aby uzyskać więcej informacji, zobacz FORMATETC strukturę w zestawie Windows SDK.

COleControl::OnrenderGlobalData

Wywoływana przez platformę w celu pobrania danych w określonym formacie, gdy określony nośnik magazynu jest pamięcią globalną.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Parametry

lpFormatEtc
Wskazuje strukturę FORMATETC określającą format, w którym są żądane informacje.

phGlobal
Wskazuje dojście do pamięci globalnej, w której dane mają być zwracane. Jeśli pamięć nie została przydzielona, ten parametr może mieć wartość NULL.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Określony format jest wcześniej umieszczony w obiekcie kontrolnym przy użyciu funkcji składowej DelayRenderData na potrzeby opóźnionego renderowania. Domyślna implementacja tej funkcji po prostu zwraca wartość FALSE.

Jeśli fraza phGlobal ma wartość NULL, należy przydzielić i zwrócić nową frazę HGLOBAL. W przeciwnym razie parametr HGLOBAL określony przez frazę phGlobal powinien być wypełniony danymi. Ilość danych umieszczonych w HGLOBAL nie może przekraczać bieżącego rozmiaru bloku pamięci. Ponadto nie można ponownie przydzielić bloku do większego rozmiaru.

Zastąpi tę funkcję, aby udostępnić dane w żądanym formacie i nośniku. W zależności od danych możesz zastąpić jedną z pozostałych wersji tej funkcji. Jeśli chcesz obsługiwać wiele nośników magazynu, zastąpij OnRenderDatawartość . Jeśli dane są w pliku lub mają zmienny rozmiar, przesłoń OnRenderFileDatawartość .

Aby uzyskać więcej informacji, zobacz FORMATETC strukturę w zestawie Windows SDK.

COleControl::OnResetState

Wywoływana przez platformę, gdy właściwości kontrolki powinny być ustawione na ich wartości domyślne.

virtual void OnResetState();

Uwagi

Domyślna implementacja wywołuje metodę CPropExchange DoPropExchange, przekazując obiekt, który powoduje ustawienie właściwości na ich wartości domyślne.

Składnik zapisywania kontrolek może wstawić kod inicjowania dla kontrolki OLE w tym zastąpieniu. Ta funkcja jest wywoływana, gdy element IPersistStream::Load lub IPersistStorage::Load fail lub IPersistStreamInit::InitNew lub IPersistStorage::InitNew jest wywoływany bez uprzedniego wywołania IPersistStream::Load metody lub IPersistStorage::Load.

COleControl::OnSetClientSite

Wywoływana przez platformę, gdy kontener nazwał funkcję kontrolki IOleControl::SetClientSite .

virtual void OnSetClientSite();

Uwagi

Domyślnie sprawdza, OnSetClientSite czy właściwości ścieżki danych są ładowane, a jeśli są, wywołuje metodę DoDataPathPropExchange.

Zastąpij tę funkcję, aby wykonać specjalne przetwarzanie tego powiadomienia. W szczególności przesłonięcia tej funkcji powinny wywoływać klasę bazową.

COleControl::OnSetData

Wywoływana przez platformę w celu zastąpienia danych kontrolki określonymi danymi.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Parametry

lpFormatEtc
Wskaźnik do struktury FORMATETC określający format danych.

lpStgMedium
Wskaźnik do struktury STGMEDIUM , w której znajdują się dane.

Brelease
Wartość TRUE, jeśli kontrolka powinna zwolnić nośnik magazynu; FAŁSZ, jeśli kontrolka nie powinna zwalniać nośnika magazynu.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Jeśli dane są w formacie trwałego zestawu właściwości, domyślna implementacja modyfikuje odpowiednio stan kontrolki. W przeciwnym razie domyślna implementacja nic nie robi. Jeśli wartość bRelease ma wartość TRUE, wywołanie metody ReleaseStgMedium jest wykonywane; w przeciwnym razie nie.

Zastąp tę funkcję, aby zastąpić dane kontrolki określonymi danymi.

Aby uzyskać więcej informacji, zobacz struktury FORMATETC i STGMEDIUM w zestawie Windows SDK.

COleControl::OnSetExtent

Wywoływana przez strukturę, gdy zakres kontrolki musi zostać zmieniony, w wyniku wywołania elementu IOleObject::SetExtent.

virtual BOOL OnSetExtent(LPSIZEL lpSizeL);

Parametry

lpSizeL
Wskaźnik do SIZEL struktury, która używa długich liczb całkowitych do reprezentowania szerokości i wysokości kontrolki, wyrażonej w jednostkach HIMETRIC.

Wartość zwracana

Niezero, jeśli zmiana rozmiaru została zaakceptowana; w przeciwnym razie 0.

Uwagi

Domyślna implementacja obsługuje zmianę rozmiaru zakresu kontrolki. Jeśli kontrolka jest aktywna w miejscu, wykonywane jest wywołanie kontenera OnPosRectChanged .

Zastąpi tę funkcję, aby zmienić domyślną zmianę rozmiaru kontrolki.

COleControl::OnSetObjectRects

Wywoływana przez platformę w celu zaimplementowania wywołania obiektu IOleInPlaceObject::SetObjectRects.

virtual BOOL OnSetObjectRects(
    LPCRECT lpRectPos,
    LPCRECT lpRectClip);

Parametry

lpRectPos
Wskaźnik do RECT struktury wskazującej nową pozycję i rozmiar kontrolki względem kontenera.

lpRectClip
Wskaźnik do RECT struktury wskazującej prostokątny obszar, do którego ma zostać obcięta kontrolka.

Wartość zwracana

Niezerowe, jeśli zmiana położenia została zaakceptowana; w przeciwnym razie 0.

Uwagi

Domyślna implementacja automatycznie obsługuje zmianę położenia i zmianę rozmiaru okna sterowania i zwraca wartość TRUE.

Zastąpij tę funkcję, aby zmienić domyślne zachowanie tej funkcji.

COleControl::OnShowToolBars

Wywoływana przez platformę po aktywowaniu kontrolki.

virtual void OnShowToolBars();

Uwagi

Domyślna implementacja nic nie robi.

COleControl::OnTextChanged

Wywoływana przez strukturę, gdy wartość właściwości Caption lub Text została zmieniona.

virtual void OnTextChanged();

Uwagi

Domyślna implementacja wywołuje metodę InvalidateControl.

Zastąpi tę funkcję, jeśli chcesz otrzymywać powiadomienia po zmianie tej właściwości.

COleControl::OnWindowlessMessage

Wywoływana przez platformę w odpowiedzi na żądanie kontenera IOleInPlaceObjectWindowless::OnWindowMessage .

virtual BOOL OnWindowlessMessage(
    UINT msg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Parametry

Msg
Identyfikator komunikatu przekazywany przez system Windows.

Wparam
Zgodnie z przekazywaniem przez system Windows. Określa dodatkowe informacje specyficzne dla komunikatów. Zawartość tego parametru zależy od wartości parametru msg .

Lparam
Zgodnie z przekazywaniem przez system Windows. Określa dodatkowe informacje specyficzne dla komunikatów. Zawartość tego parametru zależy od wartości parametru msg .

plResult
Kod wyniku systemu Windows. Określa wynik przetwarzania komunikatów i zależy od wysłanego komunikatu.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Przetwarza komunikaty okien dla kontrolek bez okien. COleControl"s OnWindowlessMessage powinny być używane w przypadku komunikatów okien innych niż komunikaty myszy i komunikaty klawiaturowe. COleControl zapewnia funkcję SetCapture i SetFocus , aby uzyskać przechwytywanie myszy i fokus klawiatury dla obiektów OLE bez okien.

Ponieważ obiekty bez okien nie mają okna, muszą mieć mechanizm umożliwiający wysyłanie do nich komunikatów przez kontener. Obiekt OLE bez okna pobiera komunikaty z kontenera za pośrednictwem OnWindowMessage metody w interfejsie IOleInPlaceObjectWindowless (rozszerzenie obiektu IOleInPlaceObject na potrzeby obsługi bez okien). OnWindowMessage nie bierze parametru HWND .

COleControl::P arentToClient

Tłumaczy współrzędne pPoint na współrzędne klienta.

virtual UINT ParentToClient(
    LPCRECT lprcBounds,
    LPPOINT pPoint,
    BOOL bHitTest = FALSE) const;

Parametry

lprcBounds
Wskaźnik do granic kontrolki OLE w kontenerze. Nie obszar klienta, ale obszar całej kontrolki, w tym obramowania i paski przewijania.

pPoint
Wskaźnik do punktu nadrzędnego (kontenera), który ma zostać przetłumaczony na współrzędne obszaru klienta kontrolki.

bHitTest
Określa, czy testy trafione mają być wykonywane w punkcie.

Wartość zwracana

Jeśli bHitTest ma wartość FALSE, zwraca wartość HTNOWHERE. Jeśli bHitTest ma wartość TRUE, zwraca lokalizację, w której punkt nadrzędny (kontener) wylądował w obszarze klienta kontrolki OLE i jest jedną z następujących wartości testu trafień myszy:

  • HTBORDER W obramowaniu okna, które nie ma obramowania rozmiaru.

  • HTBOTTOM W dolnej krawędzi poziomej okna.

  • HTBOTTOMLEFT W lewym dolnym rogu obramowania okna.

  • HTBOTTOMRIGHT W prawym dolnym rogu obramowania okna.

  • HTCAPTION W obszarze paska tytułu.

  • HTCLIENT w obszarze klienta.

  • HTERROR Na tle ekranu lub na linii podziału między oknami (tak samo jak HTNOWHERE, z tą różnicą, że DefWndProc funkcja systemu Windows generuje sygnał dźwiękowy systemu, aby wskazać błąd).

  • HTGROWBOX W polu rozmiaru.

  • HTHSCROLL Na pasku przewijania poziomego.

  • HTLEFT W lewej krawędzi okna.

  • HTMAXBUTTON W przycisku Maksymalizuj.

  • HTMENU W obszarze menu.

  • HTMINBUTTON W przycisku Minimalizuj.

  • HTNOWHERE Na tle ekranu lub na linii podziału między oknami.

  • HTREDUCE W przycisku Minimalizuj.

  • HTRIGHT W prawej krawędzi okna.

  • HTSIZE W polu rozmiaru (takim samym jak HTGROWBOX).

  • HTSYSMENU W menu kontrolki lub w przycisku Zamknij w oknie podrzędnym.

  • HTTOP W górnej poziomej krawędzi okna.

  • HTTOPLEFT W lewym górnym rogu obramowania okna.

  • HTTOPRIGHT W prawym górnym rogu obramowania okna.

  • HTTRANSPARENT W oknie obecnie pokrytym innym oknem.

  • HTVSCROLL Na pionowym pasku przewijania.

  • HTZOOM W przycisku Maksymalizuj.

Uwagi

W danych wejściowych pPoint jest względem źródła elementu nadrzędnego (lewy górny róg kontenera). W danych wyjściowych pPoint jest względem źródła obszaru klienta kontrolki OLE (lewy górny róg obszaru klienta kontrolki).

COleControl::P ostModalDialog

Powiadamia kontener o zamknięciu modalnego okna dialogowego.

void PostModalDialog(HWND hWndParent = NULL);

Parametry

hWndParent
Dojmij do okna nadrzędnego modalnego okna dialogowego.

Uwagi

Wywołaj tę funkcję po wyświetleniu dowolnego modalnego okna dialogowego. Należy wywołać tę funkcję, aby kontener mógł włączyć dowolne okna najwyższego poziomu wyłączone przez usługę PreModalDialog. Ta funkcja powinna być sparowana z wywołaniem metody PreModalDialog.

COleControl::P reModalDialog

Powiadamia kontener, że zostanie wyświetlone modalne okno dialogowe.

void PreModalDialog(HWND hWndParent = NULL);

Parametry

hWndParent
Dojmij do okna nadrzędnego modalnego okna dialogowego.

Uwagi

Wywołaj tę funkcję przed wyświetleniem dowolnego modalnego okna dialogowego. Należy wywołać tę funkcję, aby kontener mógł wyłączyć wszystkie okna najwyższego poziomu. Po wyświetleniu modalnego okna dialogowego należy wywołać metodę PostModalDialog.

COleControl::RecreateControlWindow

Niszczy i ponownie tworzy okno kontrolki.

void RecreateControlWindow();

Uwagi

Może to być konieczne, jeśli trzeba zmienić bity stylu okna.

COleControl::Refresh

Wymusza przemalowanie kontrolki OLE.

void Refresh();

Uwagi

Ta funkcja jest obsługiwana COleControl przez klasę bazową jako metodę stockową o nazwie Refresh. Dzięki temu użytkownicy kontrolki OLE przemalować kontrolkę w określonym czasie. Aby uzyskać więcej informacji na temat tej metody, zobacz artykuł Kontrolki ActiveX: Metody.

COleControl::ReleaseCapture

Zwalnia przechwytywanie myszy.

BOOL ReleaseCapture();

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Jeśli kontrolka ma obecnie przechwytywanie myszy, przechwytywanie jest zwalniane. W przeciwnym razie ta funkcja nie ma żadnego wpływu.

COleControl::ReleaseDC

Zwalnia kontekst wyświetlania urządzenia kontenera kontrolki bez okien, zwalniając kontekst urządzenia do użycia przez inne aplikacje.

int ReleaseDC(CDC* pDC);

Parametry

Pdc
Identyfikuje kontekst urządzenia kontenera do wydania.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Aplikacja musi wywołać ReleaseDC każde wywołanie metody GetDC.

COleControl::ReparentControlWindow

Ustawia element nadrzędny kontrolki.

virtual void ReparentControlWindow(
    HWND hWndOuter,
    HWND hWndParent);

Parametry

hWndOuter
Uchwyt okna sterowania.

hWndParent
Uchwyt nowego okna nadrzędnego.

Uwagi

Wywołaj tę funkcję, aby zresetować element nadrzędny okna sterowania.

COleControl::ResetStockProps

Inicjuje COleControl stan właściwości akcji do ich wartości domyślnych.

void ResetStockProps();

Uwagi

Właściwości to: Wygląd, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor, hWnd i Text. Opis właściwości zapasów można znaleźć w temacie ActiveX Controls: Adding Stock Properties (Kontrolki ActiveX: dodawanie właściwości akcji).

Wydajność inicjowania binarnego kontrolki można poprawić za pomocą polecenia ResetStockProps i ResetVersion , aby zastąpić COleControl::OnResetStateelement . Zobacz poniższy przykład. Aby uzyskać więcej informacji na temat optymalizowania inicjowania, zobacz ActiveX Controls: Optimization (Kontrolki ActiveX: optymalizacja).

Przykład

void CMyAxCtrl::OnResetState()
{
   ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
   ResetStockProps();

   // initialize custom properties here
}

COleControl::ResetVersion

Inicjuje numer wersji do określonej wartości.

void ResetVersion(DWORD dwVersionDefault);

Parametry

dwVersionDefault
Numer wersji, który ma zostać przypisany do kontrolki.

Uwagi

Wydajność inicjowania binarnego kontrolki można poprawić za pomocą polecenia ResetVersion i ResetStockProps , aby zastąpić COleControl::OnResetStateelement . Zobacz przykład w artykule ResetStockProps. Aby uzyskać więcej informacji na temat optymalizowania inicjowania, zobacz ActiveX Controls: Optimization (Kontrolki ActiveX: optymalizacja).

COleControl::ScrollWindow

Umożliwia obiektowi OLE bez okna przewijanie obszaru w swoim aktywnym obrazie na ekranie.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Parametry

xAmount
Określa ilość w jednostkach urządzeń przewijania w poziomie. Ten parametr musi być wartością ujemną, aby przewinąć do lewej strony.

yAmount
Określa ilość w jednostkach urządzenia przewijania w pionie. Ten parametr musi być wartością ujemną, aby przewinąć w górę.

Lprect
Wskazuje obiekt CRect lub strukturę RECT, która określa część obszaru klienta obiektu OLE do przewijania, we współrzędnych klienta okna zawierającego. Jeśli wartość lpRect ma wartość NULL, przewijany jest cały obszar klienta obiektu OLE.

lpClipRect
CRect Wskazuje obiekt lub RECT strukturę, która określa prostokąt do przycinania. Przewijane są tylko piksele wewnątrz prostokąta. Bity poza prostokątem nie mają wpływu, nawet jeśli znajdują się w prostokątze lpRect . Jeśli wartość lpClipRect ma wartość NULL, na prostokątie przewijania nie jest wykonywane żadne wycinki.

COleControl::SelectFontObject

Wybiera czcionkę w kontekście urządzenia.

CFont* SelectFontObject(
    CDC* pDC,
    CFontHolder& fontHolder);

Parametry

Pdc
Wskaźnik do obiektu kontekstu urządzenia.

fontHolder
Odwołanie do obiektu CFontHolder reprezentującego czcionkę do wybrania.

Wartość zwracana

Wskaźnik do wcześniej wybranej czcionki. Gdy obiekt wywołujący zakończył wszystkie operacje rysowania używające czcionkiHolder, powinien ponownie wybrać wcześniej wybraną czcionkę, przekazując ją jako parametr do obiektu CDC::SelectObject.

COleControl::SelectStockFont

Wybiera właściwość czcionki stockowej w kontekście urządzenia.

CFont* SelectStockFont(CDC* pDC);

Parametry

Pdc
Kontekst urządzenia, w którym zostanie wybrana czcionka.

Wartość zwracana

Wskaźnik do wcześniej wybranego CFont obiektu. Po zakończeniu należy użyć cdC::SelectObject , aby wybrać tę czcionkę z powrotem do kontekstu urządzenia.

COleControl::SerializeExtent

Serializuje lub inicjuje stan miejsca wyświetlania przydzielonego do kontrolki.

void SerializeExtent(CArchive& ar);

Parametry

Ar
CArchive Obiekt do serializacji do lub z.

Uwagi

Wydajność trwałości binarnej kontrolki można poprawić przy użyciu parametrów SerializeExtent, SerializeStockPropsi, aby SerializeVersion zastąpić COleControl::Serializeelement . Zobacz poniższy przykład. Aby uzyskać więcej informacji na temat optymalizowania inicjowania, zobacz ActiveX Controls: Optimization (Kontrolki ActiveX: optymalizacja).

Przykład

void CMyAxCtrl::Serialize(CArchive &ar)
{
   SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
   SerializeExtent(ar);
   SerializeStockProps(ar);

   if (ar.IsStoring())
   { // storing code
   }
   else
   { // loading code
   }
}

COleControl::SerializeStockProps

Serializuje lub inicjuje COleControl stan właściwości zapasów: Wygląd, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor i Text.

void SerializeStockProps(CArchive& ar);

Parametry

Ar
CArchive Obiekt do serializacji do lub z.

Uwagi

Opis właściwości zapasów można znaleźć w temacie ActiveX Controls: Adding Stock Properties (Kontrolki ActiveX: dodawanie właściwości akcji).

Wydajność trwałości binarnej kontrolki można poprawić przy użyciu parametrów SerializeStockProps, SerializeExtenti, aby SerializeVersion zastąpić COleControl::Serializeelement . Aby zapoznać się z przykładem, zobacz kod w temacie SerializeExtent. Aby uzyskać więcej informacji na temat optymalizowania inicjowania, zobacz ActiveX Controls: Optimization (Kontrolki ActiveX: optymalizacja).

COleControl::SerializeVersion

Serializuje lub inicjuje stan informacji o wersji kontrolki.

DWORD SerializeVersion(
    CArchive& ar,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Parametry

Ar
CArchive Obiekt do serializacji do lub z.

dwVersionDefault
Bieżący numer wersji kontrolki.

bConvert
Wskazuje, czy dane trwałe mają być konwertowane na najnowszy format podczas ich zapisywania, czy przechowywane w tym samym formacie, jaki miał podczas ładowania.

Wartość zwracana

Numer wersji kontrolki. Jeśli określone archiwum jest ładowane, SerializeVersion zwraca wersję załadowaną z tego archiwum. W przeciwnym razie zwraca obecnie załadowaną wersję.

Uwagi

Wydajność trwałości binarnej kontrolki można poprawić przy użyciu parametrów SerializeVersion, SerializeExtenti, aby SerializeStockProps zastąpić COleControl::Serializeelement . Aby zapoznać się z przykładem, zobacz kod w temacie SerializeExtent. Aby uzyskać więcej informacji na temat optymalizowania inicjowania, zobacz ActiveX Controls: Optimization (Kontrolki ActiveX: optymalizacja).

COleControl::SetAppearance

Ustawia wartość właściwości wyglądu akcji kontrolki.

void SetAppearance (short sAppearance);

Parametry

sAppearance
Wartość short (VT_I2) do użycia na potrzeby wyglądu kontrolki. Wartość zero ustawia wygląd kontrolki na płaską, a wartość 1 ustawia wygląd kontrolki na 3D.

Uwagi

Aby uzyskać więcej informacji o właściwościach zapasów, zobacz ActiveX Controls: Properties (Kontrolki ActiveX: właściwości).

COleControl::SetBackColor

Ustawia wartość właściwości stock BackColor kontrolki.

void SetBackColor(OLE_COLOR dwBackColor);

Parametry

dwBackColor
Wartość OLE_COLOR, która ma być używana do rysowania tła kontrolki.

Uwagi

Aby uzyskać więcej informacji na temat używania tej właściwości i innych powiązanych właściwości, zobacz artykuł Kontrolki ActiveX: Właściwości.

COleControl::SetBorderStyle

Ustawia wartość właściwości Stock BorderStyle kontrolki.

void SetBorderStyle(short sBorderStyle);

Parametry

sBorderStyle
Nowy styl obramowania kontrolki; Wartość 0 nie wskazuje obramowania, a 1 oznacza normalne obramowanie.

Uwagi

Następnie zostanie ponownie utworzone i OnBorderStyleChanged wywołane okno sterowania.

COleControl::SetCapture

Powoduje, że okno kontenera kontrolki ma mieć przechwycenie myszy w imieniu kontrolki.

CWnd* SetCapture();

Wartość zwracana

Wskaźnik do CWnd obiektu okna, który wcześniej otrzymał dane wejściowe myszy.

Uwagi

Jeśli kontrolka jest aktywowana i bez okien, ta funkcja powoduje, że okno kontenera kontrolki ma mieć przechwycenie myszy w imieniu kontrolki. W przeciwnym razie ta funkcja powoduje, że sama kontrolka bierze udział w przechwytywaniu myszy (tak samo jak CWnd::SetCapture).

COleControl::SetControlSize

Ustawia rozmiar okna kontrolki OLE i powiadamia kontener o zmianie lokacji sterowania.

BOOL SetControlSize(int cx, int cy);

Parametry

Cx
Określa nową szerokość kontrolki w pikselach.

Cy
Określa nową wysokość kontrolki w pikselach.

Wartość zwracana

Nonzero, jeśli wywołanie zakończyło się pomyślnie; w przeciwnym razie 0.

Uwagi

Ta funkcja nie powinna być używana w konstruktorze kontrolki.

Należy pamiętać, że wszystkie współrzędne okien sterowania są względem lewego górnego rogu kontrolki.

COleControl::SetEnabled

Ustawia wartość właściwości Stock Enabled kontrolki.

void SetEnabled(BOOL bEnabled);

Parametry

bEnabled
WARTOŚĆ TRUE, jeśli kontrolka ma być włączona; w przeciwnym razie FAŁSZ.

Uwagi

Po ustawieniu tej właściwości OnEnabledChange jest wywoływana.

COleControl::SetFocus

Powoduje, że okno kontenera kontrolki ma mieć fokus danych wejściowych w imieniu kontrolki.

CWnd* SetFocus();

Wartość zwracana

Wskaźnik do CWnd obiektu okna, który wcześniej miał fokus wejściowy lub null, jeśli nie ma takiego okna.

Uwagi

Jeśli kontrolka jest aktywowana i bez okien, ta funkcja powoduje, że okno kontenera kontrolki będzie mieć fokus wejściowy w imieniu kontrolki. Fokus wejściowy kieruje dane wejściowe klawiatury do okna kontenera, a kontener wysyła wszystkie kolejne komunikaty klawiaturowe do obiektu OLE, który wywołuje SetFocusmetodę . Każde okno, które wcześniej miało fokus wejściowy, traci je.

Jeśli kontrolka nie jest bez okien, ta funkcja powoduje, że sama kontrolka będzie mieć fokus wejściowy (taki sam jak CWnd::SetFocus).

COleControl::SetFont

Ustawia właściwość czcionki akcji kontrolki.

void SetFont(LPFONTDISP pFontDisp);

Parametry

pFontDisp
Wskaźnik do interfejsu wysyłania czcionek.

COleControl::SetForeColor

Ustawia wartość właściwości stock ForeColor kontrolki.

void SetForeColor(OLE_COLOR dwForeColor);

Parametry

dwForeColor
Wartość OLE_COLOR do użycia na rysunku pierwszego planu kontrolki.

Uwagi

Aby uzyskać więcej informacji na temat używania tej właściwości i innych powiązanych właściwości, zobacz artykuł Kontrolki ActiveX: Właściwości.

COleControl::SetInitialDataFormats

Wywoływana przez platformę w celu zainicjowania listy formatów danych obsługiwanych przez kontrolkę.

virtual void SetInitialDataFormats();

Uwagi

Domyślna implementacja określa dwa formaty: CF_METAFILEPICT i trwały zestaw właściwości.

COleControl::SetInitialSize

Ustawia rozmiar kontrolki OLE po pierwszym wyświetleniu w kontenerze.

void SetInitialSize(
    int cx,
    int cy);

Parametry

Cx
Początkowa szerokość kontrolki OLE w pikselach.

Cy
Początkowa wysokość kontrolki OLE w pikselach.

Uwagi

Wywołaj tę funkcję w konstruktorze, aby ustawić początkowy rozmiar kontrolki. Początkowy rozmiar jest mierzony w jednostkach urządzenia lub pikselach. Zaleca się wykonanie tego wywołania w konstruktorze kontrolki.

COleControl::SetModifiedFlag

Zmienia zmodyfikowany stan kontrolki.

void SetModifiedFlag(BOOL bModified = TRUE);

Parametry

bModified
Nowa wartość zmodyfikowanej flagi kontrolki. Wartość TRUE wskazuje, że stan kontrolki został zmodyfikowany; FAŁSZ wskazuje, że stan kontrolki został właśnie zapisany.

Uwagi

Wywołaj tę funkcję za każdym razem, gdy wystąpi zmiana, która będzie miała wpływ na stan trwały kontrolki. Jeśli na przykład wartość właściwości trwałej ulegnie zmianie, wywołaj tę funkcję z wartością bModifiedTRUE.

COleControl::SetNotPermitted

Wskazuje, że żądanie edycji nie powiodło się.

void SetNotPermitted();

Uwagi

Wywołaj tę funkcję, gdy BoundPropertyRequestEdit zakończy się niepowodzeniem. Ta funkcja zgłasza wyjątek typu COleDispScodeException , aby wskazać, że operacja zestawu nie jest dozwolona.

COleControl::SetNotSupported

Uniemożliwia modyfikowanie wartości właściwości kontrolki przez użytkownika.

void SetNotSupported();

Uwagi

Wywołaj tę funkcję zamiast funkcji Set dowolnej właściwości, w której modyfikacja wartości właściwości przez użytkownika kontrolki nie jest obsługiwana. Przykładem może być właściwość tylko do odczytu.

COleControl::SetRectInContainer

Ustawia współrzędne prostokąta kontrolki względem kontenera wyrażone w jednostkach urządzeń.

BOOL SetRectInContainer(LPCRECT lpRect);

Parametry

Lprect
Wskaźnik do prostokąta zawierającego nowe współrzędne kontrolki względem kontenera.

Wartość zwracana

Nonzero, jeśli wywołanie zakończyło się pomyślnie; w przeciwnym razie 0.

Uwagi

Jeśli kontrolka jest otwarta, zostanie zmieniona jego rozmiar; w przeciwnym razie wywoływana jest funkcja kontenera OnPosRectChanged .

COleControl::SetText

Ustawia wartość właściwości Stock Caption lub Text kontrolki.

void SetText(LPCTSTR pszText);

Parametry

pszText
Wskaźnik do ciągu znaków.

Uwagi

Należy pamiętać, że właściwości stock Caption i Text są mapowane na tę samą wartość. Oznacza to, że wszelkie zmiany wprowadzone w obu właściwościach automatycznie zmienią obie właściwości. Ogólnie rzecz biorąc, kontrolka powinna obsługiwać właściwość Stock Caption lub Text, ale nie obie.

COleControl::ThrowError

Sygnalizuje wystąpienie błędu w kontrolce.

void ThrowError(
    SCODE sc,
    UINT nDescriptionID,
    UINT nHelpID = -1);

void ThrowError(
    SCODE sc,
    LPCTSTR pszDescription = NULL,
    UINT nHelpID = 0);

Parametry

Sc
Wartość kodu stanu do zgłoszenia. Aby uzyskać pełną listę możliwych kodów, zobacz artykuł Kontrolki ActiveX: Tematy zaawansowane.

nDescriptionID
Identyfikator zasobu ciągu wyjątku, który ma zostać zgłoszony.

nHelpID
Identyfikator pomocy tematu do zgłoszenia.

pszDescription
Ciąg zawierający wyjaśnienie wyjątku do zgłoszenia.

Uwagi

Ta funkcja powinna być wywoływana tylko z funkcji Get lub Set dla właściwości OLE lub implementacji metody automatyzacji OLE. Jeśli musisz zasygnalizować błędy występujące w innym czasie, należy uruchomić zdarzenie błędu zapasów.

COleControl::TransformCoords

Przekształca wartości współrzędnych między jednostkami HIMETRIC i jednostkami natywnymi kontenera.

void TransformCoords(
    POINTL* lpptlHimetric,
    POINTF* lpptfContainer,
    DWORD flags);

Parametry

lpptlHimetric
Wskaźnik do POINTL struktury zawierającej współrzędne w jednostkach HIMETRIC.

lpptfContainer
Wskaźnik do POINTF struktury zawierającej współrzędne w rozmiarze jednostki kontenera.

Flagi
Kombinacja następujących wartości:

  • XFORMCOORDS_POSITION pozycję w kontenerze.

  • XFORMCOORDS_SIZE rozmiar w kontenerze.

  • XFORMCOORDS_HIMETRICTOCONTAINER przekształć jednostki HIMETRIC w jednostki kontenera.

  • XFORMCOORDS_CONTAINERTOHIMETRIC Przekształć jednostki kontenera na jednostki HIMETRIC.

Uwagi

Dwie pierwsze flagi, XFORMCOORDS_POSITION i XFORMCOORDS_SIZE, wskazują, czy współrzędne powinny być traktowane jako położenie, czy rozmiar. Pozostałe dwie flagi wskazują kierunek transformacji.

COleControl::TranslateColor

Konwertuje wartość koloru z typu danych OLE_COLOR na typ danych COLORREF .

COLORREF TranslateColor(
    OLE_COLOR clrColor,
    HPALETTE hpal = NULL);

Parametry

clrColor
Typ danych OLE_COLOR. Aby uzyskać więcej informacji, zobacz funkcję Windows OleTranslateColor .

hpal
Uchwyt do opcjonalnej palety; może mieć wartość NULL.

Wartość zwracana

Wartość koloru RGB (czerwony, zielony, niebieski) 32-bitowa, która definiuje kolor stały najbliżej wartości clrColor , którą może reprezentować urządzenie.

Uwagi

Ta funkcja jest przydatna do tłumaczenia standardowych właściwości ForeColor i BackColor na typy COLORREF używane przez funkcje składowe CDC .

COleControl::WillAmbientsBeValidDuringLoad

Określa, czy kontrolka powinna używać wartości właściwości otoczenia jako wartości domyślnych, gdy zostanie następnie załadowana ze stanu trwałego.

BOOL WillAmbientsBeValidDuringLoad();

Wartość zwracana

Nonzero wskazuje, że właściwości otoczenia będą prawidłowe; w przeciwnym razie właściwości otoczenia nie będą prawidłowe.

Uwagi

W niektórych kontenerach kontrolka może nie mieć dostępu do jej właściwości otoczenia podczas początkowego wywołania przesłonięcia elementu COleControl::DoPropExchange. W takim przypadku kontener wywołuje metodę IPersistStreamInit::Load lub IPersistStorage::Load przed wywołaniem elementu IOleObject::SetClientSite (czyli jeśli nie jest on honorowy bit stanu OLEMISC_SETCLIENTSITEFIRST).

COleControl::WindowProc

Zawiera procedurę COleControl systemu Windows dla obiektu.

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parametry

message
Określa komunikat systemu Windows do przetworzenia.

Wparam
Udostępnia dodatkowe informacje używane podczas przetwarzania komunikatu. Wartość parametru zależy od komunikatu.

Lparam
Udostępnia dodatkowe informacje używane podczas przetwarzania komunikatu. Wartość parametru zależy od komunikatu.

Wartość zwracana

Zwracana wartość wysłanej wiadomości.

Uwagi

Wywołaj tę funkcję, aby wysyłać określone komunikaty za pomocą mapy komunikatów kontrolki.

Zobacz też

Przykład MFC CIRC3
Przykład MFC TESTHELP
Klasa COlePropertyPage
Klasa CWnd
Wykres hierarchii
Klasa CFontHolder
Klasa CPictureHolder