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.

Common controls

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

Status bar

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

Common controls

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

Status bar

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

lstrlen lub _tcslen wyznacza długość napisu

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

Toolbar Control and Button Styles

struktura TBBUTTON zawiera informacje o każdym z przycisków tool bara