Podstawy WINAPI - MessageBOX

Slides:



Advertisements
Podobne prezentacje
Funkcje w PHP ABK.
Advertisements

Programowanie Windows
Jarosław Kuchta Komunikaty w Windows.
Programowanie wizualne
Programowanie wizualne
Programowanie wizualne
Programowanie w języku C++. Jak napisać prosty program obliczeniowy lub grę komputerową? Zbigniew Nagórny Pracownia Komputerowa Wyższa Szkoła Humanistyczno-Przyrodnicza.
Prowadzący: mgr inż. Elżbieta Majka
Algorytmy – zapis struktur programowania
Języki programowania C++
Standardowe kontrolki (1)
Programowanie Lokalnych Aplikacji .NET
Programowanie w języku Visual Basic
Ćwiczenie (1) Dostosuj poniższy program do swojego programy zaliczeniowego. (Plik z programem jest dostępny pod adresem
Język ANSI C Operacje we/wy
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
DELPHI.
Tworzymy GAZETKĘ SZKOLNĄ w programie Publisher
C# Windows Forms Zastosowania Informatyki Wykład 3
C# Windows Forms Zastosowania Informatyki Wykład 4, 5
C# Windows Forms Zastosowania Informatyki Wykład 2
autor: Andrzej Seneczko
Programowanie w Środowisku Windows Common controls.
Mateusz Antonow. Tekst Obraz Galeria Media Kształty & linie Przyciski & menu Sklep Internetowy Ustawienia Społecznościowe Aplikacje 3. Dodaj.
VISUAL BASIC FOR APLICATION (VBA)
Obiekty dynamiczne Tworzenie klas 3 MPDI Programowanie obiektowe W4.
Programowanie w Środowisku Windows
Czym jest JavaFX? Rich Internet Application
Podstawy programowania II
Win32 i DirectX. Czym jest DirectX ? API umożliwiające/ułatwiające zarządzanie głównie grafiką (2D/3D) i dźwiękiem zazwyczaj wykorzystywane w grach.
Programowanie w środowisku DELPHI
sortowanie na bazie – wykorzystanie sortowania ze zliczaniem
ANNA BANIEWSKA SYLWIA FILUŚ
Programowanie strukturalne i obiektowe
Programowanie obiektowe – zastosowanie języka Java SE
Programowanie w Środowisku Windows
Urzekające kwiatki w gimpie Samouczek
Programowanie komponentowe jesień-zima 2013
Sieć oparta o serwer Ubuntu 12.10
Na pasku komunikatów kliknij przycisk Włącz edytowanie,
Visual Basic w Excelu.
Ujarzmić Worda Agnieszka Terebus.
Ms Access Formularze i raporty Marzena Nowakowska KIS, WZiMK, PŚk
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Systemy operacyjne Wykład 3a Działanie aplikacji okienkowej dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki
Temat 3: Okno dialogowe.
Tworzenie graficznego interfejsu użytkownika (GUI)
1 dynamiczny przydział pamięci malloc() free() realloc() calloc() memset() memcpy( ) mempcpy( ) memmove() (wskaźniki!! )
1 Uzupełnienie dot. przekazywania argumentów #include struct nowa { int f; char line[20000]; int k; } reprezentant; int main() { void funkcja7( struct.
VISUAL BASIC FOR APLICATION (VBA)
Wprowadzenie do programowania w WIN32 API Podstawy architektury Windows Witold Bartkiewicz.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Komunikaty Windows Jacek Matulewski 22 września 2012 Programowanie Windows
Wykład 9 Programowanie w Windows 1.Programowanie zdarzeniowe 2.Zdarzenia obsługiwane przez Windows 3.Aplikacja obsługująca klawisz myszki 4.AppWizard PO9-1.
Wykład 10 Programowanie w Windows 1.Aplikacja dialogowa (Dialog Based) PO10-1 / 26.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Wykład 4 Dr Aneta Polewko-Klim
Wykład 3 Dr Aneta Polewko-Klim
Jacek Matulewski 21 listopada 2016
Grafika i komunikacja człowieka z komputerem
Programowanie obiektowe – zastosowanie języka Java SE
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5
Dane, zmienne, instrukcje
Tworzenie graficznego interfejsu użytkownika (GUI)
Zapis prezentacji:

Podstawy WINAPI - MessageBOX Temat: Podstawy WINAPI - MessageBOX

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

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

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; }

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

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

Temat: Podstawy WINAPI - Okno

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);

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.

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.

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

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);

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.

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

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

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;

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

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

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

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

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 );

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

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 );

CDN