Deaktivieren der Option „Aktiviert, wenn sichtbar“

Ein Steuerelement verfügt über zwei grundlegende Zustände: aktiv und inaktiv. In der Vergangenheit unterschieden sich diese Zustände dadurch, ob das Steuerelement ein Fenster hatte oder nicht. Ein aktives Steuerelement wies ein Fenster auf, ein inaktives Steuerelement wies kein Fenster auf. Mit der Einführung der fensterlose Aktivierung, ist diese Unterscheidung nicht mehr universell, gilt aber weiterhin für viele Steuerelemente.

Im Vergleich zu den restlichen Initialisierungen, die normalerweise von einem ActiveX-Steuerelement durchgeführt werden, ist die Erstellung eines Fensters ein extrem kostspieliger Vorgang. Im Idealfall würde ein Steuerelement das Erstellen des Fensters zurückstellen, bis es unbedingt erforderlich ist.

Viele Steuerelemente müssen nicht die gesamte Zeit aktiv sein, die sie in einem Container sichtbar sind. Häufig kann ein Steuerelement im inaktiven Zustand erneut Standard, bis der Benutzer einen Vorgang ausführt, der aktiviert werden muss (z. B. Klicken mit der Maus oder Drücken der TAB-TASTE). Damit ein Steuerelement wieder Standard inaktiv wird, bis der Container es aktivieren muss, entfernen Sie das OLEMISC_ACTIVATEWHENVISIBLE Flag aus den verschiedenen Flags des Steuerelements:

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

Das OLEMISC_ACTIVATEWHENVISIBLE Flag wird automatisch weggelassen, wenn Sie die Option "Beim Anzeigen aktivieren" auf der Seite "Steuerelement Einstellungen" des MFC ActiveX-Steuerelement-Assistenten deaktivieren, wenn Sie das Steuerelement erstellen.

Siehe auch

MFC-ActiveX-Steuerelemente: Optimierung