Klasa COleControl
Zaawansowana klasa bazowa do tworzenia kontrolek OLE.
Składnia
class COleControl : public CWnd
Elementy członkowskie
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 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 CWnd
klasy , 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). COleControl
Implementacja 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
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 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
kodowanie
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
kodowanie
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, gdy kontrolka jest aktywna.
void FireKeyDown(
USHORT* pnChar,
short nShiftState);
Parametry
pnChar
Wskaźnik do wartości kodu klucza wirtualnego naciśnięcia. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h
nShiftState
Zawiera kombinację następujących flag:
SHIFT_MASK SHIFT został naciśnięty podczas akcji.
CTRL_MASK naciśnięcie CTRL podczas akcji.
ALT_MASK 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, 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.
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 OnKeyPressEvent
wartość .
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 SHIFT został naciśnięty podczas akcji.
CTRL_MASK naciśnięcie CTRL podczas akcji.
ALT_MASK 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 SHIFT został naciśnięty podczas akcji.
CTRL_MASK naciśnięcie CTRL podczas akcji.
ALT_MASK 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 SHIFT został naciśnięty podczas akcji.
CTRL_MASK naciśnięcie CTRL podczas akcji.
ALT_MASK 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 SHIFT został naciśnięty podczas akcji.
CTRL_MASK naciśnięcie CTRL podczas akcji.
ALT_MASK 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. COleControl
Implementacja 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 COleControl implementację 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 GetDC
obiektu 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 fontHolder
metrykach 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. Na 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.
rekwizyt
Obiekt CDataPathProperty implementuje właściwość kontrolki asynchronicznej.
COleControl::LockInPlaceActive
Zapobiega dezaktywowaniu kontrolki przez kontener.
BOOL LockInPlaceActive(BOOL bLock);
Parametry
blok
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 to:
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. Na 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::FreezeEvents
kontenera .
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
GetViewExtent
element .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 OnShowToolbars
element .
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 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. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h
nShiftState
Zawiera kombinację następujących flag:
SHIFT_MASK SHIFT został naciśnięty podczas akcji.
CTRL_MASK naciśnięcie CTRL podczas akcji.
ALT_MASK 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. 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. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h
nShiftState
Zawiera kombinację następujących flag:
SHIFT_MASK SHIFT został naciśnięty podczas akcji.
CTRL_MASK naciśnięcie CTRL podczas akcji.
ALT_MASK 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ł mnemonic kontrolki OLE.
virtual void OnMnemonic(LPMSG pMsg);
Parametry
PMsg
Wskaźnik do komunikatu systemu Windows wygenerowanego przez naciśnięcie 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 OnRenderGlobalData
wartość . Jeśli dane są w pliku lub mają zmienny rozmiar, przesłoń OnRenderFileData
wartość .
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 OnRenderData
wartość . Jeśli dane są w pliku lub mają zmienny rozmiar, przesłoń OnRenderFileData
wartość .
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 OnRenderData
wartość . Jeśli dane są w pliku lub mają zmienny rozmiar, przesłoń OnRenderFileData
wartość .
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::OnResetState
element . 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::OnResetState
element . 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
, SerializeStockProps
i, aby SerializeVersion
zastąpić COleControl::Serialize
element . 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
, SerializeExtent
i, aby SerializeVersion
zastąpić COleControl::Serialize
element . 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
, SerializeExtent
i, aby SerializeStockProps
zastąpić COleControl::Serialize
element . 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 SetFocus
metodę . 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ą bModified TRUE.
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