MFC – ovládací prvky ActiveX: Přidání uložených událostí do ovládacího prvku ActiveX
Uložené události se liší od vlastní události, jsou automaticky spalovat třídy COleControl.COleControlobsahuje předdefinované členské funkce, které požární události vyplývající z běžných akcí.Některé společné akce prováděné ve COleControl zahrnout jedno - a double - clicks na ovládací prvek, události klávesnice a změny stavu tlačítka myši.Položek mapování událostí pro uložené události jsou vždy uvedeny EVENT_STOCK předpony.
Zásobní události, které jsou podporovány Průvodce přidáním události
COleControl Třída poskytuje deset událostí zásob uvedené v následující tabulce.Můžete určit události v používání řízení Průvodce přidání události.
Uložené události
Událost |
Aktivaci funkce |
Komentáře |
---|---|---|
Klepněte na tlačítko |
void (FireClick) |
Aktivována, když je ovládací prvek zachytává všechny myši, BUTTONUP zpráva (vlevo, na střed nebo vpravo) a uvolní tlačítko nad ovládací prvek.Zásoby MouseDown a MouseUp události dochází před touto událostí. Načítání událostí: (EVENT_STOCK_CLICK) |
DblClick |
Zrušit (FireDblClick) |
Podobné klepnutím ale aktivována, pokud BUTTONDBLCLK zpráva je přijata. Načítání událostí: (EVENT_STOCK_DBLCLICK) |
Chyba |
void FireError( SCODE scode, LPCSTR lpszDescription, UINT nHelpID = 0 ) |
Aktivována, když dojde k chybě v rámci metody volání nebo vlastnost přístup do oboru ovládacího prvku technologie ActiveX. Načítání událostí: (EVENT_STOCK_ERROREVENT) |
KeyDown |
void FireKeyDown( short nChar, short nShiftState ) |
Aktivována, pokud WM_SYSKEYDOWN nebo WM_KEYDOWN zpráva je přijata. Načítání událostí: (EVENT_STOCK_KEYDOWN) |
Stisknutí klávesy |
Zrušit FireKeyPress (krátké *pnChar) |
Aktivována, pokud WM_CHAR zpráva je přijata. Načítání událostí: (EVENT_STOCK_KEYPRESS) |
KeyUp |
void FireKeyUp( short nChar, short nShiftState ) |
Aktivována, pokud WM_SYSKEYUP nebo WM_KEYUP zpráva je přijata. Načítání událostí: (EVENT_STOCK_KEYUP) |
MouseDown |
void FireMouseDown( short nButton, short nShiftState, float x, float y ) |
Pokud je aktivována BUTTONDOWN je přijat (doleva, na střed nebo vpravo).Myš je zachycen těsně před Tato událost je aktivována. Načítání událostí: (EVENT_STOCK_MOUSEDOWN) |
MouseMove |
void FireMouseMove( short nButton, short nShiftState, float x, float y ) |
Aktivována, pokud WM_MOUSEMOVE zpráva je přijata. Načítání událostí: (EVENT_STOCK_MOUSEMOVE) |
MouseUp |
void FireMouseUp( short nButton, short nShiftState, float x, float y ) |
Pokud je aktivována BUTTONUP je přijat (doleva, na střed nebo vpravo).Zachycení myši je vydán dříve, než tato událost je aktivována. Načítání událostí: (EVENT_STOCK_MOUSEUP) |
ReadyStateChange |
Zrušit (FireReadyStateChange) |
Aktivována, když ovládací prvek přechody do dalšího stavu připravenosti vzhledem k množství přijatých dat. Načítání událostí: (EVENT_STOCK_READYSTATECHANGE) |
Přidání událostí zásob pomocí Průvodce přidáním události
Přidání událostí zásob vyžaduje méně práce než přidání vlastních událostí, protože základní třída je automaticky zpracována pálení skutečné události COleControl.Následující procedura přidá ovládací prvek, který byl vyvinut pomocí uložená událost MFC ActiveX Control Wizard.Událost KeyPress, nazývá se vyvolá při stisknutí klávesy a je aktivní ovládací prvek.Tento postup lze také přidat další uložené události.Nahraďte název vybrané skladové události KeyPress.
Chcete-li přidat událost KeyPress zásob pomocí Průvodce přidání události
Načtěte projektu ovládacího prvku.
V zobrazení tříd klikněte pravým tlačítkem myši třídy ovládacího prvku ActiveX otevřete místní nabídku.
V místní nabídce klepněte na příkaz Přidat a potom klepněte na tlačítko Přidat událost.
Otevře se Průvodce přidání události.
V Název události rozevírací seznam, vyberte KeyPress.
Klepněte na tlačítko Dokončit.
Přidat událost změny Průvodce pro uložené události
Vzhledem k tomu, že uložené události jsou zpracovány pomocí základní třídy ovládacího prvku, Průvodce přidání události deklaraci vaší třídy nijak nemění.Přidá událost do mapy událost ovládacího prvku a vytvoří položku v jeho.Soubor IDL.Následující řádek je přidán do mapy událostí ovládacího prvku, umístěné v implementaci třídy ovládacího prvku (.Soubor CPP):
EVENT_STOCK_KEYPRESS()
Přidání tohoto kódu vyvolá událost KeyPress když WM_CHAR zpráva je přijata a je aktivní ovládací prvek.Může být aktivována událost KeyPress jindy voláním funkce jeho pálení (například FireKeyPress) z kódu ovládacího prvku.
Průvodce přidání události přidá následující řádek kódu do ovládacího prvku.Soubor IDL:
[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
Tento řádek se spojí s jeho odeslání standardní ID události KeyPress a umožňuje předvídat události KeyPress kontejneru.