MFC – ovládací prvky ActiveX: Přidání uložených událostí do ovládacího prvku ActiveX
Události akcií se liší od vlastních událostí v tom, že se automaticky aktivují podle třídy COleControl. COleControl
obsahuje předdefinované členské funkce, které aktivovaly události vyplývající z běžných akcí. Mezi běžné akce implementované COleControl
patří jednoklikání na ovládací prvek, události klávesnice a změny stavu tlačítek myši. Položky mapy událostí pro události akcií jsou vždy předponou EVENT_STOCK.
Stock Events Supported by the Add Event Wizard
Třída COleControl
poskytuje deset akciových událostí uvedených v následující tabulce. Události, které chcete mít v ovládacím prvku, můžete zadat pomocí Průvodce přidáním události.
Skladové události
Událost | Funkce aktivace | Komentáře |
---|---|---|
Klikněte na | void FireClick( ) | Aktivuje se, když ovládací prvek zachytí myš, přijme se jakákoli zpráva BUTTONUP (vlevo, uprostřed nebo vpravo) a tlačítko se uvolní přes ovládací prvek. Stock MouseDown a MouseUp události se vyskytují před touto událostí. Položka mapy události: EVENT_STOCK_CLICK( ) |
DblClick | void FireDblClick( ) | Podobá se kliknutí, ale aktivuje se při přijetí zprávy BUTTONDBLCLK . Položka mapy události: EVENT_STOCK_DBLCLICK( ) |
Chyba | void FireError( SCODE scode; LPCSTRlpszDescription ; UINTnHelpID = 0 ) |
Aktivuje se, když dojde k chybě v rámci ovládacího prvku technologie ActiveX mimo rozsah přístupu k volání metody nebo vlastnosti. Položka mapy události: EVENT_STOCK_ERROREVENT( ) |
Keydown | void FireKeyDown( krátkýnChar ; krátkýnShiftState ) |
Aktivuje se při WM_SYSKEYDOWN přijetí zprávy nebo WM_KEYDOWN zprávy.Položka mapy událostí: EVENT_STOCK_KEYDOWN( ) |
Keypress | void FireKeyPress( krátký*pnChar ) |
Aktivuje se při WM_CHAR přijetí zprávy.Položka mapy událostí: EVENT_STOCK_KEYPRESS( ) |
Keyup | void FireKeyUp( shortnChar ; shortnShiftState ) |
Aktivuje se při WM_SYSKEYUP přijetí zprávy nebo WM_KEYUP zprávy.Položka mapy událostí: EVENT_STOCK_KEYUP( ) |
Mousedown | void FireMouseDown( krátkýnButton , krátkýnShiftState , floatx, floaty) |
Aktivuje se, pokud je přijata nějaká funkce BUTTONDOWN (vlevo, uprostřed nebo vpravo). Myš je zachycena bezprostředně před spuštěním této události. Položka mapy událostí: EVENT_STOCK_MOUSEDOWN( ) |
Mousemove | void FireMouseMove( krátkýnButton , krátkýnShiftState , floatx, floaty) |
Aktivuje se při přijetí WM_MOUSEMOVE zprávy. Položka mapy událostí: EVENT_STOCK_MOUSEMOVE( ) |
Mouseup | void FireMouseUp( krátkýnButton , krátkýnShiftState , floatx, floaty) |
Aktivuje se, pokud je přijato tlačítko BUTTONUP (vlevo, uprostřed nebo vpravo). Zachycení myši se uvolní před spuštěním této události. Položka mapy události: EVENT_STOCK_MOUSEUP( ) |
ReadyStateChange | void FireReadyStateChange( ) | Aktivuje se při přechodu ovládacího prvku do dalšího připraveného stavu kvůli množství přijatých dat. Položka mapy událostí: EVENT_STOCK_READYSTATECHANGE( ) |
Přidání burzovní události pomocí Průvodce přidáním události
Přidání akciových událostí vyžaduje méně práce než přidání vlastních událostí, protože aktivace skutečné události je zpracována automaticky základní třídou, COleControl
. Následující postup přidá skladovou událost do ovládacího prvku, který byl vyvinut pomocí mfc technologie ActiveX Průvodce ovládacími prvky. Událost s názvem KeyPress se aktivuje při stisknutí klávesy a ovládací prvek je aktivní. Tento postup lze také použít k přidání dalších akciových událostí. Nahraďte název vybrané akciové události pro KeyPress.
Přidání akciové události KeyPress pomocí Průvodce přidáním události
Načtěte projekt ovládacího prvku.
V zobrazení třídy klikněte pravým tlačítkem myši na technologie ActiveX řídicí třídu a otevřete místní nabídku.
V místní nabídce klepněte na tlačítko Přidat a potom klepněte na tlačítko Přidat událost.
Tím se otevře Průvodce přidáním události.
V rozevíracím seznamu Název události vyberte
KeyPress
.Klikněte na Finish (Dokončit).
Přidání změn Průvodce událostmi pro události akcií
Vzhledem k tomu, že události akcií zpracovává základní třída ovládacího prvku, Průvodce přidáním události nijak nezmění deklaraci třídy. Přidá událost do mapy událostí ovládacího prvku a vytvoří položku v jeho objektu . IDL soubor. Následující řádek se přidá do mapy událostí ovládacího prvku, který se nachází v implementaci třídy ovládacího prvku (. CPP) soubor:
EVENT_STOCK_KEYPRESS()
Přidání tohoto kódu aktivuje událost KeyPress při přijetí WM_CHAR zprávy a ovládací prvek je aktivní. Událost KeyPress je možné aktivovat jindy voláním funkce spuštění (například FireKeyPress
) z řídicího kódu.
Průvodce přidáním události přidá následující řádek kódu do ovládacího prvku . IDL soubor:
[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
Tento řádek přidruží událost KeyPress ke svému standardnímu ID odeslání a umožní kontejneru předvídat událost KeyPress.
Viz také
MFC – ovládací prvky ActiveX
MFC – ovládací prvky ActiveX: Metody
COleControl – třída