2. Kategorie funkcji interfejsu Win32
Funkcje interfejsu Win32 można podzielić na osiem głównych kategorii:
• zarządzanie aplikacjami i oknami ( windows management);
• usługi systemowe ( system services);
• obsługa interfejsu urządzeń graficznych (GDI, Graphics Device Interface);
• usługi multimedialne ( multimedia services);
• standardowe elementy interfejsu użytkownika ( common controls and dialogs);
• funkcje powłoki systemu ( shell features);
• obsługa ustawień regionalnych ( international features);
• usługi sieciowe ( network services).
Zajmijmy się po kolei każdą z nich.
Zarządzanie oknami
Do tworzenia i zarządzania aplikacjami uruchamianymi w systemie Windows służą funkcje zawarte w bibliotece obsługującej interfejs użytkownika ( user32.dll). Realizowane przez nią usługi obejmują: zarządzanie oknami, menu, oknami dialogowymi, okienkami komunikatów, komunikację z klawiaturą i myszą oraz innymi elementami interfejsu użytkownika. Pojęciem kluczowym dla dalszej dyskusji jest tu okno (ang. window). Jest ono swoistym punktem styku, przez który użytkownik porozumiewa się z aplikacją. Każdy program tworzy co najmniej jedno okno, zwane oknem głównym (ang. main window), chociaż oczywiście może utworzyć ich więcej. Zasadniczym przeznaczeniem okna jest przekazywanie i odbieranie informacji od użytkownika. Omawiane tutaj funkcje umożliwiają manipulowanie oknami

8
tworzonymi przez program oraz sterowanie przepływem komunikatów generowanych przez urządzenia wejściowe (klawiatura i mysz), odbieranych przez okno główne i przekazywanych dalej do systemu.
Funkcje zarządzania oknami pozwalają także programowi wyświetlać menu, ikony oraz okna dialogowe, służące do przekazywania i odbierania informacji od użytkownika.
Niektóre z popularniejszych funkcji zarządzania oknami zawartych w API zestawiono w tabeli 14.1.
Aby móc się do nich odwoływać, należy włączyć do tekstu źródłowego programu plik nagłówkowy windows.h lub zawarty w pakiecie C++Builder plik vcl.h.
Tabela 14.1. Najczęściej używane funkcje zarządzania oknami
Funkcja Opis
CascadeWindows()
Układa dane okna (lub okna potomne danego okna) kaskadowo.
CloseWindow()
Ukrywa (nie likwiduje) dane okno.
CreateWindow()
Tworzy okno wyposażone w pasek tytułu ( overlapped), wyskakujące ( pop-up) lub potomne ( child).
DestroyWindow()
Likwiduje okno; jej wywołanie powoduje przesłanie do okna systemowego
komunikatu WM_DESTROY.
EnableWindow()
Blokuje lub odblokowuje odbieranie przez okno komunikatów wysyłanych
przez klawiaturę i mysz.
EnumWindows()
Identyfikuje wszystkie okna najwyższego poziomu (ang. top level window; są to okna, których rodzicem jest pulpit Windows), przekazując kolejno ich uchwyty do zdefiniowanej przez użytkownika funkcji zwrotnej.
EnumWindowsProc()
Odbiera uchwyty okien przekazywane przez EnumWindows() w celu
dalszego przetwarzania (funkcja zwrotna definiowana przez programistę).
FindWindow()
Zwraca uchwyt okna najwyższego poziomu identyfikowanego nazwą klasy i
zawartością paska tytułu okna.
FindWindowEx()
Zwraca uchwyt okna identyfikowanego nazwą klasy oraz zawartością paska
tytułu; działa podobnie do FindWindow(), jednak umożliwia również
zlokalizowanie okna potomnego (typu child).
GetWindowRect()
Zwraca współrzędne ekranowe prostokąta, zawierającego dane okno.
GetWindowText()
Zwraca tekst zawarty w oknie (zwykle w pasku tytułu).
MoveWindow()
Przesuwa okno lub zmienia jego rozmiary.
SetWindowText()
Zmienia tekst zawarty w oknie (zwykle w pasku tytułu).
ShowWindow()
Modyfikuje stan widoczności danego okna. Możliwości funkcji
ShowWindow() obejmują: maksymalizację, minimalizację, ukrywanie,
przywracanie rozmiarów oraz uaktywnianie okien.
TileWindows()
Układa dane okna (lub okna potomne danego okna) obok siebie.
WinMain()
Definiuje punkt wejścia do aplikacji Win32; wywoływana przez system
operacyjny.

9
Zestaw funkcji przeznaczonych do zarządzania oknami nie ogranicza się oczywiście do wymienionych powyżej – biblioteka user32.dll w wersji 4.10.2222 zawiera ich aż 648. Do uzyskania pełnej ich listy można wykorzystać wspomniany wcześniej program narzędziowy impdef firmy Borland.
Usługi systemowe
Funkcje określane ogólnie mianem usług systemowych umożliwiają aplikacji zarządzanie i nadzorowanie stanu zasobów, dostęp do plików, folderów oraz urządzeń wejścia-wyjścia, a także rejestrację i obsługę błędów oraz wyjątków. Usługi systemowe obejmują także funkcje wykorzystywane przy tworzeniu programów innych niż „okienkowe”, np. tekstowych aplikacji Win32, usług i sterowników. Większość funkcji systemowych niskiego poziomu (w tym funkcje przeznaczone do obsługi plików, zarządzania pamięcią i innymi zasobami oraz obsługi pracy wielozadaniowej i wielowątkowej) zawarta jest w bibliotece implementującej jądro systemu ( kernel.dll). Funkcje jądra wykorzystywane są przez wszystkie programy przeznaczone dla Windows. Przykładowo, jeśli dana aplikacja wymaga dodatkowej pamięci (czy to podczas uruchamiania, czy w trakcie pracy), kieruje odpowiednie żądanie właśnie do jądra systemu. Podstawowe grupy i elementy usług systemowych zestawiono w tabeli 14.2.
Tabela 14.2. Najważniejsze grupy i elementy usług systemowych
Grupa lub element
Opis
Atomy Obsługa wymiany między aplikacjami łańcuchów tekstowych
identyfikowanych liczbami całkowitymi
Usługi komunikacyjne
Komunikacja z urządzeniami peryferyjnymi (porty szeregowe, równoległe
i modemy)
Obsługa konsoli
Obsługa wejścia-wyjścia w trybie tekstowym (dla aplikacji nie
korzystających z graficznego interfejsu użytkownika)
Usługi uruchomieniowe
Sterowany zdarzeniami system uruchomieniowy ( debugger)
Wejście-wyjście Komunikacja
pomiędzy aplikacją a sterownikami urządzeń
Dynamiczna wymiana
Wymiana danych pomiędzy aplikacjami. Funkcje DDE są obsługiwane
danych (DDE, Dynamic przez bibliotekę interfejsu użytkownika ( user32.dll) oraz bibliotekę Data Exchange)
DDEML ( Dynamic Data Exchange Management Library)
Biblioteki dynamiczne



 

 

 

 

 

 

 

 

 

 

 

 

   
 
  Windows management – Zarządzanie aplikacjami i oknami System services – Usługi systemowe Graphics Device Interface – Obsługa...
Pomodliłem się do każdego boga jaki istniał bym był w wstanie wkurzyć tę kobietę do granic możliwości.