Disattivazione dell'attivazione quando l'opzione visibile
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.
Rispetto al resto di inizializzazione in genere eseguita da un controllo ActiveX, la creazione di una finestra è un'operazione estremamente complessa.In teoria, un controllo rinvierebbe creare la finestra finché non è assolutamente necessario.
Molti controlli siano attivi l'intero tempo che sono visibili in un contenitore.Spesso, un controllo può rimanere nello stato attivo finché l'utente non esegua un'operazione che lo richiede di diventare attivo (ad esempio, fare clic con il mouse o la pressione del tasto TAB).Affinché un controllo mantenere attivo fino al contenitore necessario attivarlo, rimuove il flag di OLEMISC_ACTIVATEWHENVISIBLE da vari flag del controllo:
static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
Il flag di OLEMISC_ACTIVATEWHENVISIBLE automaticamente viene omesso se disattivare l'opzione di Activate When Visible nella pagina di Verificare le impostazioni di Creazione guidata controllo ActiveX MFC quando si crea il controllo.