Controlli ActiveX MFC: eventi

I controlli ActiveX usano eventi per notificare a un contenitore che si è verificato un evento al controllo. Esempi comuni di eventi includono i clic sul controllo, i dati immessi usando la tastiera e le modifiche nello stato del controllo. Quando si verificano queste azioni, il controllo genera un evento per avvisare il contenitore.

Gli eventi sono detti anche messaggi.

MFC supporta due tipi di eventi: stock e custom. Gli eventi azionari sono gli eventi gestiti automaticamente dalla classe COleControl . Per un elenco completo degli eventi azionari, vedere l'articolo Controlli ActiveX MFC: Aggiunta di eventi azionari. Gli eventi personalizzati consentono a un controllo di notificare al contenitore quando si verifica un'azione specifica di tale controllo. Alcuni esempi sono una modifica dello stato interno di un controllo o della ricezione di un determinato messaggio di finestra.

Affinché il controllo venga generato correttamente, la classe di controllo deve eseguire il mapping di ogni evento del controllo a una funzione membro che deve essere chiamata quando si verifica l'evento correlato. Questo meccanismo di mapping (denominato mappa eventi) centralizza le informazioni sull'evento e consente a Visual Studio di accedere e modificare facilmente gli eventi del controllo. Questa mappa eventi viene dichiarata dalla macro seguente, che si trova nell'intestazione (. H) file della dichiarazione della classe di controllo:

DECLARE_EVENT_MAP()

Dopo che la mappa eventi è stata dichiarata, deve essere definita nell'implementazione del controllo (. File CPP). Le righe di codice seguenti definiscono la mappa eventi, consentendo al controllo di generare eventi specifici:

BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()

Se si usa la Creazione guidata controllo ActiveX MFC per creare il progetto, aggiunge automaticamente queste righe. Se non si utilizza la Creazione guidata controllo ActiveX MFC, è necessario aggiungere queste righe manualmente.

Con Visualizzazione classi è possibile aggiungere eventi azionari supportati dalla classe COleControl o dagli eventi personalizzati definiti dall'utente. Per ogni nuovo evento, Visualizzazione classi aggiunge automaticamente la voce corretta alla mappa eventi del controllo e all'oggetto del controllo . File IDL.

Altri due articoli illustrano in dettaglio gli eventi:

Vedi anche

Controlli ActiveX MFC
Controlli ActiveX MFC: metodi
Classe COleControl