Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Implementálja a normál COleDocument kiszolgáló teljes DocObject-kiszolgálóvá alakításához szükséges további OLE-adaptereket: IOleDocument, IOleDocumentView, IOleCommandTargetés IPrint.
Szemantika
class CDocObjectServer : public CCmdTarget
Tagok
Nyilvános konstruktorok
| Név | Leírás |
|---|---|
| CDocObjectServer::CDocObjectServer | Egy CDocObjectServer objektumot hoz létre. |
Nyilvános metódusok
| Név | Leírás |
|---|---|
| CDocObjectServer::ActivateDocObject | Aktiválja a dokumentumobjektum-kiszolgálót, de nem jeleníti meg. |
Védett metódusok
| Név | Leírás |
|---|---|
| CDocObjectServer::OnActivateView | Megjeleníti a DocObject nézetet. |
| CDocObjectServer::OnApplyViewState | Visszaállítja a DocObject nézet állapotát. |
| CDocObjectServer::OnSaveViewState | Menti a DocObject nézet állapotát. |
Megjegyzések
CDocObjectServer
CCmdTarget származik, és szorosan együttműködikCOleServerDoc, hogy elérhetővé tegye a felületeket.
A DocObject-kiszolgáló dokumentumai CDocObjectServerItem objektumokat tartalmazhatnak, amelyek a DocObject-elemek kiszolgálói felületét jelölik.
A DocObject-kiszolgáló testreszabásához saját osztályt kell létrehoznia, és felül kell bírálnia annak nézetbeállítási funkcióit CDocObjectServer , az OnActivateView, az OnApplyViewState és az OnSaveViewState parancsot. A keretrendszerhívásokra válaszul meg kell adnia az osztály új példányát.
További információ a DocObjectsről: CDocObjectServerItem és COleCmdUI az MFC-referenciaban.
Öröklési hierarchia
CDocObjectServer
Követelmények
Fejléc: afxdocob.h
CDocObjectServer::ActivateDocObject
Hívja meg ezt a függvényt a dokumentumobjektum-kiszolgáló aktiválásához (de nem jelenik meg).
void ActivateDocObject();
Megjegyzések
ActivateDocObject meghívja IOleDocumentSitea metódust ActivateMe , de nem jeleníti meg a nézetet, mert a CDocObjectServer::OnActivateView hívásában megadott, a nézet beállítására és megjelenítésére vonatkozó utasításokra vár.
Együtt, ActivateDocObject majd OnActivateView a DocObject nézet aktiválása és megjelenítése. A DocObject aktiválása különbözik a többi OLE helyszíni aktiválástól. A DocObject aktiválási előjelei a helyhez tartozó nyílásszegélyeket és objektumdéllyel (például méretezési fogópontokkal) jelenítik meg, figyelmen kívül hagyják az objektum kiterjedési függvényeit, és görgetősávokat rajzolnak a nézet téglalapján belül, nem pedig a téglalapon kívülre rajzolják őket (mint a normál helyszíni aktiválás esetén).
CDocObjectServer::CDocObjectServer
Létrehoz és inicializál egy CDocObjectServer objektumot.
explicit CDocObjectServer(
COleServerDoc* pOwner,
LPOLEDOCUMENTSITE pDocSite = NULL);
Paraméterek
pOwner
Mutató az ügyfélwebhely dokumentumára, amely a DocObject-kiszolgáló ügyfele.
pDocSite
Mutató a IOleDocumentSite tároló által implementált felületre.
Megjegyzések
Ha egy DocObject aktív, az ügyfélwebhely OLE felülete (IOleDocumentSite) teszi lehetővé a DocObject-kiszolgáló számára, hogy kommunikáljon az ügyféllel (a tárolóval). A DocObject-kiszolgáló aktiválása után először ellenőrzi, hogy a tároló implementálja-e a IOleDocumentSite felületet. Ha igen, a COleServerDoc::GetDocObjectServer meghívásával ellenőrizheti, hogy a tároló támogatja-e a DocObjects szolgáltatást. Alapértelmezés szerint NULL GetDocObjectServer értéket ad vissza. Felül kell bírálnia COleServerDoc::GetDocObjectServer egy új CDocObjectServer objektum vagy saját származtatott objektum létrehozásához, a tárolóra COleServerDoc mutató mutatókkal és annak felületével IOleDocumentSite , mint a konstruktor argumentumai.
CDocObjectServer::OnActivateView
Hívja meg ezt a függvényt a DocObject nézet megjelenítéséhez.
virtual HRESULT OnActivateView();
Visszaadott érték
Hibaüzenetet vagy figyelmeztető értéket ad vissza. Alapértelmezés szerint a NOERROR értéket adja vissza, ha sikeres; egyéb esetben E_FAIL.
Megjegyzések
Ez a függvény létrehoz egy helyi keretablakot, görgetősávokat rajzol a nézetben, beállítja a kiszolgáló által a tárolóval megosztott menüket, keretvezérlőket ad hozzá, beállítja az aktív objektumot, majd végül megjeleníti a helyi keretablakot, és beállítja a fókuszt.
CDocObjectServer::OnApplyViewState
Felülbírálja ezt a függvényt a DocObject nézet állapotának visszaállításához.
virtual void OnApplyViewState(CArchive& ar);
Paraméterek
Ar
Egy CArchive objektum, amelyből szerializálni szeretné a nézet állapotát.
Megjegyzések
Ezt a függvényt akkor hívja meg a rendszer, ha a nézet a példányosítás után először jelenik meg.
OnApplyViewStatearra utasítja a nézetet, hogy az CArchive korábban mentett objektum adatainak megfelelően újrainicializálja magát. A nézetnek ellenőriznie kell az CArchive objektum adatait, mert a tároló semmilyen módon nem próbálja értelmezni a nézetállapot adatait.
A nézet állapotára jellemző állandó információk tárolására használható OnSaveViewState . Ha felülbírálja OnSaveViewState az információk tárolását, felül kell írnia OnApplyViewState ezeket az információkat, és alkalmaznia kell azokat a nézetre, amikor az újonnan aktiválódik.
CDocObjectServer::OnSaveViewState
A függvény felülbírálása a DocObject nézet további állapotinformációinak mentéséhez.
virtual void OnSaveViewState(CArchive& ar);
Paraméterek
Ar
Egy CArchive objektum, amelyre a nézet állapota szerializálva van.
Megjegyzések
Az állapot tartalmazhat olyan tulajdonságokat, mint a nézet típusa, a nagyítási tényező, a beszúrási és a kijelölési pont stb. A tároló általában meghívja ezt a függvényt a nézet inaktiválása előtt. A mentett állapot később visszaállítható az OnApplyViewState használatával.
A nézet állapotára jellemző állandó információk tárolására használható OnSaveViewState . Ha felülbírálja OnSaveViewState az információk tárolását, felül kell írnia OnApplyViewState ezeket az információkat, és alkalmaznia kell azokat a nézetre, amikor az újonnan aktiválódik.
Lásd még
CCmdTarget osztály
hierarchiadiagram
CDocObjectServerItem osztály