Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zdarzenia magazynowe różnią się od zdarzeń niestandardowych, które są automatycznie wyzwalane przez klasę COleControl.
COleControl
zawiera wstępnie zdefiniowane funkcje składowe, które wywołują zdarzenia będące wynikiem typowych działań. Niektóre typowe akcje zaimplementowane przez COleControl
obejmują pojedyncze i dwukrotne kliknięcia na kontrolce, zdarzenia klawiatury i zmiany stanu przycisków myszy. Wpisy mapy zdarzeń dla zdarzeń zapasów są zawsze poprzedzone prefiksem EVENT_STOCK.
Zdarzenia giełdowe obsługiwane przez kreator dodawania zdarzeń
Klasa COleControl
zapewnia dziesięć wbudowanych zdarzeń, wymienionych w poniższej tabeli. Zdarzenia, które chcesz określić w kontrolce, można określić za pomocą Kreatora dodawania zdarzeń.
Zdarzenia giełdowe
Zdarzenie | Funkcja uruchamiania | Komentarze |
---|---|---|
Kliknij | void FireClick( ) | Wyzwolony, gdy kontrolka przechwytuje mysz, zostanie odebrany dowolny komunikat BUTTONUP (lewy, środkowy lub prawy), a przycisk zostanie zwolniony za pomocą kontrolki. Zdarzenia MouseDown i MouseUp występują przed tym zdarzeniem. Wpis mapy zdarzeń: EVENT_STOCK_CLICK( ) |
DblClick | void FireDblClick( ) | Podobnie jak Click, ale uruchamiany, gdy otrzymany zostanie komunikat BUTTONDBLCLK. Wpis mapy zdarzeń: EVENT_STOCK_DBLCLICK( ) |
Błąd |
void FireError( SCODEscode, LPCSTRlpszDescription , UINTnHelpID = 0 ) |
Jest wyzwalany, kiedy w kontrolce ActiveX wystąpi błąd poza zakresem wywołania metody lub dostępu do właściwości. Wpis mapy zdarzeń: EVENT_STOCK_ERROREVENT( ) |
KeyDown |
void FireKeyDown( krótkinChar , krótkinShiftState ) |
Uruchamiany, gdy odebrany jest komunikat WM_SYSKEYDOWN lub WM_KEYDOWN .Wpis mapy zdarzeń: EVENT_STOCK_KEYDOWN( ) |
Keypress |
void FireKeyPress( krótki*pnChar ) |
Wyzwolony po odebraniu komunikatu WM_CHAR .Wpis mapy zdarzeń: EVENT_STOCK_KEYPRESS( ) |
Klucz |
void FireKeyUp( krótkinChar , krótkinShiftState ) |
Uruchamiany, gdy odebrany jest komunikat WM_SYSKEYUP lub WM_KEYUP .Wpis mapy zdarzeń: EVENT_STOCK_KEYUP( ) |
MouseDown |
void FireMouseDown( krótkinButton , krótkinShiftState , zmiennoprzecinkowyx, floaty) |
Wyzwalane, jeśli zostanie odebrany dowolny BUTTONDOWN (lewy, środkowy lub prawy). Mysz jest przechwytywana bezpośrednio przed wyzwoleniem tego zdarzenia. Wpis do mapy zdarzeń: EVENT_STOCK_MOUSEDOWN( ) |
RuchMyszy |
void FireMouseMove( krótkinButton , krótkinShiftState , floatx, floaty) |
Wyzwolony po odebraniu komunikatu WM_MOUSEMOVE. Wpis mapy zdarzeń: EVENT_STOCK_MOUSEMOVE( ) |
Mysz |
void FireMouseUp( krótkinButton , krótkinShiftState , floatx, floaty) |
Zostanie wyzwolony, jeśli zostanie odebrany dowolny przycisk BUTTONUP (lewy, środkowy lub prawy). Przechwytywanie myszy zostaje zwolnione przed wywołaniem tego zdarzenia. Wpis mapy zdarzeń: EVENT_STOCK_MOUSEUP( ) |
ReadyStateChange | void FireReadyStateChange( ) | Wyzwolony po przejściu kontrolki do następnego stanu gotowości ze względu na ilość odebranych danych. Wpis mapy zdarzeń: EVENT_STOCK_READYSTATECHANGE( ) |
Dodawanie zdarzenia stockowego przy użyciu Kreatora dodawania zdarzeń
Dodawanie zdarzeń zasobów wymaga mniejszego nakładu pracy niż dodawanie zdarzeń niestandardowych, ponieważ wyzwalanie rzeczywistego zdarzenia obsługuje automatycznie klasa bazowaCOleControl
. Poniższa procedura dodaje zdarzenie giełdowe do kontrolki, która została opracowana przy użyciu Kreatora kontrolek ActiveX MFC. Zdarzenie o nazwie KeyPress jest wywoływane, gdy klawisz jest naciśnięty i kontrolka jest aktywna. Ta procedura może również służyć do dodawania innych zdarzeń giełdowych. Zastąp wybraną nazwę zdarzenia standardowego na KeyPress.
Aby dodać zdarzenie stockowe KeyPress za pomocą Kreatora dodawania zdarzeń
Załaduj projekt kontrolki.
W widoku klasy kliknij prawym przyciskiem myszy klasę kontrolki ActiveX, aby otworzyć menu skrótów.
W menu skrótów kliknij pozycję Dodaj , a następnie kliknij pozycję Dodaj zdarzenie.
Spowoduje to otwarcie Kreatora dodawania zdarzeń.
Z listy rozwijanej Nazwa zdarzenia wybierz pozycję
KeyPress
.Kliknij przycisk Finish (Zakończ).
Dodawanie zmian Kreatora zdarzeń dla zdarzeń giełdowych
Ponieważ zdarzenia zapasów są obsługiwane przez klasę bazową kontrolki, Kreator dodawania zdarzeń nie zmienia deklaracji klasy w żaden sposób. Dodaje zdarzenie do mapy zdarzeń kontrolki i tworzy wpis w pliku .IDL. Poniższy wiersz jest dodawany do mapy zdarzeń kontrolki, znajdującej się w implementacji klasy kontrolki (plik .CPP):
EVENT_STOCK_KEYPRESS()
Dodanie tego kodu powoduje wyzwolenie zdarzenia KeyPress po odebraniu komunikatu WM_CHAR, gdy kontrolka jest aktywna. Zdarzenie KeyPress można uruchamiać w innym czasie, wywołując funkcję wywołującą (na przykład FireKeyPress
) z poziomu kodu sterującego.
Kreator dodawania zdarzeń dodaje następujący wiersz kodu do pliku .IDL kontrolki:
[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
Ten wiersz kojarzy zdarzenie KeyPress ze standardowym identyfikatorem wysyłania i umożliwia kontenerowi przewidywanie zdarzenia KeyPress.
Zobacz także
Kontrolki ActiveX MFC
Kontrolki ActiveX MFC: metody
Klasa COleControl