wyświetlenie modalnego okna dialogowego umożliwiającego grę wg ustawień
dokonanych w oknie opcji
plansza - 9x9 lub 16x16 pól (w zależności od wyboru w oknie
opcji)
jeśli pole zawiera minę, oznaczyć je czerwonym kołem
jeśli pole sąsiaduje co najmniej z jedną miną, oznaczyć
je liczbą min w sąsiedztwie (8 kierunków sąsiedztwa - także
skośne)
min powinno być 2x więcej niż wynosi rozmiar planszy
przyciski na planszy - naciśnięcie odsłania pole
jeśli na polu jest mina, odsłonić całą planszę z wyjątkiem
tego pola i wyświetlić informację w tytule okna dialogowego
jeśli na polu nie ma miny, odsłonić tylko to pole (UWAGA:
w programie wzorcowym odsłonięcie pola, które nie graniczy
z żadną miną powoduje odsłonięcie także pól sąsiednich - ta
cecha nie jest wymagana)
po odsłonięcie wszystkich pól bez min pokazać MessageBox
z informacją
przycisk 'Zamknij' - zamknięcie okna dialogowego
'Opcje' (akcelerator Ctrl+O)
wyświetlenie modalnego okna dialogowego z opcjami
grupa dwóch Radio Buttons określających rozmiar planszy:
'9 x 9' i '16 x 16'
przy uruchomieniu okna dialogowego aktualnie obowiązująca
opcja powinna być zaznaczona
przycisk 'OK' - zamknięcie okna dialogowego z zapamiętaniem
dokonanego wyboru
orzycisk 'Anuluj' - zamknięcie okna dialogowego z porzuceniem
dokonanych zmian
do narysowania planszy na oknie dialogowym można wykorzystać Static
typu SS_BITMAP
w Visual Studio .NET obecny wśród kontrolek dialogowych jako Picture
Control
dla kontrolki tego typu można dynamicznie zmieniać bitmapę przez
nią rysowaną przy pomocy komunikatu STM_SETIMAGE, przykładowy kod:
SendMessage( hWndBoard, (UINT)STM_SETIMAGE,
IMAGE_BITMAP, (LPARAM)hBmpBoard );
przy zastosowaniu takiego rozwiązania nie ma potrzeby obsługiwać
żadnych komunikatów dotyczących rysowania
WSKAZÓWKA: bitmapę można tworzyć przy uruchomieniu okna dialogowego
gry, po wylosowaniu pozycji min
UWAGA: nie można pozostawić identyfikatora IDC_STATIC; jest on zdefiniowany
jako -1, co uniemożliwia pobranie uchwytu do kontrolki