Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawy WINAPI - MessageBOX

Podobne prezentacje


Prezentacja na temat: "Podstawy WINAPI - MessageBOX"— Zapis prezentacji:

1 Podstawy WINAPI - MessageBOX
Temat: Podstawy WINAPI - MessageBOX

2 Funkcja WinMain #include <windows.h> int WINAPI WinMain( {
HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return 0; }

3 Funkcja MessageBox MessageBox( hWnd, lpText, lpCaption, uType )
Argument Znaczenie hWnd uchwyt okna, które jest właścicielem komunikatu. Jeśli okna akurat nie mamy, dajemy tu NULL, co oznacza bezpański komunikat lpText po prostu tekst komunikatu, który wyświetlamy lpCaption tytuł okienka komunikatu. Jeśli damy NULL, zostanie wybrany tytuł domyślny Error uType kombinacja stylów okienka komunikatu

4 Funkcja MessageBox #include <windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox( NULL, "Witaj świecie", "Moja pierwsza aplikacja", MB_ICONWARNING); return 0; }

5 uType – typy okienek MB_ABORTRETRYIGNORE MB_OK MB_OKCANCEL
MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL MB_ICONWARNING MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP lub MB_ICONERROR lub MB_ICONHAND

6 Funkcja MessageBox Funkcja MessageBox zwraca wartości:  O – jeśli nie zadziała (np. brak pamięci) IDABORT – przerwij IDCANCEL – anuluj IDRETRY – ponów IDIGNORE – ignoruj IDNO – nie IDYES – tak IDOK – ok

7 Temat: Podstawy WINAPI - Okno

8 Klasa okna WNDCLASSEX wc; (wc - to nasza nazwa) memset(&wc,0,sizeof(wc)); wc.cbSize = sizeof(WNDCLASSEX); wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszClassName = "WindowClass"; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hIconSm =LoadIcon(NULL, IDI_APPLICATION);

9 Klasa okna Pole Znaczenie cbSize
Rozmiar struktury w bajtach. Należy tu wpisać sizeof (WINDOWCLASSEX). style Style klasy. lpfnWndProc !!! Wskaźnik do procedury obsługującej okno (o tym później, na razie wpisujemy WndProc) cbClsExtra, cbWndExtra Dodatkowe bajty pamięci dla klasy. hInstance Identyfikator aplikacji, która ma być właścicielem okna (zazwyczaj pierwszy parametr naszej funkcji WinMain) hIcon Ikonka okna - duża ikonka, widać ją kiedy naciśniesz Alt-Tab.

10 Klasa okna Pole Znaczenie dalej … hCursor Kursor myszki. hbrBackground
Tło naszego okienka, czyli jego kolor i wzór. Wybieramy domyślne zdefiniowane. lpszMenuName Nazwa identyfikująca menu naszego okna w pliku zasobów. lpszClassName Nazwa klasy, którą tworzymy. hIconSm Mała ikonka naszej aplikacji.

11 Rejestracja okna if(!RegisterClassEx(&wc)) { MessageBox( NULL, "Window Registration Failed! ", "Error!", MB_ICONEXCLAMATION|MB_OK); return 0; }

12 Budowa okna hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, "WindowClass", "Caption", WS_VISIBLE|WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, x CW_USEDEFAULT, y 640, width 480, height NULL,NULL,hInstance,NULL);

13 Budowa okna Argument Znaczenie dwExStyle
Parametry okna. WS_EX_WINDOWEDGE, czyli ramki 3D. lpClassName Nazwa klasy okna, którą właśnie zarejestrowaliśmy lpWindowName Napis na pasku tytułowym okienka. dwStyle Style okienka. x, y Pozycja okna. CW_USEDEFAULT - domyślną pozycja. nWidth, nHeight Wymiary okienka. hWndParent Uchwyt okna nadrzędnego. hMenu Uchwyt menu dla naszego okna. NULL – brak menu. hInstance Uchwyt aplikacji, której przypisujemy okienko. Parametr hInstance, od systemu jako argument dla WinMain. lpParam Wskaźnik do dodatkowych parametrów. NULL – brak.

14 Pokazanie i odnowienie okna
ShowWindow( hwnd, nCmdShow ); UpdateWindow( hwnd );

15 Pętla komunikatów while(GetMessage(&Msg,NULL,0,0)>0) TranslateMessage(&Msg); DispatchMessage(&Msg); } //pętla przesyła komunikaty do WinProc

16 Obsługa zdarzeń WinProc
LRESULT CALLBACK WndProc( HWND hwnd,…. ) { switch( msg ) case WM_CLOSE: DestroyWindow( hwnd ); break; case WM_DESTROY: PostQuitMessage( 0 ); default: return DefWindowProc( hwnd, msg, wParam, lParam ); } return 0;

17 Podstawy WINAPI - przyciski i pola tekstowe
Temat: Podstawy WINAPI - przyciski i pola tekstowe

18 Klasy kontrolek BUTTON – przycisk EDIT – pole tekstowe LISTBOX - lista
COMBOBOX – lista rozwijana STATIC – tekst lub ikona statyczna

19 BUTTON - przykład HWND hPrzycisk; //deklaracja hPrzycisk = CreateWindowEx( 0, "BUTTON", „Pierwszy przycisk", WS_CHILD | WS_VISIBLE, 10, 10, 150, 30, hwnd, NULL, hInstance, NULL );

20 CHECKBOX - przykład HWND hPrzycisk; hPrzycisk = CreateWindowEx( 0, "BUTTON", "Checkbox", WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 50, 10, 150, 30, hwnd, NULL, hInstance, NULL );

21 BS_RADIOBUTTON - przykład
HWND hPrzycisk; hPrzycisk = CreateWindowEx( 0, "BUTTON", "Checkbox", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 90, 10, 150, 30, hwnd, NULL, hInstance, NULL );

22 EDIT - przykład HWND hText = CreateWindowEx( 0, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 10, 10, 200, 100, hwnd, NULL, hInstance, NULL );

23 EDIT - przykład HWND hText = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 10, 10, 200, 100, hwnd, NULL, hInstance, NULL );

24 CDN


Pobierz ppt "Podstawy WINAPI - MessageBOX"

Podobne prezentacje


Reklamy Google