Podstawowe typy danych

Podobne dokumenty
Komunikaty w Windows. Jarosław Kuchta

Podstawy programowania w języku C dla środowiska Windows

Microsoft Visual C++

Procedura okna: LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam);

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Cechy systemu Windows

IFiZR Laboratorium 5 Info

Podstawowy projekt OpenGL utworzony przy użyciu środowisk programistycznych firmy Microsoft.

Obsługa zdarzeń. Wykład 4

Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (Delphi)

Algorytmy i struktury danych. wykład 1

Podstawy programowania w języku C dla środowiska Windows

Ćwiczenie Obsługa klawiatury i myszy

4 bity zarezerwowane dla przyszłych zastosowań 11 bitów określających źródło błędu 16 bitów określających rodzaj błędu.

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie obiektowe

1 WSTĘP. Źródło : Wymagania i terminologia

Najnowsza wersja dokumentu dostępna pod adresem

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Wst p... 9 Rozdzia" 1. WinMain fundament aplikacji Windows Rozdzia" 2. Rysowanie w oknie... 51

Dostęp do funkcji niskopoziomowych w.net Compact Framework

POLSKI. Macro Key Manager Podręcznik użytkownika

Tworzenie aplikacji rozproszonej w Sun RPC

Programowanie. Ćwiczenie Język C. Środowisko programowania Visual Studio

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Tworzenie aplikacji w języku Java

DLL Injection. Przejęcie kontroli nad procesem

Wykład 1

Formaty plików graficznych - wprowadzenie

Podstawy programowania w środowisku Windows. Oto identyfikatory najczęściej obsługiwanych meldunków (przedrostek WM to skrót od Windows message):

Projektowanie i programowanie aplikacji biznesowych. Wykład 2

Konfiguracja po czenia pomi dzy serwerem OPC, a sterownikiem PLC dla sieci Profibus

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

MYSZ I KLAWIATURA. Obsługa myszy. Wiele rzeczy wymyślono po to, aby nie trzeba było dużo myśleć. Regedit

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

s FAQ: 24/PL Data: DD/MM/RRRR

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

Tablet bezprzewodowy QIT30. Instrukcja obsługi

Programowanie w środowiskach RAD Język C++ w środowiskach RAD

Udostępnianie drukarki

Język ludzki kod maszynowy

Połączenia. Obsługiwane systemy operacyjne. Instalowanie drukarki przy użyciu dysku CD Oprogramowanie i dokumentacja

Programowanie Proceduralne

Następnie uruchom b-link z Menu Start lub ponownie uruchom komputer.

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Programowanie w języku C++ z użyciem Windows API

C#.NET. Podsłuchiwanie klawiatury

EasyLink. Instrukcja obsługi. Sterownik klawiatury brajlowskiej pod Windows wersja 1.2. Poznań, Sierpień 2009 r.

Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (C++ Builder)

Zegary. Zegary (timers) umożliwiają cykliczne w danych odstępach czasu wykonać określone operacje.

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox dla urządzeń kryptograficznych.

Wstęp do programowania 1

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

external Data Representation

Microsoft IT Academy kurs programowania

Struktury czyli rekordy w C/C++

Wykład 12: Obsługa Zdarzeń

Messenger. Novell 1.0 WYSZUKIWANIE DOKUMENTACJI PRODUKTU NOVELL MESSENGER. SZYBKI START

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie współbieżne i rozproszone

Sprawdzanie połączenia sieciowego

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

Tablet bezprzewodowy QIT30. Oprogramowanie Macro Key Manager

Praca w środowisku Visual Studio 2008, Visual C

Do nich też i tylko do nich będzie się w tym rozdziale odnosić sam termin okno.

1.1. Programowanie dla Windows. Programowanie dla Windows. Komunikaty w systemie Windows. Application Programming Interface

Sun RPC/XDR. Dariusz Wawrzyniak 1

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu MacOS

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Volcano MC-GM4 OPTICAL MOUSE USER S MANUAL MODECOM

Sun RPC/XDR 10. listopada Dariusz Wawrzyniak (IIPP) 1

external Data Representation

Programowanie współbieżne. Tworzenie i obsługa semaforów oraz wątków przy użyciu funkcji Windows API.

5.4.2 Laboratorium: Instalacja systemu Windows XP

Volcano MC-GMX4 OPTICAL MOUSE USER S MANUAL MODECOM

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Programowanie RAD Delphi

Obiekty w plikach wykonywalnych, marshaling

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.5

Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Programowanie obiektowe

LABORATORIUM SYSTEMÓW POMIAROWYCH KTP IR PW MATERIAŁY POMOCNICZE DO ĆWICZENIA 1 SYMULATOR SYSTEMU POMIAROWEGO W STANDARDZIE IEC-625.

PROE wykład 8 Interfejs użytkownika (GUI) dr inż. Jacek Naruniec

2018 Marcin Kukliński. Niesforne bity i bajty

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

Struktury, unie, formatowanie, wskaźniki

