Krzysztof Mossakowski
Programowanie w środowisku Windows II
2005 - Zadania
Windows Forms
Wersja B
Tangram
Aplikacja Windows Forms umożliwiająca układanie wzorów z zestawu elementów
Aplikacja:
Funkcjonalność:
lewy przycisk myszy - przesuwanie elementu
lewy przycisk myszy z naciśniętym Shift - obrót elementu o 45°
lewy przycisk myszy z naciśniętym Ctrl - przesuwanie okna
prawy przycisk myszy - menu kontekstowe
"Wczytaj..." - dialog wyboru pliku .DLL i wczytanie jego zawartości
opisy plików graficznych wczytane z pliku .DLL
ustawienie pliku graficznego jako tła okna aplikacji
aktualnie wybrany plik zaznaczony
zawsze widoczne tylko pliki z aktualnie wybranego pliku .DLL
"Koniec" - zakończenie pracy aplikacji
Szczegóły techniczne:
w oknie widoczne tylko części składowe aktualnie wybranego pliku graficznego
UWAGA: dopuszczalnym rozwiązaniem jest zastosowanie przezroczystości zamiast nieregularności kształtu
brak obramowania i paska tytułowego okna
po uruchomieniu zapytać o plik .DLL albo automatycznie wczytać przykładowy (p. niżej)
DLL:
Stworzyć plik .DLL z czterema plikami graficznymi (
plik zip
)
powyższy plik .zip zawiera przykładowy .DLL
Szczegóły techniczne:
przestrzeń nazw (
namespace
): "tangram"
brak kodu
pliki graficzne dodane jako zasoby
plik tekstowy z opisem plików graficznych w postaci pliku .resources
w przykładowym pliku .DLL:
fajka.gif = fajeczka
grzebien.gif = grzebyczek
jamnik.gif = jamnik albo niski pies
krzeslo.gif = krzesło z wysokim oparciem
Nakazy i zakazy (w celach ćwiczebnych):
zakaz używania atrybutu DllImport
zakaz używania metody Paint dla okna i wszystkich kontrolek
Wskazówki:
GraphicsPath, Region
Control: BackColor, Location, Region, WndProc
sprawdzić zawartość przykładowego pliku .dll przy pomocy deassemblera (
.NET Reflector
)
ResGen.exe
Assembly: LoadFile, GetManifestResourceNames, GetManifestResourceStream
ResourceManager: ResourceManager(string, Assembly), GetString
Bitmap: Bitmap(Stream)
Przybliżona punktacja:
aplikacja:
właściwości okna: 0.5
wygląd okna (także zmiana wyglądu): 1.0
przesuwanie okna: 1.0
elementy układanki: 1.5
przesuwanie i obracanie elementów: 1.5
dynamiczna modyfikacja menu kontekstowego: 1.0
obsługa wczytywania zasobów z pliku .DLL: 1.5
.DLL
pliki graficzne jako zasoby: 1.0
opisy plików graficznych: 1.0