Condividi tramite


Controlli ActiveX MFC

Un controllo ActiveX è un componente software riutilizzabile basato sul modello COM (Component Object Model) che supporta una vasta gamma di funzionalità OLE e che è possibile personalizzare in modo da rispondere a numerosi requisiti software.I controlli ActiveX sono progettati per essere utilizzati sia nei normali contenitori di controlli ActiveX che internet, nelle pagine web.È possibile creare controlli ActiveX con MFC, descritto di seguito, o con Active Template Library) (ATL).

Un controllo ActiveX è possibile disegnare in una finestra, risponde a eventi (quali i clic del mouse) e viene gestito mediante un'interfaccia che include le proprietà e i metodi simili a quelle degli oggetti di automazione.

Tali controlli possono essere compilati per molti utilizza, ad esempio l'accesso al database, il monitoraggio di dati, o rappresentare graficamente.Oltre alla portabilità, i controlli ActiveX supportano precedentemente le funzionalità non disponibili per i controlli ActiveX, ad esempio la compatibilità con i contenitori OLE esistenti e la possibilità di integrare i menu con i menu del contenitore OLE.Inoltre, un controllo ActiveX completamente supporta l'automazione, che consente il controllo all'esposto lettura \ scrive le proprietà e un set di metodi che possono essere chiamati dall'utente del controllo.

È possibile creare controlli ActiveX senza finestra e dei controlli che creano una sola finestra quando diventano attivi.I controlli privi di finestra accelerata la visualizzazione dell'applicazione e consente di disporre controlli trasparenti e non.È inoltre possibile proprietà del controllo ActiveX di carico in modo asincrono.

Un controllo ActiveX viene implementato come server in-process (in genere un piccolo oggetto) che può essere utilizzato in qualsiasi contenitore OLE.Si noti che la funzionalità completa di un controllo ActiveX è disponibile solo quando viene utilizzata all'interno di un contenitore OLE progettato per essere consapevole dei controlli ActiveX.Vedere Trasferire i controlli ActiveX in altre applicazioni per un elenco di contenitori che supportano i controlli ActiveX.Questo tipo di contenitore, in futuro denominato “un contenitore di controlli,„ possibile fare in modo che un controllo ActiveX utilizzando le proprietà e i metodi del controllo e riceve le notifiche dal controllo ActiveX sotto forma di eventi.Nella figura seguente viene illustrata questa interazione.

Interazione tra un contenitore di controlli ActiveX e un controllo ActiveX con finestra

Interazioni dei controlli ActiveX

Per alcune informazioni recenti sull'ottimizzazione dei controlli ActiveX, vedere Controlli ActiveX MFC: ottimizzazione.

Per creare un controllo ActiveX MFC, vedere Creare un progetto di controllo ActiveX.

Per ulteriori informazioni, vedere:

Componenti di base di un controllo ActiveX

Un controllo ActiveX vengono utilizzati vari elementi per interagire a livello di codice efficiente di un contenitore di controlli e con l'utente.Si tratta di classe COleControl, un insieme di funzioni in evento-infornamento e della mappa di invio.

Ogni oggetto del controllo ActiveX lo sviluppo eredita un insieme completo di funzionalità della classe base MFC, COleControl.Queste funzionalità includono l'attivazione sul posto e la logica di automazione.COleControl possibile fornire l'oggetto controllo con la stessa funzionalità come oggetto finestra di MFC, con la possibilità di generare eventi.COleControl anche possibile fornire controlli privi di finestra, che si basano sul relativo contenitore per informazioni su alcune funzionalità che una finestra fornisce (mouse capture, lo stato attivo della tastiera, scorrere), ma la visualizzazione di offrono molto più velocemente.

Poiché la classe del controllo deriva da COleControl, eredita la funzionalità inviare, o alla generazione,„ messaggi, denominati eventi, al contenitore di controlli quando determinate condizioni seguenti.Questi eventi sono utilizzati per notificare al contenitore di controlli quando qualcosa di importante si verifica nel controllo.È possibile inviare informazioni aggiuntive su un evento al contenitore di controlli associando i parametri all'evento.Per ulteriori informazioni sugli eventi del controllo ActiveX, vedere l'articolo Controlli ActiveX MFC: eventi.

