Sdílet prostřednictvím


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

  1. Načtěte projekt ovládacího prvku.

  2. 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.

  3. 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.

  4. V rozevíracím seznamu Název události vyberte KeyPress.

  5. 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