Aspect Napisano Październik 22, 2018 Autor Zgłoś 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
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.