Formanty MFC ActiveX: dodawanie zdarzeń standardowych do formantu ActiveX
Czas zdarzenia różnią się od niestandardowych zdarzeń są one uruchamiane automatycznie przez klasę COleControl.COleControlzawiera funkcji wstępnie zdefiniowanych elementów członkowskich, które wyzwalają zdarzenia wynikające z typowych akcji.Niektóre wspólne działania realizowane przez COleControl zawierać jedno - i dwu - clicks na kontroli, zdarzenia klawiatury i zmiany w stanie przycisków myszy.Wpisy map zdarzeń dla zdarzeń zapasów są zawsze poprzedzone EVENT_STOCK prefiks.
Pień zdarzeń obsługiwanych przez zdarzenie Kreator dodawania
COleControl Klasy zawiera dziesięć zdarzeń pień, wymienione w poniższej tabeli.Można określić zdarzenia w za pomocą sterowania Kreatora dodawania zdarzenia.
Czas zdarzenia
Zdarzenie |
Funkcja wyzwalania |
Komentarze |
---|---|---|
Kliknij przycisk |
Unieważnij (FireClick) |
Po wywołaniu metody kontroli przechwytuje mysz, wszelkie BUTTONUP (lewy, środkowym lub prawym) wiadomość zostanie odebrana i zwolnieniu przycisku nad formantem.Czas MouseDown i MouseUp zdarzenia występują przed tego zdarzenia. Wpisu mapowania zdarzeń: (EVENT_STOCK_CLICK) |
DblClick |
Unieważnij (FireDblClick) |
Jest podobna do kliknięcia ale kiedy opalanych BUTTONDBLCLK wiadomość zostanie odebrana. Wpisu mapowania zdarzeń: (EVENT_STOCK_DBLCLICK) |
Błąd |
void FireError( SCODE scode, LPCSTR lpszDescription, UINT nHelpID = 0 ) |
Uruchamiany, gdy wystąpi błąd w formancie ActiveX, poza zakres dostępu właściwość lub wywołanie metody. Wpisu mapowania zdarzeń: (EVENT_STOCK_ERROREVENT) |
KeyDown |
void FireKeyDown( short nChar, short nShiftState ) |
Uruchamiany, gdy WM_SYSKEYDOWN lub WM_KEYDOWN wiadomość zostanie odebrana. Wpisu mapowania zdarzeń: (EVENT_STOCK_KEYDOWN) |
Naciśnięcie klawisza |
Unieważnij FireKeyPress (krótkie *pnChar) |
Uruchamiany, gdy WM_CHAR wiadomość zostanie odebrana. Wpisu mapowania zdarzeń: (EVENT_STOCK_KEYPRESS) |
KeyUp |
void FireKeyUp( short nChar, short nShiftState ) |
Uruchamiany, gdy WM_SYSKEYUP lub WM_KEYUP wiadomość zostanie odebrana. Wpisu mapowania zdarzeń: (EVENT_STOCK_KEYUP) |
MouseDown |
void FireMouseDown( short nButton, short nShiftState, float x, float y ) |
Uruchamiany, jeśli istnieje BUTTONDOWN (od lewej, środka lub do prawej) jest odbierane.Myszy są przechwytywane bezpośrednio przed to zdarzenie jest uruchamiany. Wpisu mapowania zdarzeń: (EVENT_STOCK_MOUSEDOWN) |
MouseMove |
void FireMouseMove( short nButton, short nShiftState, float x, float y ) |
Uruchamiany, gdy WM_MOUSEMOVE wiadomość zostanie odebrana. Wpisu mapowania zdarzeń: (EVENT_STOCK_MOUSEMOVE) |
MouseUp |
void FireMouseUp( short nButton, short nShiftState, float x, float y ) |
Uruchamiany, jeśli istnieje BUTTONUP (od lewej, środka lub do prawej) jest odbierane.Przechwytywanie myszy zostanie zwolniony przez to zdarzenie. Wpisu mapowania zdarzeń: (EVENT_STOCK_MOUSEUP) |
ReadyStateChange |
Unieważnij (FireReadyStateChange) |
Uruchamiany podczas przejścia kontroli do następnego stanu gotowości ze względu na ilość otrzymanych danych. Wpisu mapowania zdarzeń: (EVENT_STOCK_READYSTATECHANGE) |
Dodawanie wydarzenia przy użyciu zdarzenia Kreator dodawania
Dodawanie zdarzeń podstawowego wymaga mniej pracy niż dodawanie niestandardowych zdarzeń, ponieważ wypalania faktyczną zdarzenia jest automatycznie obsługiwany przez klasy bazowej, COleControl.Poniższa procedura dodaje pień zdarzenie do formantu, który został utworzony przy użyciu Kreatora formantów ActiveX MFC.Zdarzenie KeyPress, o nazwie pożarów, gdy zostanie naciśnięty klawisz i kontrola jest aktywna.Tę procedurę można również dodawać inne zdarzenia zapasów.Podstawić nazwę wybranego zapasu zdarzenia KeyPress.
Aby dodać zdarzenie KeyPress podstawowego za pomocą Kreatora dodawania zdarzeń
Załaduj projekt z kontroli.
W widoku klasy kliknij prawym przyciskiem myszy klasy formantu ActiveX Aby otworzyć menu skrótów.
W menu skrótów kliknij polecenie Dodaj i kliknij przycisk Dodać zdarzenie.
Spowoduje to otwarcie Kreatora dodawania zdarzeń.
W Nazwa zdarzenia listy rozwijanej wybierz KeyPress.
Kliknij Zakończ.
Dodać zmiany Kreator zdarzeń dla zdarzeń zapasów
Ponieważ czas zdarzenia są obsługiwane przez klasy podstawowej formantu, Kreatora dodawania zdarzeń nie powoduje zmiany swojej deklaracji klasy w jakikolwiek sposób.Dodanie zdarzeń do formantu zdarzenie mapy i sprawia, że wpis w jego.Plik IDL.Następujący wiersz jest dodawany do formantu zdarzenie mapę, znajdujące się w implementacji klasy formantu (.Plik CPP):
EVENT_STOCK_KEYPRESS()
Dodanie tego kodu wyzwala zdarzenia KeyPress po WM_CHAR wiadomość zostanie odebrana i kontrola jest aktywna.Zdarzenie KeyPress może być uruchamiany w innym czasie przez wywołanie funkcji jego wypalania (na przykład FireKeyPress) z kodem kontroli.
Kreator dodawania zdarzeń dodaje następujący wiersz kodu do formantu.Plik IDL:
[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
Ten wiersz kojarzy z jego wysyłki standardowy identyfikator zdarzenia KeyPress i pozwala kontenera do przewidzenia zdarzenie KeyPress.