Kontrolki i Pliki
Lista okien
Napisz program, który wypisze nazwy (tytuły) wszystkich aktywnych okien. Aplikacja zawiera kontrolkę List Box oraz przycisk Odśwież
. Po wciśnięciu przycisku Odśwież
w kontrolce List Bix pojawia się lista okien. Dodaj kontrolkę Status Bar, która wyświetla liczbę okien w kontrolce List Box. Zadbaj o to, aby kontrolki wybełniały poprawnie wnętrze okna głównego w przypadku zmiany rozmiaru tego ostaniego.
- plik nagłówkowy:
commctrl.h
- plik biblioteki linkowany z projektem:
comctl32.lib
(domyślnie brak w projekcie Visual Studio) - InitCommonControls() lub InitCommonControlsEx() funkcja inicjująca bibliotekę
Kontrolka List Box
- komunikat LB_ADDSTRING dodaje łańcuch znakowy do listy kontrolki List Box
- komunikat LB_GETCOUNT zwraca liczbę elementów na liście
- styl LBS_SORT zmusza List Box do umieszczania elementów w kolejności alfabetycznej
- komunikat LB_RESETCONTENT usuwa wszystkie elementy z List Box
Lista okien:
- funkcja EnumWindows pozwala wykonać funkcję dla każdego okna
- funkcja zwrotna EnumWindowsProc uruchamiana przez EnumWindows() dla kolejnych okien
- klasa okien
STATUSCLASSNAME
- SB_SETPARTS na ile części podzielić
- SB_SETTEXT wstawienie tekstu do status bara
Zmiana rozmiaru okna:
- WM_SIZE komunikat wysyłany po zmianie rozmiaru okna
- GetWindowRect rozmiary całego okna
- GetClientRect rozmiary obszaru klienckiego
- SetWindowPos ustawienie pozycji i rozmiaru okna
Notatnik cd.
Na oknie głównym umieść kontrolkę edycyjną, która wypełni całą powierzchnię okna. Przy zmianie okna głównego kontrolka edycyjna powinna dopasowywać odpowiednio swoje rozmiary. Dodaj do menu możliwość zapisu zawartości kontrolki edycyjnej do pliku tekstowego oraz możliwość wczytania zawartości pliku tekstowego do kontrolki edycyjnej. Wybór pliku do odczytu/zapisu odbywa się za pomocą odpowiednich okien dialogowych (GetOpenFileName(), GetSaveFileName()). Dodaj Status Bar informujący o wykonanej ostatnio akcji (zapis / odczyt, nazwa pliku ), ilości wierszy w kontrolce edycyjnej. Dodaj do aplikacji Tool Bar zawierający przyciski umożliwiające wykonać operacje z menu Plik
(Nowy, Otwórz i Zapisz). Zadbaj o to, żeby w momencie zmiany wielkości okna głównego kontrolka edycyjna wypełniała całą wolną przestrzeń kliencką okna głównego pomiędzy Tool Barem (u góry) i Status Barem (u dołu).
Przydatne funkcje
- plik nagłówkowy:
commctrl.h
- plik biblioteki linkowany z projektem:
comctl32.lib
- InitCommonControls() lub InitCommonControlsEx() funkcja inicjująca bibliotekę
File Dialogs
- OPENFILENAME struktura zawierająca informacje dla dwóch poniższych funkcji
- GetOpenFileName() otwiera okno dialogowe do wyboru pliku
- GetSaveFileName() tworzy kontrolkę dialogową do wyboru pliku do zapisu
Zapis/odczyt z plików
- CreateFile() tworzenie pliku
- CloseHandle() zamyka plik
- GetFileSize() pobiera rozmiar pliku
- ReadFile() odczyt danych z pliku
- WriteFile() zapis danych do pliku
- klasa okien
STATUSCLASSNAME
- SB_SETPARTS na ile części podzielić
- SB_SETTEXT wstawienie tekstu do status bara
Operacje na napisach
- plik nagłowkowy
tchar.h
- _sntprintf_s formatowanie napisu za pomocą składni zgodną z
sprintf
- _itot zamiana liczby całkowitej na napis
Zmiana rozmiaru okna:
- WM_SIZE komunikat wysyłany po zmianie rozmiaru okna
- GetWindowRect rozmiary całego okna
- GetClientRect rozmiary obszaru klienckiego
- SetWindowPos ustawienie pozycji i rozmiaru okna
Tworzenie kontrolki tool bar:
- klasa okien TOOLBARCLASSNAME z Common controls
- komunikat TB_ADDBUTTONS dodający przycisk do tool bara
- komunikat TB_AUTOSIZE dopasowuje rozmiar kontrolki do zawartości
- struktura TBBUTTON zawiera informacje o każdym z przycisków tool bara