Kontrolki ActiveX MFC: dodawanie zdarzeń standardowych do kontrolki ActiveX
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 wyzwalają zdarzenia wynikające z typowych akcji. Niektóre typowe akcje zaimplementowane przez COleControl
funkcję obejmują pojedyncze i dwukrotne kliknięcie kontrolki, zdarzeń klawiatury i zmian stanu przycisków myszy. Wpisy mapy zdarzeń dla zdarzeń zapasów są zawsze poprzedzone prefiksem EVENT_STOCK.
Zdarzenia magazynowe obsługiwane przez Kreatora dodawania zdarzeń
Klasa COleControl
zawiera dziesięć zdarzeń zapasów 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
Wydarzenie | Funkcja wypalania | Komentarze |
---|---|---|
Kliknij przycisk | void FireClick( ) | Wyzwolony, gdy kontrolka przechwytuje mysz, zostanie odebrany dowolny komunikat BUTTONUP (lewy, środkowy lub prawy), a przycisk zostanie zwolniony za pomocą kontrolki. Akcje zdarzenia MouseDown i MouseUp występują przed tym zdarzeniem. Wpis mapy zdarzeń: EVENT_STOCK_CLICK( ) |
DblClick | void FireDblClick( ) | Podobnie jak w przypadku odebrania komunikatu BUTTONDBLCLK . Wpis mapy zdarzeń: EVENT_STOCK_DBLCLICK( ) |
Błąd | void FireError( SCODEscode, LPCSTRlpszDescription , UINTnHelpID = 0 ) |
Wyzwolony, gdy wystąpi błąd w kontrolce ActiveX 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 ) |
Wyzwolony po odebraniu komunikatu 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( ) |
Keyup | void FireKeyUp( krótkinChar , krótkinShiftState ) |
Wyzwolony po odebraniu komunikatu WM_SYSKEYUP lub WM_KEYUP .Wpis mapy zdarzeń: EVENT_STOCK_KEYUP( ) |
Mousedown | void FireMouseDown( krótkinButton , krótkinShiftState , zmiennoprzecinkowy x, floaty) |
Zostanie wyzwolony, jeśli zostanie odebrany dowolny przycisk BUTTONDOWN (lewy, środkowy lub prawy). Mysz jest przechwytywana bezpośrednio przed wyzwoleniem tego zdarzenia. Wpis mapy zdarzeń: EVENT_STOCK_MOUSEDOWN( ) |
Mousemove | void FireMouseMove( krótkinButton , krótkinShiftState , float x, floaty) |
Wyzwolony po odebraniu komunikatu WM_MOUSEMOVE. Wpis mapy zdarzeń: EVENT_STOCK_MOUSEMOVE( ) |
Mouseup | void FireMouseUp( krótkinButton , krótkinShiftState , float x, floaty) |
Zostanie wyzwolony, jeśli zostanie odebrany dowolny przycisk BUTTONUP (lewy, środkowy lub prawy). Przechwytywanie myszy jest zwalniane przed wyzwoleniem 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ń
Dodanie zdarzeń magazynowych wymaga mniejszej ilości pracy niż dodanie zdarzeń niestandardowych, ponieważ wyzwalanie rzeczywistego zdarzenia jest obsługiwane automatycznie przez klasę bazową . COleControl
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 uruchamiane po naciśnięciu klawisza, a kontrolka jest aktywna. Ta procedura może również służyć do dodawania innych zdarzeń giełdowych. Zastąp wybraną nazwę zdarzenia stockowego dla platformy 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 . Plik IDL. Następujący wiersz jest dodawany do mapy zdarzeń kontrolki znajdującej się w implementacji klasy sterowania (. Plik CPP):
EVENT_STOCK_KEYPRESS()
Dodanie tego kodu powoduje wyzwolenie zdarzenia KeyPress po odebraniu komunikatu WM_CHAR, a kontrolka jest aktywna. Zdarzenie KeyPress można uruchamiać w innym czasie, wywołując funkcję wypalania (na przykład FireKeyPress
) z poziomu kodu sterującego.
Kreator dodawania zdarzeń dodaje następujący wiersz kodu do kontrolki . Plik IDL:
[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 też
Kontrolki ActiveX MFC
Kontrolki ActiveX MFC: metody
Klasa COleControl