Protokół ARP. dr Zbigniew Lipiński. Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

na podstawie bazy Oracle NoSQL

Delphi podstawy programowania. Dialogi

PROGRAMOWANIE w C prolog

Programowanie obiektowe zastosowanie języka Java SE

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

Transkrypt:

Wykład 2-1 Podstawowe typy danych typedef short SHORT; typedef unsigned short WORD; typedef unsigned long DWORD; #if defined(_win64) typedef int64 INT_PTR; #else typedef int INT_PTR; #endif typedef DWORD COLORREF; typedef DWORD *LPCOLORREF; typedef PVOID HANDLE; typedef HANDLE *LPHANDLE; typedef HANDLE HWND; typedef HANDLE HINSTANCE; typedef LONG_PTR LPARAM; typedef UINT_PTR WPARAM; typedef LONG_PTR LRESULT; // 16-bit // 32-bit

Wykład 2-2 Podstawowe typy dla znaków typedef wchar_t WCHAR; #ifdef UNICODE typedef WCHAR TCHAR; #else typedef char TCHAR; #endif typedef CHAR *PCHAR; typedef CHAR *PSTR; typedef CHAR *LPSTR; typedef WCHAR *LPWSTR; #ifdef UNICODE typedef LPWSTR LPTSTR; #else typedef LPSTR LPTSTR; #endif typedef nullterminated CONST CHAR *LPCSTR; typedef CONST WCHAR *LPCWSTR; #ifdef UNICODE typedef LPCWSTR LPCTSTR; #else typedef LPCSTR LPCTSTR; #endif

Wykład 2-3 Notacja węgierska bdone ctotal chfirstletter dwvalue fdone nsize fpprice dbvalue pptr rgvalues szname psztext lpszwindowtext wvalue uwvalue lvalue hwndmain m_something m_rgfpvalues boolean / byte counter int, long, uint etc. character double word flag boolean integer floating-point double pointer range array zero-terminated string pointer to zero-terminated string long pointer to zero-terminated string word unsigned word long handle of a window member of a class array of floating-point values

Wykład 2-4 Makra int GET_X_LPARAM(LPARAM lparam); int GET_Y_LPARAM(LPARAM lparam); BYTE HIBYTE(WORD wvalue); BYTE LOBYTE(WORD wvalue); WORD HIWORD(DWORD dwvalue); WORD LOWORD(DWORD dwvalue); DWORD MAKELONG(WORD wlow, WORD whigh); WORD MAKEWORD(BYTE blow, BYTE bhigh); WPARAM MAKEWPARAM(WORD wlow, WORD whigh); LPARAM MAKELPARAM(WORD wlow,word whigh); LRESULT MAKELRESULT(WORD wlow, WORD whigh);

Wykład 2-5 Struktury graficzne typedef struct tagpoint { LONG x; LONG y; } POINT, *PPOINT; typedef struct tagpoints { SHORT x; SHORT y; } POINTS, *PPOINTS; typedef struct _RECT { LONG left; LONG top; LONG right; LONG bottom; } RECT, *PRECT; typedef struct tagsize { LONG cx; LONG cy; } SIZE, *PSIZE;

Wykład 2-6 Obsługa myszy Komunikaty obszaru klienta WM_MOUSEMOVE WM_LBUTTONDOWN,...UP,...DBLCLK (L, M, R) WM_MOUSEHOVER, WM_MOUSELEAVE, TrackMouseEvent() wparam powyższych komunikatów: MK_LBUTTON, MK_MBUTTON, MK_RBUTTON, MK_CONTROL, MK_SHIFT Pozostałe komunikaty WM_NCHITTEST WM_NCMOUSEMOVE WM_NCLBUTTONDOWN,...UP,...DBLCLK WM_NCMOUSEHOVER, WM_NCMOUSELEAVE Dwuklik - CS_DBLCLKS w klasie okna kolejność komunikatów: DOWN, UP, DBLCLK, UP

Wykład 2-7 Cechy myszy Kursor kolorowy, animowany, z punktem wskazującym (hot spot) LoadCursor(), LoadImage(), LoadCursorFromFile() GetCursorPos(), SetCursorPos() ShowCursor(), GetCursorInfo(), ClipCursor() SetClassLong(), CopyCursor(), DestroyCursor() WM_SETCURSOR Przechwytywanie myszy poza oknem (capture) sposób na otrzymywanie komunikatów myszy poza obszarem okna SetCapture(), ReleaseCapture(), WM_CAPTURECHANGED Ustawienia GetSystemMetrics(), SystemParametersInfo()

Wykład 2-8 Dodatkowe możliwości myszy Wheel [od 95/NT 3.51] obsługa pokrętła myszy WM_MOUSEWHEEL ClickLock [Me/XP] ignorowanie puszczenia przycisku Sonar [Me/XP] rysowanie okręgów wokół kursora po naciśnięciu CTRL Vanish [Me/XP] ukrycie kursora podczas pisania na klawiaturze XBUTTONs [2000+] obsługa myszy z 5 przyciskami

