Konténerek: Egy konténer megvalósítása

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Ez a cikk összefoglalja a tárolók implementálásának eljárását, és más cikkekre mutat, amelyek részletesebb magyarázatokat nyújtanak a tárolók implementálásáról. Felsorol néhány választható OLE-funkciót is, amelyeket érdemes lehet implementálni, valamint az ezeket a funkciókat leíró cikkeket.

A CWinApp-alapú osztály előkészítése

  1. Inicializálja az OLE-kódtárakat a AfxOleInit hívásával a InitInstance tagfüggvényben.

  2. Hívja CDocTemplate::SetContainerInfo a InitInstance-ban a menü- és gyorsító billentyűk erőforrásainak hozzárendeléséhez, amikor a beágyazott elem helyben kerül aktiválásra. A témakörről további információt az Aktiválás című témakörben talál.

Ezek a funkciók automatikusan elérhetők, amikor az MFC alkalmazásvarázslóval hoz létre egy tárolóalkalmazást. Lásd : MFC EXE-program létrehozása.

A nézetosztály előkészítése

  1. A kijelölt elemek nyomon követéséhez tartsa lenyomva a kijelölt elemekre mutató mutatót, illetve ha több kijelölést is támogat, a mutatókat tartalmazó listát. A OnDraw függvénynek meg kell rajzolnia az összes OLE-elemet.

  2. A IsSelected felülbírálása annak ellenőrzéséhez, hogy az átadott elem jelenleg ki van-e jelölve.

  3. Implementáljon egy üzenetkezelőt OnInsertObject az Objektum beszúrása párbeszédpanel megjelenítéséhez.

  4. Implementáljon egy üzenetkezelőt OnSetFocus , amely a fókuszt a nézetről egy helyi aktív OLE beágyazott elemre továbbítja.

  5. Implementáljon egy üzenetkezelőt OnSize , amely tájékoztatja egy beágyazott OLE-elemet, hogy módosítania kell a téglalapját, hogy az tükrözze a benne található nézet méretének változását.

Mivel ezeknek a funkcióknak a megvalósítása jelentősen eltér az egyik alkalmazástól a következőig, az alkalmazásvarázsló csak egy alapszintű implementációt biztosít. Ezeket a függvényeket valószínűleg testre kell szabnia, hogy az alkalmazás megfelelően működjön. Erre példaként tekintse meg a CONTAINER-mintát .

Beágyazott és csatolt elemek kezelése

  1. Osztályt származtat a COleClientItemből. Az osztály objektumai az OLE-dokumentumba beágyazott vagy ahhoz csatolt elemeket jelölik.

  2. Írd felül a OnChange, OnChangeItemPosition és OnGetItemPosition. Ezek a függvények kezelik a beágyazott és csatolt elemek méretezését, elhelyezését és módosítását.

Az alkalmazásvarázsló származtatja az osztályt az Ön számára, de valószínűleg felül kell írnia OnChange-t, és az előző eljárás 2. lépése szerint felsorolt többi függvényt. A csontváz-implementációkat a legtöbb alkalmazáshoz testre kell szabni, mert ezek a függvények alkalmazásonként eltérően vannak implementálva. Ilyen például a DRAWCLI és a CONTAINER MFC-minta.

Az OLE támogatásához több elemet kell hozzáadnia a tárolóalkalmazás menüszerkezetéhez. Ezekről további információt a Menük és erőforrások: Tároló hozzáadásai című témakörben talál.

A tárolóalkalmazásban az alábbi funkciók némelyikét is támogatnia kell:

  • Helyszíni aktiválás beágyazott elem szerkesztésekor.

    További információ: Aktiválás.

  • OLE-elemek létrehozása egy kiszolgálóalkalmazás kijelölésének húzásával és elvetésével.

    További információért lásd: OLE húzás és áthelyezés.

  • Beágyazott objektumokra vagy kombinált tároló-/kiszolgálóalkalmazásokra mutató hivatkozások.

    További információ: Tárolók: Speciális funkciók.

Lásd még

Konténerek
Tárolók: Ügyféltárgyak