Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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: