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 sammanfattar proceduren för att implementera en container och pekar på andra artiklar som ger mer detaljerade förklaringar om hur du implementerar containrar. Den innehåller även några valfria OLE-funktioner som du kanske vill implementera och de artiklar som beskriver dessa funktioner.
Förbereda din CWinApp-härledda klass
Initiera OLE-biblioteken genom att anropa
AfxOleInitiInitInstancemedlemsfunktionen.Anropa
CDocTemplate::SetContainerInfoiInitInstanceför att tilldela menyn och acceleratorresurserna som används när ett inbäddat objekt aktiveras på plats. Mer information om det här avsnittet finns i Aktivering.
De här funktionerna tillhandahålls automatiskt när du använder MFC-programguiden för att skapa ett containerprogram. Se Skapa ett MFC EXE-program.
Att förbereda din visningsklass
Håll reda på markerade objekt genom att behålla en pekare eller en lista med pekare om du stöder flera val till de markerade objekten. Funktionen
OnDrawmåste teckna alla OLE-objekt.Åsidosätt
IsSelectedför att kontrollera om objektet som skickades till det är för närvarande markerat.Implementera en
OnInsertObjectmeddelandehanterare för att visa dialogrutan Infoga objekt .Implementera en
OnSetFocusmeddelandehanterare för att överföra fokus från vyn till ett aktivt OLE Embedded-objekt på plats.Implementera en
OnSizemeddelandehanterare för att informera ett OLE Embedded-objekt om att det behöver ändra sin rektangel för att återspegla ändringen i storleken på dess innehållande vy.
Eftersom implementeringen av dessa funktioner varierar dramatiskt från ett program till ett annat, tillhandahåller programguiden bara en grundläggande implementering. Du måste förmodligen anpassa dessa funktioner för att programmet ska fungera korrekt. Ett exempel på detta finns i CONTAINER-exemplet .
Hantera inbäddade och länkade objekt
Härled en klass från COleClientItem. Objekt i den här klassen representerar objekt som har bäddats in i eller länkats till ditt OLE-dokument.
Åsidosätt
OnChange,OnChangeItemPositionochOnGetItemPosition. Dessa funktioner hanterar storlek, placering och ändring av inbäddade och länkade objekt.
Programguiden härleder klassen åt dig, men du måste förmodligen åsidosätta OnChange och de andra funktionerna som anges med den i steg 2 i föregående procedur. Skelettimplementeringarna måste anpassas för de flesta program, eftersom dessa funktioner implementeras på ett annat sätt än ett program till nästa. Exempel på detta finns i MFC-exemplen DRAWCLI och CONTAINER.
Du måste lägga till ett antal objekt i containerprogrammets menystruktur för att stödja OLE. Mer information om dessa finns i Menyer och resurser: Containertillägg.
Du kanske också vill ha stöd för några av följande funktioner i ditt containerprogram:
Direkt aktivering när du redigerar ett inbäddat objekt.
Mer information finns i Aktivering.
Skapa OLE-objekt genom att dra och släppa en markering från ett serverprogram.
Mer information finns i OLE dra och släpp.
Länkar till inbäddade objekt eller kombinationscontainer/serverprogram.
Mer information finns i Containrar: Avancerade funktioner.