Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lagerhändelser skiljer sig från anpassade händelser eftersom de automatiskt utlöses av klassen COleControl.
COleControl innehåller fördefinierade medlemsfunktioner som utlöser händelser som uppkommer till följd av vanliga åtgärder. Några vanliga åtgärder som implementeras av COleControl inkluderar enkel- och dubbelklick på kontrollenheten, tangentbordshändelser och ändringar i musknapparnas tillstånd. Händelsemappningsposter för lagerhändelser föregås alltid av prefixet EVENT_STOCK.
Lagerhändelser som stöds av guiden Lägg till händelse
Klassen COleControl innehåller tio aktiehändelser, listade i följande tabell. Du kan ange de händelser som du vill använda i kontrollen med hjälp av guiden Lägg till händelse.
Aktiehändelser
| Evenemang | Avfyrningsfunktion | Kommentarer |
|---|---|---|
| Klicka | void FireClick( ) | Utlöses när kontrollen fångar musen och ett BUTTONUP-meddelande (vänster, mitten eller höger) tas emot och knappen släpps över kontrollen. Standardhändelserna MouseDown och MouseUp inträffar före den här händelsen. Post för händelsekarta: EVENT_STOCK_CLICK( ) |
| DblClick | void FireDblClick( ) | Liknar Click men utlöses när ett BUTTONDBLCLK-meddelande tas emot. Inmatning i händelsekartan: EVENT_STOCK_DBLCLICK( ) |
| Fel |
void FireError( SCODEscode, LPCSTRlpszDescription, UINTnHelpID= 0 ) |
Utlöses när ett fel inträffar inom Din ActiveX-kontroll utanför omfånget för ett metodanrop eller egenskapsåtkomst. Postering för händelsekarta: EVENT_STOCK_ERROREVENT( ) |
| KeyDown |
void FireKeyDown( kortnChar, kortnShiftState) |
Utlöses när ett WM_SYSKEYDOWN- eller WM_KEYDOWN-meddelande tas emot.Post för händelsekarta: EVENT_STOCK_KEYDOWN( ) |
| Knapptryckning |
void FireKeyPress( kort*pnChar) |
Utlöses när ett WM_CHAR meddelande tas emot.Inmatning för händelsekarta: EVENT_STOCK_KEYPRESS( ) |
| KeyUp |
void FireKeyUp( kortnChar, kortnShiftState) |
Utlöses när ett WM_SYSKEYUP- eller WM_KEYUP-meddelande tas emot.Entré för händelsekartläggning: EVENT_STOCK_KEYUP( ) |
| Nedtryckning av musknapp |
void FireMouseDown( kortnButton, kortnShiftState, floatx, floaty) |
Utlöses om någon BUTTONDOWN (vänster, mitten eller höger) tas emot. Musen fångas omedelbart innan den här händelsen utlöses. Post för händelsekarta: EVENT_STOCK_MOUSEDOWN( ) |
| MouseMove |
void FireMouseMove( kortnButton, kortnShiftState, floatx, floaty) |
Utlöses när ett WM_MOUSEMOVE meddelande tas emot. Inlägg för händelsekarta: EVENT_STOCK_MOUSEMOVE( ) |
| MouseUp |
void FireMouseUp( kortnButton, kortnShiftState, floatx, floaty) |
Utlöses om någon BUTTONUP (vänster, mitten eller höger) tas emot. Musfångst släpps innan den här händelsen utlöses. Post för händelsekarta: EVENT_STOCK_MOUSEUP( ) |
| ReadyStateChange | void FireReadyStateChange( ) | Utlöses när en kontroll övergår till nästa klara tillstånd på grund av mängden data som tas emot. Händelsekartpost: EVENT_STOCK_READYSTATECHANGE( ) |
Lägga till en lagerhändelse med hjälp av guiden Lägg till händelse
Att lägga till standardhändelser kräver mindre arbete än att lägga till anpassade händelser eftersom utlösandet av den faktiska händelsen hanteras automatiskt av basklassen COleControl. Följande procedur lägger till en lagerhändelse till en kontroll som har utvecklats med hjälp av MFC ActiveX-kontrollguiden. Händelsen, som kallas KeyPress, utlöses när en nyckel trycks ned och kontrollen är aktiv. Den här proceduren kan också användas för att lägga till andra lagerhändelser. Ersätt det valda lagerhändelsenamnet för KeyPress.
Så här lägger du till KeyPress standardhändelse med hjälp av guiden Lägg till Händelse
Läs in kontrollens projekt.
I Klassvy högerklickar du på din ActiveX-kontrollklass för att öppna snabbmenyn.
På snabbmenyn klickar du på Lägg till och sedan på Lägg till händelse.
Då öppnas guiden Lägg till händelse.
I listrutan Händelsenamn väljer du
KeyPress.Klicka på Finish.
Lägg till ändringar i händelseguiden för aktiehändelser
Eftersom lagerhändelser hanteras av kontrollens basklass ändrar guiden Lägg till händelse inte din klassdeklaration på något sätt. Den lägger till händelsen i kontrollens händelsekarta och gör en post i dess . IDL-fil. Följande rad läggs till i kontrollens händelsekarta, som finns i kontrollklassimplementeringen (. CPP)-fil:
EVENT_STOCK_KEYPRESS()
Om du lägger till den här koden utlöses en KeyPress-händelse när ett WM_CHAR meddelande tas emot och kontrollen är aktiv. KeyPress-händelsen kan utlöses vid andra tillfällen genom att anropa dess avfyrningsfunktion (till exempel FireKeyPress) inifrån kontrollkoden.
Guiden Lägg till händelse lägger till följande kodrad i kontrollens . IDL-fil:
[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
Den här raden associerar KeyPress-händelsen med dess standard-ID för sändning och gör att containern kan förutse KeyPress-händelsen.
Se även
MFC ActiveX-kontroller
MFC ActiveX-kontroller: Metoder
COleControl-klass