Share via


Controlli ActiveX MFC: aggiunta di eventi predefiniti a un controllo ActiveX

Gli eventi azionari differiscono dagli eventi personalizzati in quanto vengono generati automaticamente dalla classe COleControl. COleControl contiene funzioni membro predefinite che generano eventi risultanti da azioni comuni. Alcune azioni comuni implementate da COleControl includono i singoli clic e i doppio clic sul controllo, gli eventi della tastiera e le modifiche nello stato dei pulsanti del mouse. Le voci della mappa eventi per gli eventi azionari sono sempre precedute dal prefisso EVENT_STOCK.

Eventi azionari supportati dall'Aggiunta guidata eventi

La COleControl classe fornisce dieci eventi azionari, elencati nella tabella seguente. È possibile specificare gli eventi desiderati nel controllo usando l'Aggiunta guidata evento.

Eventi azionari

Evento Funzione di attivazione Commenti
Clic void FireClick( ) Generato quando il controllo acquisisce il mouse, viene ricevuto qualsiasi messaggio BUTTONUP (sinistro, centrale o destro) e il pulsante viene rilasciato sul controllo. Gli eventi MouseDown e MouseUp azionari si verificano prima di questo evento.

Voce mappa eventi: EVENT_STOCK_CLICK( )
Dblclick void FireDblClick( ) Simile a Click ma generato quando viene ricevuto un messaggio BUTTONDBLCLK .

Voce della mappa eventi: EVENT_STOCK_DBLCLICK( )
Errore void FireError( SCODEscode, LPCSTRlpszDescription, UINTnHelpID= 0 ) Generato quando si verifica un errore all'interno del controllo ActiveX all'esterno dell'ambito di una chiamata al metodo o all'accesso alle proprietà.

Voce della mappa eventi: EVENT_STOCK_ERROREVENT( )
KeyDown void FireKeyDown( shortnChar, shortnShiftState) Generato quando viene ricevuto un WM_SYSKEYDOWN messaggio o WM_KEYDOWN .

Voce mappa eventi: EVENT_STOCK_KEYDOWN( )
KeyPress void FireKeyPress( short*pnChar) Generato quando viene ricevuto un WM_CHAR messaggio.

Voce della mappa eventi: EVENT_STOCK_KEYPRESS( )
KeyUp void FireKeyUp( shortnChar, shortnShiftState) Generato quando viene ricevuto un WM_SYSKEYUP messaggio o WM_KEYUP .

Voce della mappa eventi: EVENT_STOCK_KEYUP( )
Mousedown void FireMouseDown( short, shortnButtonnShiftState, floatx, floaty) Generato se viene ricevuto un pulsante BUTTONDOWN (sinistro, centrale o destro). Il mouse viene acquisito immediatamente prima che questo evento venga generato.

Voce della mappa eventi: EVENT_STOCK_MOUedizione Standard DOWN( )
Mousemove void FireMouseMove( short, shortnButtonnShiftState, floatx, floaty) Generato quando viene ricevuto un messaggio WM_MOUedizione Standard MOVE.

Voce della mappa eventi: EVENT_STOCK_MOUedizione Standard MOVE( )
Mouseup void FireMouseUp( short, shortnButtonnShiftState, floatx, floaty) Generato se viene ricevuto un buttonUP (sinistro, centrale o destro). L'acquisizione del mouse viene rilasciata prima che venga generato questo evento.

Voce della mappa eventi: EVENT_STOCK_MOUedizione Standard UP( )
ReadyStateChange void FireReadyStateChange( ) Generato quando un controllo passa allo stato pronto successivo a causa della quantità di dati ricevuti.

Voce della mappa eventi: EVENT_STOCK_READYSTATECHANGE( )

Aggiunta di un evento azionario tramite l'Aggiunta guidata evento

L'aggiunta di eventi azionari richiede meno lavoro rispetto all'aggiunta di eventi personalizzati perché la generazione dell'evento effettivo viene gestita automaticamente dalla classe base , COleControl. La procedura seguente aggiunge un evento azionario a un controllo sviluppato tramite la Creazione guidata controllo ActiveX MFC. L'evento, denominato KeyPress, viene attivato quando viene premuto un tasto e il controllo è attivo. Questa procedura può essere usata anche per aggiungere altri eventi azionari. Sostituire il nome dell'evento azionario selezionato per KeyPress.

Per aggiungere l'evento di stock KeyPress tramite l'Aggiunta guidata evento

  1. Caricare il progetto del controllo.

  2. In Visualizzazione classi fare clic con il pulsante destro del mouse sulla classe di controllo ActiveX per aprire il menu di scelta rapida.

  3. Scegliere Aggiungi dal menu di scelta rapida e quindi fare clic su Aggiungi evento.

    Verrà visualizzata l'Aggiunta guidata evento.

  4. Nell'elenco a discesa Nome evento selezionare KeyPress.

  5. Fare clic su Fine.

Aggiungere modifiche alla Creazione guidata eventi per gli eventi azionari

Poiché gli eventi azionari vengono gestiti dalla classe di base del controllo, l'Aggiunta guidata evento non modifica in alcun modo la dichiarazione di classe. Aggiunge l'evento alla mappa eventi del controllo e crea una voce nel relativo oggetto . File IDL. La riga seguente viene aggiunta alla mappa eventi del controllo, che si trova nell'implementazione della classe di controllo (. File CPP):

EVENT_STOCK_KEYPRESS()

L'aggiunta di questo codice attiva un evento KeyPress quando viene ricevuto un messaggio di WM_CHAR e il controllo è attivo. L'evento KeyPress può essere generato in altri momenti chiamando la relativa funzione di attivazione ( ad esempio , FireKeyPress) dall'interno del codice di controllo.

L'Aggiunta guidata eventi aggiunge la riga di codice seguente all'oggetto del controllo . File IDL:

[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);

Questa riga associa l'evento KeyPress al relativo ID di invio standard e consente al contenitore di anticipare l'evento KeyPress.

Vedi anche

Controlli ActiveX MFC
Controlli ActiveX MFC: metodi
Classe COleControl