Disattivazione dell'opzione Attivo quando visibile

Un controllo presenta due stati di base: attivo e inattivo. Tradizionalmente, questi stati si distinguevano a seconda che il controllo avesse o meno una finestra. Un controllo attivo aveva una finestra; un controllo inattivo invece no. Con l'introduzione dell'attivazione senza finestra, questa differenza non è più universale, ma è ancora valida per molti controlli.

Rispetto al resto dell'inizializzazione eseguita in genere da un controllo ActiveX, la creazione di una finestra è un'operazione estremamente costosa. Idealmente, un controllo rinvierebbe la creazione della finestra fino a quando non è assolutamente necessario.

Molti controlli non devono essere attivi per tutto il tempo in cui sono visibili in un contenitore. Spesso, un controllo può rimanere nello stato inattivo fino a quando l'utente non esegue un'operazione che richiede che diventi attiva (ad esempio, facendo clic con il mouse o premendo tabulazione). Per fare in modo che un controllo rimanga inattivo fino a quando il contenitore non deve attivarlo, rimuovere il flag OLEMISC_ACTIVATEWHENVISIBLE dai flag vari del controllo:

static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

Il flag OLEMISC_ACTIVATEWHENVISIBLE viene omesso automaticamente se si disattiva l'opzione Attiva quando visibile nella pagina Controllo Impostazioni della Creazione guidata controllo ActiveX MFC quando si crea il controllo.

Vedi anche

Controlli ActiveX MFC: ottimizzazione