Principiile de funcționare a interfeței de utilizare a sistemelor de operare din familia Windows se bazează pe conceptul de fereastră. Desktopul, bara de activități, listele, ferestrele de dialog, butoanele, meniurile sunt toate ferestrele. Prin urmare, de fapt, pentru a afișa orice element de interfață, trebuie să creați o fereastră Windows.
Necesar
- - compilator;
- - SDK Windows Platform.
Instrucțiuni
Pasul 1
Înregistrați clasa ferestrei de creat, dacă este necesar. Efectuați un apel către funcțiile API RegisterClass, RegisterClassEx sau utilizați funcționalitatea adecvată a cadrului utilizat.
Funcțiile RegisterClass și RegisterClassEx acceptă indicii către structuri de tip WNDCLASS și respectiv WNDCLASSEX ca singurul lor parametru. Valoarea returnată a tipului ATOM poate fi utilizată în locul numelui clasei la crearea unei ferestre. Dacă apelul funcțional eșuează, valoarea returnată este 0.
Instantați o structură de tip WNDCLASS sau WNDCLASSEX. Completați toate câmpurile necesare. În special, valorile corecte trebuie plasate în:
- cbSize - dimensiunea structurii în octeți;
- stil - un set de stiluri pentru clasa ferestrei;
- lpfnWndProc - pointer către o procedură de fereastră;
- hInstance este mânerul modulului în care este înregistrată clasa ferestrei;
- lpszClassName este numele simbolic al clasei.
Restul câmpurilor pot fi scrise cu valori NULL. Efectuați un apel funcțional pentru a înregistra clasa ferestrei. Verificați rezultatul returnat.
Pasul 2
Selectați o clasă de fereastră existentă, dacă este necesar. Trebuie să cunoașteți numele simbolic al clasei (cel trecut prin indicatorul lpszClassName când îl înregistrați) sau valoarea ATOM corespunzătoare. Clasa poate fi locală la nivel de aplicație, globală la nivel de aplicație (înregistrată cu semnalizatorul CS_GLOBALCLASS) sau clasă de sistem. Ultimul tip include clase de ferestre cu numele: Buton, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Clase precum RichEdit20W sau SysListView32 sunt înregistrate la încărcarea bibliotecilor corespunzătoare.
Pasul 3
Creați o fereastră Windows. Utilizați funcțiile API CreateWindow, CreateWindowEx sau metodele de împachetare adecvate pentru obiectele de clasă ale cadrului sau bibliotecii pe care le utilizați. Prototipul pentru funcția CreateWindowEx arată astfel:
HWND CreateWindowEx (DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nLățime, int nÎnălțime, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);
Funcția CreateWindow diferă de CreateWindowEx numai în absența parametrului dwExStyle.
Apelați CreateWindow sau CreateWindowEx. Treceți în parametrul lpClassName numele sau valoarea ATOM a clasei de ferestre pe care ați definit-o în primul sau al doilea pas. Parametrii x, y, nWidth, nHeight pot fi coordonatele și dimensiunile ferestrei create. Mânerul ferestrei părinte (dacă există) este trecut prin hWndParent.
Salvați și analizați valoarea returnată de CreateWindow sau CreateWindowEx. La succes, vor întoarce un mâner la noua fereastră; la eșec, NULL.