Aspect Napisano Październik 22, 2018 Autor Zgłoś Udostępnij Napisano Październik 22, 2018 W wielkim skrócie wygląda to mniej więcej tak (za mało czasu i miejsca, żeby to wszystko dokładniej opisać, także moja wiedza na ten temat niestety nie jest kompletna :P): CMainFrame - jest to klasa opakowująca okno główne aplikacji (bez obszaru roboczego); znajdują się w niej więc informacje na temat wszelkich toolbarów, statusbarów; tutaj możesz też modyfikować wygląd onka (czy ma przyciski minimalizacji i maxymalizacji, czy da się rozciągać itp) CDoc - to klasa opakowująca dane wykorzystywane w Twojej aplikacji (bez sposobów ich wyświetlania); w niej powinna znajdować cała warstwa logiki Twojej aplikacji (wszystkie funkcje modyfikujące dane); udostępnia ona funkcję Serialize służącą do zapisywania dokumentu (a ściślej jego zmiennych) CView - klasa opakowująca warstwę interfejsu aplikacji; powina służyć do wyświetlania danych znajdujących się w dokumencie (interpretować te dane i podawać je w postaci łatwo dostępnej dla użytkownika - np.: w dokumencje masz tablicę punktów, a klasa CView wyświetla je jako wykres) Nie wiem tego na pewno, ale z tego co zdołałem wywnioskować z budowy aplikacji SDI, to jedynymi klasami, które się ze sobą komunkują są klasa widoku i klasa dokumentu. Po prostu w klasie widoku pobierasz wskaźnik do aktywnego dokumentu, przy użyciu funkcji GetDocument i wyświetlasz zawarte w nim dane. Pobieranie wskaźnika wygląda tak: W Swojej klasie CView, albo w którejś z jej funkcji, tworzysz sobie wskażnik do obiektu klasy Twojego dokumentu np.: CMyDoc* pMyDoc. Następnie przypisujesz tej zmiennej wskaźnik do bieżącego dokumentu np.: pMyDoc=GetDocument(); i w ten sposób masz już dostęp do wszystkich pól i metod Swojej klasy dokumentu poprzez operator -> np.: pMyDoc->WyznaczPunkty();. Architektura Document-View została zaprojektowana po to żeby oddzielić logikę aplikacji (dane i operacje na nich) od interfejsu (sposób wyświetlania tych danych). Ma to ułatwić zmiane interfejsu (np.: nie chcemy oglądać wykresu tylko tablekę z współrzędnymi punktów), bez potrzeby zmiany całej aplikacji oraz bez ryzyka namieszania w częci logicznej. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.