L'elemento finale è una mappa di invio, utilizzata per esporre un insieme di funzioni (denominato metodi) e attributi (detti proprietà) all'utente del controllo.Le proprietà consentono al contenitore di controlli o l'utente del controllo di modificare il controllo in diversi modi.L'utente può modificare l'aspetto del controllo, modificare alcuni valori del controllo, oppure effettuare richieste di controllo, come accedere a un elemento specifico di dati che il controllo gestisce.Questa interfaccia è determinata dallo sviluppatore del controllo e viene definita utilizzando Visualizzazione classi.Per ulteriori informazioni sui metodi e le proprietà del controllo ActiveX, vedere gli articoli Controlli ActiveX MFC: metodi e proprietà.

Interazione tra i controlli con le finestre e i contenitori di controlli ActiveX

Quando un controllo all'interno di un contenitore di controlli, utilizza due meccanismi per comunicare: espone le proprietà e i metodi e genera gli eventi.La figura seguente viene illustrato come questi due meccanismi sono implementati.

Comunicazione tra un contenitore di controlli ActiveX e un controllo ActiveX

Comunicazione tra il contenitore di controlli ActiveX e il controllo ActiveX

Nella figura precedente illustra inoltre come altre interfacce OLE (oltre all'automazione e agli eventi) vengono gestite dai controlli.

Qualsiasi comunicazione di un controllo con il contenitore viene eseguita da COleControl.Per gestire alcune delle richieste del contenitore, COleControl chiamerà le funzioni membro che vengono implementate nella classe del controllo.Tutti i metodi e alcune proprietà sono gestiti in questo modo.La classe del controllo possibile anche avviare la comunicazione con il contenitore dalle funzioni membro chiamante di COleControl.Gli eventi vengono generati in questo modo.

Stati attivi e trattarsi di un controllo ActiveX

Un controllo presenta due stati di base: attivo e inattivo.In genere, questi stati sono stati distinti dal fatto che il controllo dispone di una finestra.Un controllo attivo dispone di una finestra; un controllo inattivo non ha effettuato.Con l'introduzione di attivazione senza finestra, questa differenza non è più universale, ma si applica a più controlli.

Quando controllo senza finestra va attivo, viene richiamato il mouse capture, lo stato attivo della tastiera, lo scorrimento e altri servizi della finestra dal contenitore.È inoltre possibile fornire l'interazione con il mouse ai controlli di inattivitànonché creare controlli che attendere su attivato un oggetto per creare una finestra.

Quando un controllo con una finestra diventa attivo, può interagire pienamente con il contenitore di controlli, l'utente e le finestre.Nella figura seguente vengono illustrati i canali di comunicazione tra il controllo ActiveX, il contenitore di controlli e il sistema operativo.

Elaborazione dei messaggi Windows in un controllo ActiveX con finestra (se attivo)

Messaggi di Windows ed elaborazione di un controllo ActiveX (attivo) nella finestra

Serializzazione

La possibilità di serializzare i dati, talvolta noti come persistenza, consente al controllo scrive il valore delle proprietà in un archivio permanente.I controlli possono quindi essere ricreati indica lo stato dell'oggetto dall'archiviazione.

Si noti che un controllo non è responsabile dell'ottenere l'accesso al supporto di archiviazione.Invece, il contenitore del controllo è responsabile di fornire al controllo un supporto di archiviazione all'utilizzo di in momenti appropriati.Per ulteriori informazioni sulla serializzazione, vedere l'articolo Controlli ActiveX MFC: serializzare.Per informazioni su come ottimizzare la serializzazione, vedere ottimizzare persistenza e inizializzazione nei controlli ActiveX: ottimizzazione.

Installare le classi e gli strumenti del controllo ActiveX

Quando si installa Visual C++, le classi di controlli ActiveX MFC e le DLL in fase di esecuzione di controlli ActiveX di debug e di finale vengono installati automaticamente se i controlli ActiveX sono selezionati nell'installazione (vengono selezionati per impostazione predefinita).

Per impostazione predefinita, le classi di controlli ActiveX e gli strumenti vengono installati nelle sottodirectory seguenti in \ programmi \ Microsoft Visual Studio .NET.:

  • \ Common7 \ tools

    Contiene i file di Test Container (TstCon32.exe nonché i file della Guida.

  • \ Vc7 \ atlmfc \ include

    Contiene i file di inclusione necessari per compilare i controlli ActiveX con MFC

  • \ Vc7 \ atlmfc \ src \ MFC

    Contiene il codice sorgente per le classi specifiche del controllo ActiveX in MFC

  • \ Vc7 \ atlmfc \ lib

    Contiene le librerie necessarie per sviluppare controlli ActiveX con MFC

Esistono inoltre esempi per i controlli ActiveX MFC.Per ulteriori informazioni su questi esempi, vedere Esempi di controlli: Controlli ActiveX basati su ATL

Vedere anche

Altre risorse

Interfaccia utente