Formanty ActiveX MFC: Dodawanie zdarzeń zapasów do formantu ActiveX
Zdarzenia zapasów różnią się od niestandardowych zdarzeń, automatycznie są one wywoływane przez klasę COleControl.COleControlzawiera Członkowskie wstępnie zdefiniowane funkcje, które fire zdarzenia wynikające z wspólnych działań.Niektóre wspólne działania realizowane przez COleControl obejmują single - i double - clicks kontroli, zdarzenia klawiatury i zmiany w stanie przycisków myszy.Wpisy map zdarzeń dla zdarzeń zapasów są zawsze poprzedzone EVENT_STOCK prefiksu.
Podstawowy zdarzeń obsługiwanych przez zdarzenie Kreatora dodawania
COleControl Klasy udostępnia dziesięć zdarzeń zapasów, wymienione w poniższej tabeli.Można określić zdarzenia w sieci przy użyciu formantu Kreatora dodawania zdarzenia.
Zdarzenia zapasów
Zdarzenie |
Funkcja opalanych |
Komentarze |
---|---|---|
Kliknij przycisk |
void FireClick) |
Po kontroli przechwytuje myszy, w każdym BUTTONUP (lewym, środkowym lub prawym) wiadomość zostanie odebrana i zwolnieniu przycisku nad formantem.Zapasów MouseDown i MouseUp zdarzenia występują przed tym zdarzeniem. Zdarzenie wpisu mapy: (EVENT_STOCK_CLICK) |
DblClick |
void FireDblClick) |
Podobnie kliknij ale kiedy opalanych BUTTONDBLCLK odebrana wiadomość. Zdarzenie wpisu mapy: (EVENT_STOCK_DBLCLICK) |
Błąd |
void FireError( SCODE scode, LPCSTR lpszDescription, UINT nHelpID = 0 ) |
Uruchamiany po wystąpieniu błędu w do zakresu metody wywołania lub dostępu do właściwości formantu ActiveX. Zdarzenie wpisu mapy: (EVENT_STOCK_ERROREVENT) |
KeyDown |
void FireKeyDown( short nChar, short nShiftState ) |
Uruchamiany, gdy WM_SYSKEYDOWN lub WM_KEYDOWN odebrana wiadomość. Zdarzenie wpisu mapy: (EVENT_STOCK_KEYDOWN) |
KeyPress |
void FireKeyPress (short *pnChar) |
Uruchamiany, gdy WM_CHAR odebrana wiadomość. Zdarzenie wpisu mapy: (EVENT_STOCK_KEYPRESS) |
KeyUp |
void FireKeyUp( short nChar, short nShiftState ) |
Uruchamiany, gdy WM_SYSKEYUP lub WM_KEYUP odebrana wiadomość. Zdarzenie wpisu mapy: (EVENT_STOCK_KEYUP) |
MouseDown |
void FireMouseDown( short nButton, short nShiftState, float x, float y ) |
Uruchamiany, jeśli BUTTONDOWN otrzymaniu (po lewej stronie, środka lub do prawej).Mysz jest przechwycona, to zdarzenie jest wywoływane przed. Zdarzenie wpisu mapy: (EVENT_STOCK_MOUSEDOWN) |
MouseMove |
void FireMouseMove( short nButton, short nShiftState, float x, float y ) |
Uruchamiany, gdy WM_MOUSEMOVE odebrana wiadomość. Zdarzenie wpisu mapy: (EVENT_STOCK_MOUSEMOVE) |
MouseUp |
void FireMouseUp( short nButton, short nShiftState, float x, float y ) |
Uruchamiany, jeśli BUTTONUP otrzymaniu (po lewej stronie, środka lub do prawej).Przechwytywanie myszy zostanie wydany przed to zdarzenie jest wywoływane. Zdarzenie wpisu mapy: (EVENT_STOCK_MOUSEUP) |
ReadyStateChange |
void FireReadyStateChange) |
Uruchamiany podczas przejścia kontroli do następnego stanu Gotowe, ze względu na ilość odebranych danych. Zdarzenie wpisu mapy: (EVENT_STOCK_READYSTATECHANGE) |
Dodawanie zdarzeń zapasów przy użyciu zdarzenia Kreatora dodawania
Dodawanie zdarzeń zapasów wymaga mniej pracy niż dodanie niestandardowych zdarzeń, ponieważ wypalania rzeczywiste zdarzenia jest obsługiwane automatycznie przez klasy bazowej COleControl.Poniższa procedura dodaje zapasów zdarzeń do formantu, który został utworzony przy użyciu Kreatora formantów ActiveX MFC.Zdarzenie KeyPress, nazywany jest wyzwalany po wciśnięciu i kontroli jest aktywny.Tę procedurę można również dodać inne zdarzenia zapasów.Podstaw nazwę wybranych zapasów zdarzenia KeyPress.
Aby dodać zdarzenie KeyPress zapasów przy użyciu Kreatora dodawania zdarzeń
Załadować projekt programu 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.
Zostanie otwarty Kreator dodawania zdarzeń.
W Nazwy zdarzenia listy rozwijanej wybierz KeyPress.
Kliknij Zakończ.
Dodać zmian kreatora zdarzeń dla zdarzeń zapasów
Ponieważ zdarzenia zapasów są obsługiwane przez klasy podstawowej do formantu, Kreatora dodawania zdarzeń nie zmienia swoje deklaracji klasy w jakikolwiek sposób.Dodanie zdarzenia do formantu zdarzenie mapy i tworzy zapis w jej.Plik IDL.Do formantu zdarzenie mapy, znajdujące się w implementacji klasy kontroli dodaje się następujący wiersz (.Plik CPP):
EVENT_STOCK_KEYPRESS()
Ten kod uruchamia zdarzenie KeyPress po WM_CHAR odebrana wiadomość i kontroli jest aktywny.Zdarzenie KeyPress może opalane w innych terminach, wywołując funkcję 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 zdarzenie KeyPress z jego identyfikator wysyłki standardowych i umożliwia kontenera do przewidzenia zdarzenia KeyPress.