Izrada aplikacije sa prozorom-Vezbe-Programiranje za Windows-Informatika, Vežbe' predlog Programiranje za Windows. Singidunum University
dcplover
dcplover1 July 2013

Izrada aplikacije sa prozorom-Vezbe-Programiranje za Windows-Informatika, Vežbe' predlog Programiranje za Windows. Singidunum University

PDF (74 KB)
3 strane
566broj poseta
Opis
informatika, programiranje za windows, vezbe, izrada aplikacija sa prozorom, zadaci sa vezbi, zadaci za progamiranje windowsa
20poeni
poeni preuzimanja potrebni da se preuzme
ovaj dokument
preuzmi dokument
pregled3 strane / 3
preuzmi dokument

VJEŽBA 1 Za Visual Studio 6.0 projekt aplikacije je Win 32 Application (File->New->Win 32 Application->An Empty Project->OK). U projekt se doda C++ Source File (File->New->Win 32 Application->An Empty Project) u koji se piše kod.

Za Dot.Net projekt aplikacije se dobije sa (File->New->Project->Visual C++ Projects- >Win32->OK->Izabrati opciju Applications Settings->Application Type treba biti Windows Application i Additional Options treba biti Empty Project. U Source File sa desnom tipkom miša dobije se izbornik za Add->Add New Item->C++ File u koji se piše kod.

Napraviti aplikaciju sa jednim prozorom.

1. Izvršavanje aplikacije počima od funkcije int WINAPI WinMain(HINSTANCE instanca,HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)

2. U pozivu WinMain funkcije definirati vlastitu klasu prozora WNDCLASSEX mojprozor

-članovi strukture WNDCLASSEX koje obavezno trebaju biti inicijalizirani: veličina memorije potrebna za našu klasu mojprozor.cbSize = sizeof(WNDCLASSEX); Mojafunkcijazaobradu je ime naše definirane procedure za obradu poruka prozora klase

mojprozor mojprozor.lpfnWndProc = Mojafunkcijazaobradu; instanca je handle na proces u kojem se prozor stvara, to je prvi argument funkcije

WinMain mojprozor.hInstance = instanca; imeklase je LPCTSTR pokazivač na konstanti string - jedan od načina deklaracije je

deklaracija konstantnog niz karaktera npr. const char imeklase[] = "Moja_klasa_prozor"

mojprozor.lpszClassName = imeklase; hbrBackground je boja pozadine prozora - ukoliko se stavi 0 prozor će biti proziran zato

stavite boju prozor mojprozor.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);

-preostale članove strukture WNDCLASSEX postaviti na 0: mojprozor.style = 0; mojprozor.cbClsExtra = 0; mojprozor.cbWndExtra = 0; mojprozor.hIcon = NULL; mojprozor.hCursor = NULL; mojprozor.lpszMenuName = NULL; mojprozor.hIconSm = NULL;

3. Registrirati vlastitu klasu prozora pomoću funkcije ATOM RegisterClassEx(CONST WNDCLASSEX *lpwcx)

npr: if(!RegisterClassEx(&mojprozor)) {

MessageBox(NULL, "Neuspjela registracija prozora!", "Greška!",MB_ICONEXCLAMATION | MB_OK);

return 0; }

4. Pozvati funkciju HWND CreateWindowEx(DWORD dwExStyle,LPCTSTR lpClassName,LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam) za kreiranje prozora. Funkcije vraća handle na kreirani prozor.

npr: hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,imeklase, "Naslov prozora",WS_OVERLAPPEDWINDOW , 0, 0, 240, 120, NULL, NULL, hInstance, NULL);

5. Pozvati funkcije za prikaz prozora BOOL ShowWindow(HWND hWnd,int nCmdShow) i BOOL UpdateWindow( HWND hWnd)

npr: ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd);

6. Napraviti petlju za čitanje poruka

npr: while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); }

ili: for (;;) { while (PeekMessage(&Msg, NULL, 0, 0,PM_REMOVE)) { if (Msg.message == WM_QUIT) return Msg.wParam; TranslateMessage(&Msg); DispatchMessage(&Msg); } WaitMessage(); }

7. Napraviti proceduru za obradu poruka prozora

npr: LRESULT CALLBACK Mojafunkcijazaobradu(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

{ switch(msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break;

default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0;

}

8. Iskompajlirati i pokrenuti aplikaciju.

9. Promijenit kod tako da se prilikom pokretanja aplikacije prozor prikaže maksimiziran (preko cijelog ekrana). Pogledati u MDSN-u za funkciju ShowWindow koja vrijednost argumenta nCmdShow treba biti postavljena.

10. Vratiti prikazivanje prozora na stvarnu, a ne na maksimiziranu vrijednost. Promijeniti boju prozora u neku željenu boju. Koristiti član strukture WNDCLASSEX hbrBackground i funkciju HBRUSH CreateSolidBrush(COLORREF crColor ) za promjenu boje prozora. COLORREF je 32-bitna vrijednost koja određuje RGB boju. RGB makro određuje boju na osnovu komponenti. COLORREF RGB(BYTE bRed, BYTE bGreen, BYTE bBlue)

npr: mojprozor.hbrBackground = (HBRUSH)(CreateSolidBrush(RGB(0xFF,0,0)));;

11. Podesiti u funkciji CreateWindowEx argument x i y da se prozor prikažen centriran na ekranu.

12. Probati neke druge vrijednosti dwExStyle i dwStyle argumenata (MSDN) funkcije CreateWindowEx i pogledati što se dešava sa prozorom.

komentari (0)
nema postavljenih komentara
budi prvi koji ce napisati!
preuzmi dokument