Introducere în programarea API

Introducere în programarea API

API este interfața de programare a aplicațiilor. Cu alte cuvinte, acestea sunt caracteristicile pe care le oferă sistemul de operare Windows pentru utilizarea de către programele de aplicații. Funcțiile sistemului pe care Windows le furnizează programatorului se numesc funcții API. Programarea folosind doar aceste funcții se numește programare API. În acest articol vom oferi o introducere destul de largă în programul API.

Structura programelor API

Noțiunea centrală de programare într-un mediu Windows este un mesaj. Sistemul trimite un mesaj către aplicație și apoi, la rândul său, ar trebui să răspundă în mod corespunzător la aceasta. Destinatarii mesajelor sunt funcțiile ferestrelor de aplicații, programarea cărora durează cea mai mare parte a timpului când se dezvoltă aplicații API.

Structura clasică a unui program API este definită de patru componente: inițializare; un ciclu de așteptare sau o buclă de mesaje; funcția ferestrei principale; alte funcții. În cel mai simplu caz, ultima componentă poate fi absentă. Primele două componente sunt localizate în funcția WinMain. Deci, totul în ordine.

Funcția WinMain

Funcția WinMain este apelată de sistem, în care sunt transmise patru parametri:

  • hInstanța este descriptorul instanței actuale a cererii.
  • hPrevInctance - întotdeauna egal cu NULL.
  • lpCmdLine - un indicator la linia de comandă a programului lansat.
  • nCmdShow este o modalitate de a face o fereastră.

iniţializarea

Pe scurt, clasa ferestrelor este înregistrată, creată și trimisă către ikran. Înregistrarea sălilor de clasă se realizează prin funcția:

Tipul ATOM nu vă deranjează, pentru noi este doar int. Singurul parametru de funcție este un indicator pentru structura WNDCLASS. După ce clasa este înregistrată, o fereastră din această clasă poate fi creată de funcția CreateWindow. Acum, să examinăm structura WNDCLASS:

După cum puteți vedea, nu există nimic complicat în structură. Dacă înregistrarea a avut succes, pe care o învățăm prin valoarea de returnare zero, atunci puteți crea o fereastră.

Să enumerăm câteva valori tipice ale membrilor structurii:

  • Stiluri de ferestre. Stilul ferestrei este determinat de combinația mai multor constante predefinite. Destul de des este zero, ceea ce înseamnă "stil implicit".
  • Descriptorul pictogramei ferestrei. Acesta este definit folosind funcția LoadIcon. Primul parametru al acestei funcții este descriptorul aplicației, al doilea este șirul care specifică numele pictogramei din resurse. Pentru a seta una dintre pictogramele standard, primul parametru trebuie să fie NULL, iar a doua valoare a uneia dintre următoarele constante: IDI_APLICATION - pictograma standard a aplicației; IDI_ASTERISK - pictograma "informații"; IDI_EXCLAMATION - "punct de exclamare"; IDI_HAND - "semn de oprire"; IDI_QUESTION este un "semn de întrebare".
  • Descriptorul cursorului. Pentru a determina cursorul, utilizați funcția API LoadCursor. Funcția este similară cu funcția LoadIcon.
  • Numele clasei. Numele clasei este doar un șir, care este apoi folosit pentru a crea fereastra.

Vom cunoaște mai târziu semnificațiile celorlalți membri ai structurii.
Fereastra este creată de funcția CreteWindow. Iată prototipul acestei funcții:

Utilizarea acestei funcții va fi discutată ulterior. Principalul lucru este că funcția returnează descriptorul ferestrei create, dacă eroarea este 0.
Pentru a afișa corect fereastra de pe ecran, trebuie să efectuați alte două funcții.

