160 likes | 324 Views
Daugelio Dokument ų Sąsaja (angl. Multiple Document Interface). Tomas Kasnauskas. IT1. Kas tai?. Tai grafinė vartotojo sąsaja (angl. GUI), kurioje viename tėviniame lange yra keletas langų.
E N D
Daugelio Dokumentų Sąsaja(angl. Multiple Document Interface) Tomas Kasnauskas. IT1
Kas tai? • Tai grafinė vartotojo sąsaja (angl. GUI), kurioje viename tėviniame lange yra keletas langų. • Dažnai tokios sistemos turi galimybę vaikiniuose languose atidaryti vaikinius langus, kas padaro sistemą hierarchiškai sudėtingą.
Palyginimas su VDS.(Vieno Dokumento Sąsaja(angl. Single Document Interface) • Įmonės, kuriančios programinę įrangą daug svarstė apie abi sąsajas, ir dažniausiai naudojo maišytą tipą, kai naudojama ir VDS ir DDS. • Pagrindinis skirtumas tas, kad DDS naudojama kai reikia dirbti su nedaug programų vienu metu, kitu atveju tai sukuria papildomą painiavą ir kompleksiją.
Pranašumai • Dalinasi ta pačia meniu juosta • Lengva langų manipuliacija • ‘Tile/Cascade window’ funkcija • Atskiras langų valdymo konfiguravimas, jei OS jo trūksta.
Trūkumai • Painu naudoti, kai naudojami keli monitoriai. • Sudėtinga dirbti su daug programų iš karto. • Meniu juosta gali keistis priklausomai nuo lango. • Gali skirtis langų valdymas nuo VDS. • Išmoktas DDS naudojimas negali būti pritaikytas kitur.
Prieš kuriant DDS langą, pirma turime pakeisti ‘Default message’, kuri kreipiasi į Windows procedūrą. Kadangi kuriame ‘Frame window’, kuriame bus mūsų DDS pagrindinis langas, pakeičiame DefWindowsProc() DefFrameProc():
Toliau, sukuriame patį DDS langą kaip vaikinį langą mūsų Frame window. Tą darome sekcijoje WM_CREATE kaip ir įprastai.
DDS vaikiniai langai nėra kuriami tiesiogiai. Tam mes siunčiame žinutę į WM_MDICREATE. Kartu pasakome kokio lango norime, nustatydami MDICREATESTRUCT narius:
Taip pat galime nustatyti keletą automatinio rikiavimo procesų mūsų langams. Kadangi DDS tą palaiko, nėra sunku tą padaryti. Pridedame porą case’ų: