Documente Academic
Documente Profesional
Documente Cultură
Home / My courses / PWINDOWS / Capitolul 1. Concepte fundamentale. Partea 2 / Punctul de intrare în program - inițializarea
Codul începe cu #include windows.h, unde windows.h este un fișier antet care definește în API-ul Windows tipurile și constantele.
În continuare, puteți vedea declarația în avans a funcției WndProc (prototipul), necesară pentru funcția WinMain.
Urmează funcția WinMain(), care este punctul de intrare în program și joacă același rol ca și funcția main() în mediul C convențional, cu excepția că
are mai mulți parametri, or o aplicație Windows GUI este mai complexă. Aici, în această aplicație foarte simplă, unii dintre acești parametri nici
măcar nu sunt folosiți.
/*******************************************************************
*******************************************************************/
LRESULT CALLBACK WndProc(HWND me, UINT sig, WPARAM wParam, LPARAM lParam);
/*----------------------------------------------------------------
*/
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(szCmdLine);
Dar urmează o parte interesantă, în care pregătim clasa de fereastră (tipul WNDCLASSEX) pentru a fi înregistrată în Windows.
Am formatat și comentat în mod special inițializarea, astfel încât să recunoașteți că aici vă angajați într-un fel de programare orientată obiect, așa
cum ați procedat în OOP cu limbajul C. Deci, în mod special, vedem mai întâi setarea atributelor unei instanțe din clasa ferestrei 'wnd', cum ar fi
stilul ferestrei, cursorul mouse-ului pentru fereastră și numele clasei ferestrei.
wnd.cbSize = sizeof(wnd);
wnd.cbClsExtra = 0;
wnd.hInstance = hInstance;
wnd.hbrBackground = GetStockObject(WHITE_BRUSH);
wnd.lpszMenuName = NULL;
wnd.hIconSm = NULL;
wnd.lpszClassName = "HelloWin";
wnd.lpfnWndProc = &WndProc; // attach the "window proc" // set "virtual" function of the 'wnd' object
hwnd = CreateWindow(
ShowWindow(hwnd, iShowCmd);
UpdateWindow(hwnd);
Urmează atribuirea funcției “virtuale” - procedura de fereastră - WndProc este funcția care va trata mesajele pentru această clasă de ferestre. Aici,
designerii API Windows au folosit tehnica simplă de implementare a încorporării unui pointer la funcția virtuală direct în structura atributelor.
Apoi, este apelată funcția Windows API – RegisterClassEx(&wnd), pentru a înregistra clasa de fereastră cu valorile setate ale atributelor.
Și în sfârșit, apelul la CreateWindow joacă rolul unui constructor, deoarece creează un obiect fereastră bazat pe clasa de ferestre chiar acum
înregistrată.
Odată creată fereastra aplicației, aceasta este afișată pe ecran (ShowWindow) și actualizată (UpdateWindow).