BOOL ShowWindow (HWND hWnd, int nCmdShow) - această funcție afișează o fereastră pe ecran. Primul parametru este descriptorul ferestrei, al doilea este modul de afișare. Parametrul nWinMode al funcției WinMain este utilizat de obicei ca parametru. De asemenea, puteți utiliza constante predefinite:

  • SW_HIDE - ascunde fereastra
  • SW_MAXIMIZE - maximizați fereastra
  • SW_MINIMIZE - minimizați fereastra și activați fereastra de sus
  • SW_RESTORE - afișează fereastra în stare normală
  • SW_SHOW - Activați fereastra cu modificările curente
  • SW_SHOWMAXIMIZED - maximizați fereastra și activați-o
  • SW_SHOWMINIMIZED - minimizați fereastra
  • SW_SHOWNA - afișează fereastra în starea sa actuală. În acest caz, lăsați fereastra activată activă.
  • SW_SHOWNOACTIVATE - restabilește fereastra în starea sa anterioară. Fereastra activă rămâne activă.
  • SW_SHOWNORMAL - activați și restaurați fereastra cu aceeași dimensiune.

BOOL UpdateWindow (HWND hWnd) - apelarea acestei funcții are ca rezultat redesenarea imediată a ferestrei și trimiterea funcției ferestrei mesajului WM_PAINT.

Buclă de procesare a mesajelor

Buclele de procesare a mesajelor sunt prezente în toate programele Windows. Este adevărat că acest ciclu nu este întotdeauna reprezentat explicit în program.

Există trei funcții în bucla mesajului. Aceste funcții există întotdeauna, dar în afară de acestea pot exista și altele în ciclu. Funcția GetMessage selectează următoarea aplicație din coada de mesaje a aplicației. În locul acestei funcții sunt utilizate și funcțiile PostMessage și PeekMessage.
Toate cele trei funcții au un pointer la șirul MSG. Vom analiza:

  • hwnd este descriptorul ferestrei.
  • mesaj - codul mesajului.
  • wParam este un parametru opțional.
  • lParam este un parametru opțional.
  • ora - ora la care a fost trimis mesajul.
  • pt este poziția cursorului mouse-ului.

Prototipul funcției MessageBox.

Primul parametru al funcției este un indicator al șirului MSG, unde vor fi plasate informațiile primite. Al doilea parametru este descriptorul ferestrei la care este destinat mesajul. Dacă parametrul este NULL, toate mesajele primite de către aplicație sunt "respinse". Ultimii doi parametri definesc intervalul de mesaje. Pentru a primi mesaje din întreaga gamă, acești parametri trebuie să fie egali cu 0.

Funcția TransmiteMessage prefixează mesajele WM_KEYDOWN și WM_KEYUP la WM_CHAR. Funcția DispatchMessage transmite pur și simplu mesajul în procedura ferestrei.

Funcție fereastră

Aceasta este o altă componentă responsabilă pentru procesarea mesajelor din fereastră. Această funcție este apelată de sistem și are patru parametri care coincid cu primii patru membri ai structurii MSG. Arta programării API este în principal în scrierea funcțiilor ferestrei. Iată un exemplu de funcție de fereastră:

Mediul Visual C ++ oferă un ajutor celor care doresc să scrie programe API. Puteți profita de una din cele două posibilități. În lista proiectelor, alegeți Win32 Project și apoi urmați unul din cele două moduri: debifați Project Empty sau nu. Dacă nu bifați caseta, sistemul va crea o aplicație simplă de ferestre cu o funcționalitate minimă, care, totuși, vă permite să vă dezvoltați proiectul și să creați aplicații de orice complexitate.

Și așa vom începe. Alegeți o cale, un proiect simplu. Deschideți fereastra Explorer Solution. După cum v-ați aștepta, proiectul este gol. Faceți clic dreapta pe linia de proiect și selectați Adăugați un nou element, tipul fișierului este CPP și introduceți numele api1.cpp. Acum putem folosi Swami pentru a folosi ceea ce ai învățat deja. Cum să stăm, suntem ușurați de numărul minim de fișiere. Fișierul windows.h care trebuie inclus include definiții ale tuturor funcțiilor API, precum și constantele și tipurile de date necesare pentru a le utiliza. Iată codul pentru acest program:

Articole similare