Win32: zasoby, okna dialogowe, kontrolki
Przeglądarka okien dialogowych
- Wzór programu
- Funkcjonalność:
- okno aplikacji typu overlapped z możliwością zmiany jego
rozmiaru przez użytkownika (w standardowy sposób)
- menu Plik z dwiema opcjami:
- Otwórz - otwiera standardowe okno dialogowe wyboru pliku z
dwoma filtrami:
- pliki wykonywalne: *.exe;*.dll;*.ocx;*.scr;*.cpl
- wszystkie pliki: *.*
- Zamknij - kończy pracę aplikacji
- po wybraniu przez użytkownika pliku następuje próba wczytania z
niego wszystkich zasobów typu DIALOGEX (wartość numeryczna: 5)
- kontrolka LISTBOX wypełniająca zawsze dokładnie cały obszar roboczy
okna
- na liście pokazywane są wszystkie znalezione zasoby typu
DIALOGEX
- jeśli zasób jest identyfikowany numerem, to na liście jest
reprezentowany w postaci "#numer"
- jeśli zasób jest identyfikowany tekstem, to na liście jest
reprezentowany tym tekstem
- dwuklik lewym przyciskiem myszy na pozycji z listy powoduje
modalne wyświetlenie okna dialogowego reprezentowanego tą pozycją
- wyświetlone okno dialogowe można zamknąć w standardowy
sposób ('X' na pasku tytułowym lub ESC)
- Wymagania:
- obsługa błędów:
- zwróconych przez funkcję wczytującą plik jako moduł
- wygenerowanych przy próbie wyświetlenia modalnego okna
dialogowego
- w tym specjalny przypadek, gdy zasób okna dialogowe ma
ustawiony styl WS_CHILD - konieczne jest wyświetlenie
specjalnego komunikatu i bezproblemowa kontynuacja pracy
- Ułatwienia:
- nie jest konieczne rozróżnianie wersji językowych zasobów
- Wskazówki:
- OPENFILENAME, GetOpenFileName
- LoadLibrary, FreeLibrary
- EnumResourceNames, wartość numeryczna 5 dla typu DIALOGEX
- CreateWindowEx, "LISTBOX"
- LBS_NOTIFY, LBN_DBLCLK
- LB_RESETCONTENT, LB_GETCURSEL, LB_GETTEXT
- WM_SIZE, MoveWindow
- DialogBox
- jako funkcję obsługi komunikatów okna dialogowego można podać
dowolną funkcję, która w odpowiedzi na identyfikatory IDOK i
IDCANCEL w WM_COMMAND zamknie okno dialogowe; dobrym przykładem
takiej funkcji jest About() wygenerowana przez Visual Studio
- GetWindowLongPtr, GWL_STYLE
- Przykłady:
- c:\windows\system32\wextract.exe
- c:\windows\system32\mspaint.exe
- C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\spyxx.exe
- dużo przykładów ze stylem WS_CHILD
- C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\gutils.dll
- zasoby okien dialogowych identyfikowane tekstami
- Przybliżona punktacja:
- menu: 1.0
- okno wyboru pliku (także 2 filtry plików): 1.5
- kontrolka LISTBOX wypełniająca cały obszar roboczy okna: 1.5
- otwarcie i zamknięcie pliku do wczytywania zasobów: 1.0
- wypisanie na liście wszystkich zasobów typu DIALOGEX (także
czyszczenie listy): 2.0
- pokazanie modalnego okna dialogowego po dwukliku na pozycji listy:
2.0
- obsługa błędów: 1.0
- Linki do przesyłania (hasło jest takie samo, jak do wyników):