Dela via


MFC ActiveX-kontroller: Optimering

Den här artikeln beskriver tekniker som du kan använda för att optimera dina ActiveX-kontroller för bättre prestanda.

Viktigt!

ActiveX är en äldre teknik som inte bör användas för ny utveckling. Mer information om moderna tekniker som ersätter ActiveX finns i ActiveX-kontroller.

I ämnena Inaktivera alternativet Aktivera när visas och Ge musinteraktion medan inaktiv diskuteras kontroller som inte skapar ett fönster förrän det har aktiverats. I avsnittet Tillhandahålla fönsterlös aktivering beskrivs kontroller som aldrig skapar ett fönster, även när de aktiveras.

Windows har två stora nackdelar för OLE-objekt: de förhindrar att objekt är transparenta eller icke-sekterangulära när de är aktiva, och de lägger till stora omkostnader för instansiering och visning av kontroller. Normalt tar det 60 procent av en kontrolls skapandetid att skapa ett fönster. Med ett enda delat fönster (vanligtvis containerns) och viss sändningskod tar en kontroll emot samma fönstertjänster, vanligtvis utan prestandaförlust. Att ha ett fönster innebär oftast onödig överhead för objektet.

Vissa optimeringar förbättrar inte nödvändigtvis prestanda när kontrollen används i vissa containrar. Containrar som släpptes före 1996 har till exempel inte stöd för fönsterlös aktivering, så implementeringen av den här funktionen ger ingen fördel i äldre containrar. Nästan alla containrar har dock stöd för beständighet, så om du optimerar kontrollens beständighetskod förbättras sannolikt dess prestanda i alla containrar. Om din kontroll är specifikt avsedd att användas med en viss typ av container kanske du vill undersöka vilken av dessa optimeringar som stöds av containern. I allmänhet bör du dock försöka implementera så många av dessa tekniker som gäller för din specifika kontroll för att säkerställa att kontrollen fungerar så bra som möjligt i en mängd containrar.

Du kan implementera många av dessa optimeringar via MFC ActiveX-kontrollguiden på sidan Kontrollinställningar .

MFC ActiveX-kontrollguidens OLE-optimeringsalternativ

Inställning av kontroll i MFC ActiveX-kontrollguiden Åtgärd Mer information
Kryssrutan Aktivera när den visas Klar Inaktivera alternativet Aktivera när det är synligt
Kryssruta för fönsterlös aktivering Välj Tillhandahålla fönsterlös aktivering
Kryssruta för oläst enhetskontext Välj Använda en icke-klippt enhetskontext
Kryssruta för flimmerfri aktivering Välj Tillhandahållande av Flicker-Free-aktivering
Muspekarmeddelanden vid inaktivitet kryssruta Välj Tillhandahålla musinteraktion när den är inaktiv
Kryssruta för optimerad ritningskod Välj Optimera kontrollritning

Detaljerad information om medlemsfunktionerna som implementerar dessa optimeringar finns i COleControl.

Mer information finns i:

Se även

MFC ActiveX-kontroller