Dela via


Ett porträtt av dokument-/vyarkitekturen

Dokument och vyer paras ihop i ett typiskt MFC-program. Data lagras i dokumentet, men vyn har privilegierad åtkomst till data. Separationen av dokumentet från vyn skiljer lagring och underhåll av data från dess visning.

Få åtkomst till dokumentdata från vyn

Vyn kommer åt dokumentets data antingen med funktionen GetDocument , som returnerar en pekare till dokumentet, eller genom att göra visningsklassen till en C++ friend av dokumentklassen. Vyn använder sedan sin åtkomst till data för att hämta data när den är redo att rita eller på annat sätt manipulera dem.

Till exempel använder vyns OnDraw-medlemsfunktionGetDocument för att hämta en dokumentpekare. Sedan använder den pekaren för att komma åt en CString datamedlem i dokumentet. Vyn vidarebefordrar strängen till TextOut-funktionen. Om du vill se koden för det här exemplet kan du läsa Ritning i en vy.

Användarindata till vyn

Vyn kan också tolka ett musklick inom sig själv som antingen markering eller redigering av data. På samma sätt kan det tolka tangenttryckningar som datainmatning eller redigering. Anta att användaren skriver en sträng i en vy som hanterar text. Vyn hämtar en pekare till dokumentet och använder pekaren för att skicka nya data till dokumentet, som lagrar dem i viss datastruktur.

Uppdatera flera vyer av samma dokument

I ett program med flera vyer av samma dokument , till exempel ett delningsfönster i en textredigerare, skickar vyn först de nya data till dokumentet. Sedan anropas dokumentets UpdateAllViews-medlemsfunktion, som uppmanar alla vyer i dokumentet att uppdatera sig själva, vilket återspeglar de nya data. Detta synkroniserar vyerna.

Vad vill du veta mer om?

Se även

Arkitektur för dokument/vy