Wykład 2-9 Schemat działania klawiatury 1. Użytkownik naciska lub puszcza klawisz 2. Klawiatura wysyła do sterownika scan code klawisza scan code - zależny od klawiatury identyfikator klawisza 3. Sterownik określa virtual-key code klawisza virtual-key code - niezależna od klawiatury wartość określająca zastosowanie klawisza 4. Do systemowej kolejki komunikatów dodawany jest komunikat zawierający scan code i virtual-key code 5. System pobiera komunikat z kolejki i przesyła go do kolejki wątku, którego okno ma focus 6. Pobrany z kolejki komunikat trafia do procedury okna

Wykład 2-10 Obsługa klawiatury Komunikaty przycisków WM_KEYDOWN, WM_KEYUP WM_SYSKEYDOWN, WM_SYSKEYUP autopowtarzanie: wiele WM_KEYDOWN, jeden WM_KEYUP sprawdzać licznik powtórzeń w parametrze komunikatu Komunikaty znaków generowane z komunikatów przycisków za pomocą TranslateMessage() WM_CHAR, WM_DEADCHAR, WM_SYSCHAR, WM_SYSDEADCHAR, WM_UNICHAR Konwersje MapVirtualKey(), ToAscii(), ToUnicode(), VkKeyScan()

Wykład 2-11 Cechy klawiatury Focus focus może mieć tylko okno aktywne lub jego potomne SetFocus(), GetFocus() WM_SETFOCUS, WM_KILLFOCUS Caret graficzny wskaźnik pozycji kursora klawiatury CreateCaret(), DestroyCaret() ShowCaret(), HideCaret() GetCaretBlinkTime(), SetCaretBlinkTime() GetCaretPos(), SetCaretPos() Stan przycisków GetKeyState(), GetAsyncKeyState() GetKeyboardState(), SetKeyboardState()

Dodatkowe możliwości klawiatury Hot-key kombinacja klawiszy generująca WM_HOTKEY rejestracja: RegisterHotKey() wyrejestrowanie: UnregisterHotKey() WM_SETHOTKEY ustawienie skrótu klawiszowego aktywującego okno z komunikatem WM_SYSCOMMAND Klawisze specjalne [Me/2000] WM_APPCOMMAND Ustawienia językowe LoadKeyboardLayout(), UnloadKeyboardLayout() ActivateKeyboardLayout() Symulacja klawiatury i myszy SendInput() [98/NT4SP3] keybd_event(), mouse_event() [95/NT3.51] Wykład 2-12

Wykład 2-13 Historia systemu Windows Xerox, graficzny interfejs, lata 70-te MS-DOS 1981 Macintosh styczeń 1984 Windows 1.0 20.11.1985 Windows 2.0 9.12.1987 OS/2 1.1 październik 1988 Windows 3.0 22.05.1990 Windows 3.1 kwiecień 1992 Windows 95 24.08.1995 Windows 98 25.06.1998 Windows Me 19.06.2000 Windows NT 3.1 27.07.1993 Windows NT 4.0 29.07.1996 Windows 2000 17.02.2000 Windows XP 25.10.2001 Windows Server 2003 24.04.2003 Windows Vista 30.01.2007 Windows Home Server 16.06.2007 Windows Server 2008 27.02.2008 Windows 7 wersja beta od stycznia 2009

Wersje Windows http://en.wikipedia.org Wykład 2-14

Wykład 2-15

Sprawdzanie wersji Windows GetVersionEx() major minor platformid producttype 95 4 0 VER_PLATFORM_WIN32_WINDOWS 98 4 10 VER_PLATFORM_WIN32_WINDOWS Me 4 90 VER_PLATFORM_WIN32_WINDOWS NT 3.51 3 51 VER_PLATFORM_WIN32NT NT 4.0 4 0 VER_PLATFORM_WIN32NT 2000 5 0 VER_PLATFORM_WIN32NT XP 5 1 VER_PLATFORM_WIN32NT 2003 5 2 VER_PLATFORM_WIN32NT VerifyVersionInfo() Wykład 2-16 Vista 6 0 VER_PLATFORM_WIN32NT VER_NT_WORKSTATION 2008 6 0 VER_PLATFORM_WIN32NT VER_NT_SERVER 7 6 1 VER_PLATFORM_WIN32NT VER_NT_WORKSTATION 2008 R2 6 1 VER_PLATFORM_WIN32NT VER_NT_SERVER

Wykład 2-17 Statystyki użycia systemów operacyjnych Systemy operacyjne użytkowników Internetu: Polska Świat Windows XP 84,1% Windows XP 71,4% Windows Vista 13,6% Windows Vista 15,6% Windows 2000 0,6% Mac 5,3% Windows 98 0,6% Linux 3,8% Linux 0,4% Windows 2000 1,7% MacOS X 0,3% Windows 2003 1,7% Windows 2003 0,1% Windows 98 0,1% Windows ME 0,1% http://www.ranking.pl styczeń 2009 http://www.w3schools.com grudzień 2008