Cechy systemu Windows

Wielkość: px
Rozpocząć pokaz od strony:

Download "Cechy systemu Windows"

Transkrypt

1 Cechy systemu Windows Wielozadaniowość Współdzielenie zasobów sprzętowych: ekran klawiatura mysz pamięć dysk Wymiana danych pomiędzy aplikacjami Niezależna sprzętowo grafika Zdefiniowany w systemie interfejs użytkownika Biblioteki dynamiczne

2 Prefiks b c cx,cy dw h l n p pt rc str sz w wnd Notacja węgierska Typ BOOL char odległość wzdłuż osi X, Y DWORD uchwyt LONG int wskaźnik CPoint lub POINT CRect lub RECT CString string zakończony zerem WORD CWnd

3 Budowanie aplikacji Pliki z kodem źródłowym *.cpp *.h Plik zasobów *.rc elementy interfejsu użytkownika ikony czcionki bitmapy menu paski narzędzi okna dialogowe biblioteki statyczne *.lib dynamiczne *.dll

4 Obsługa wiadomości

5 Obsługa wiadomości

6 Obsługa wiadomości WM_DESTROY

7 Przykładowa aplikacja Wersja tekstowa #include <stdio.h> void main( void ) { printf( Hello world! ); } Wersja graficzna

8 Przykładowa aplikacja #include <windows.h> LONG WINAPI WndProc( HWND, UINT, WPARAM, LPARAM ); int WINAPI WinMain( HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpszcmdline, int ncmdshow ) { static char szappname[] = MyApp ; WNDCLASS wc; HWND hwnd; MSG msg; wc.style = 0; //styl klasy wc.lpfnwndproc = (WNDPROC)WndProc; //adres procedury obsługi zdarzeń wc.cbclsextra = 0; //liczba bajtów obszaru danych klasy wc.cbwndextra = 0; //liczba bajtów obszaru danych okna wc.hinstance = hinstance; //uchwyt do instancji aplikacji wc.hicon = LoadIcon( NULL, IDI_APPLICATION ); //uchwyt do ikony wc.hcursor = LoadCursor( NULL, IDC_ARROW ); //uchwyt do kursora wc.hbrbackground = COLOR_WINDOW + 1; //kolor tła wc.lpszmenuname = NULL; //nazwa menu wc.lpszclassname = szappname; //nazwa klasy RegisterClass( & wc );

9 Przykładowa aplikacja hwnd = CreateWindow( szappname, //nazwa WNDCLASS szappname, //tytuł okna WS_OVERLAPPEDWINDOW, //styl okna CW_USEDEFAULT, CW_USERDEFAULT, //pozycja CW_USEDEFAULT, CW_USEDEFAULT, //rozmiar HWND_DESKTOP, //uchwyt do okna rodzica NULL, //uchwyt do menu hinstance, //uchwyt do instancji aplikacji NULL ); //dane (tworzenie okna) ShowWindow( hwnd, ncmdshow ); UpdateWindow( hwnd ); //pętla obsługi wiadomości while( GetMessage( & msg, NULL, 0, 0 ) ) //pobranie wiadomości z kolejki { TranslateMessage( & msg ); //przekształcenie wiadomości (klawiatura) DispatchMessage( & msg ); //przekazanie wiad. do proc. obsługi zdarzeń } return msg.wparam; }

10 Przykładowa aplikacja LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { PAINTSTRUCT ps; HDC hdc; RECT rect; switch( message ) { case WM_PAINT: hdc = BeginPaint( hwnd, & ps ); GetClientRect( hwnd, & rect ); DrawText( hdc, Hello Windows!, -1, & rect, DT_SINGLELINE DT_CENTER DT_VCENTER ); EndPaint( hwnd, & ps ); return 0; case WM_DESTROY: PostQuitMessage( 0 ); //wysłanie wiadomości WM_QUIT return 0; } return DefWindowProc( hwnd, message, wparam, lparam ); }

11 Przetwarzanie wiadomości WM_PAINT WM_SIZE WM_COMMAND WM_TIMER WM_KEYDOWN Kolejka wiadomości Aplikacja WinMain Procedura obsługi zdarzeń okna Pętla obsługi wiadomości DefWindowProc

12 Funkcje Windows API typedef struct _WNDCLASS { UINT style; //styl klasy WNDPROC lpfnwndproc; // adres procedury obsługi zdarzeń int cbclsextra; // liczba bajtów obszaru danych klasy int cbwndextra; // liczba bajtów obszaru danych okna HANDLE hinstance; //uchwyt do instancji aplikacji HICON hicon; //uchwyt do ikony HCURSOR hcursor; //uchwyt do kursora HBRUSH hbrbackground; //kolor tła LPCTSTR lpszmenuname;//nazwa menu LPCTSTR lpszclassname;//nazwa klasy } WNDCLASS; ATOM RegisterClass{ CONST WNDCLASS *lpwc ); int WinMain( HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpszcmdline, int ncmdshow ); // uchwyt do instancji aplikacji // uchwyt do poprzedniej instancji aplikacji // adres linii poleceń // sposób wyświetlenia okna

13 Funkcje Windows API HWND CreateWindow( LPCTSTR lpszclassname, LPCTSTR lpszwindowname, DWORD dwstyle, int x, int y, int nwidth, int nheight, HWND hwndparent, HMENU hmenu, HANDLE hinst, LPVOID lpvparam ); BOOL ShowWindow( HWND hwnd, // uchwyt do okna int ncmdshow ); // sposób wyświetlenia okna BOOL UpdateWindow( HWND hwnd ); // uchwyt do okna // nazwa klasy (WNDCLASS) // tytuł okna // styl okna // położenie okna (x) // położenie okna (y) // szerokość okna // wysokość okna // uchwyt do okna rodzica // uchwyt do menu // uchwyt do instancji aplikacji // dane (tworzenie okna)

14 typedef struct tagmsg { HWND hwnd; UINT message; WPARAM wparam; LPARAM lparam; DWORD time; POINT pt; } MSG; BOOL GetMessage( LPMSG lpmsg, HWND hwnd, UINT umsgfiltermin, UINT umsgfiltermax ); Funkcje Windows API BOOL TranslateMessage( MSG *lpmsg ); LONG DispatchMessage( CONST MSG *lpmsg ); // uchwyt do okna (odbiorca wiadomości) // numer wiadomości // parametr wiadomości // parametr wiadomości // czas wysłania wiadomości // pozycja kursora w chwili wysłania wiadomości // adres struktury z wiadomością // uchwyt do okna (adresat wiadomości) // najmniejszy numer która będzie pobierana // największy numer która będzie pobierana

15 Funkcje Windows API HDC BeginPaint( HWND hwnd, LPPAINTSTRUCT lpps ); BOOL EndPaint( HWND hwnd, CONST PAINTSTRUCT *lppaint ); typedef struct _PAINTSTRUCT { HDC hdc; BOOL ferase; RECT rcpaint; BOOL frestore; BOOL fincupdate; BYTE rgbreserved[32]; } PAINTSTRUCT; HDC GetDC( HWND hwnd ); int ReleaseDC( HWND hwnd,hdc hdc ); BOOL TextOut( HDC hdc, int nxstart, int nystart, LPCTSTR lpstring, int cbstring ); // uchwyt do kontekstu urządzenia // flaga określająca, czy będzie czyszczone tło // prostokąt gdzie będzie można rysować // zarezerwowane przez Windows // zarezerwowane przez Windows // zareserwowane przez Windows // uchwyt do kontekstu urządzenia // współrzędna x // współrzędna y // adres ciągu do wyświetlenia // liczba znaków do wyświetlenia

16 Hierarchia okien Windows zarządza oknami używając zależności: widoczność własność relacja ojciec\dziecko Każde okno przechowuje: uchwyt do okna dziecka uchwyt do następnego okna w liście dzieci (brata) uchwyt do okna rodzica uchwyt do okna właściciela

17 Hierarchia okien

18 Hierarchia okien Desktop window jest korzeniem list dla menadżera okien Top level windows - kolejny poziom w hierarchii (wszystkie okna, które nie są dziećmi WS_OVERLAPPED, WS_POPUP) Child window okna dzieci (WS_CHILD) Właścicielem okna top-level może być inne okno tego typu lub pulpit Właścicielem okna dziecka może być okno typu top-level

19 Hierarchia okien Usunięcie okna (DestroyWindow) powoduje: Usunięcie wszystkich dzieci tego okna Usunięcie okien, których to okno jest właścicielem Wyświetlenie modalnego okna dialogowego powoduje: Wyłączenie (disable) okna które jest właścicielem tego okna dialogowego (i wszystkich jego dzieci)

20 Kategorie funkcji GDI Pobierające i zwalniają kontekst urządzenia Pozyskujące informacje o kontekście urządzenia Rysujące Ustawiające i pobierające parametry kontekstu urządzenia Pracujące z obiektami GDI

21 Pobieranie HDC W obsłudze wiadomości WM_PAINT (rysujemy w obszarze roboczym okna) case WM_PAINT : hdc = BeginPaint( hwnd, & ps );... EndPaint( hwnd, & ps ); break; W obsłudze dowolnej wiadomości (rysujemy w obszarze roboczym okna) hdc = GetDC( hwnd );... ReleaseDC( hwnd, hdc );

22 Pobieranie HDC W obsłudze dowolnej wiadomości (rysujemy w całym oknie) hdc = GetWindowDC( hwnd );... ReleaseDC( hwnd, hdc ); Tworzenie kontekstu urządzenia CreateDC( pszdriver, pszdevice, pszoutput, pdata ); hdc = CreateDC( DISPLAY, NULL, NULL, NULL );... DeleteDC( hdc ); Pobieranie uchwytu do kontekstu (tylko informacje) CreateIC( pszdriver, pszdevice, pszoutput, pdata ); hdc = CreateIC( DISPLAY, NULL, NULL, NULL );... DeleteDC( hdc );

23 Wiadomość WM_PAINT Jest generowana przez system gdy okno wymaga odświeżenia BOOL InvalidateRect( HWND hwnd, CONST RECT *lprc, BOOL ferase ); Jest sklejana w kolejce wiadomości (maksymalnie jedna wiadomość WM_PAINT dla okna) Jest usuwana z kolejki przez funkcję EndPaint case WM_PAINT : hdc = BeginPaint( hwnd, & ps );... EndPaint( hwnd, & ps ); break;

24 Wiadomość WM_PAINT Zawiera informacje (PAINTSTRUCT) o obszarze wymagającym odświeżenia Umożliwia rysowanie tylko w obszarze wymagającym odświeżenia typedef struct _PAINTSTRUCT { HDC hdc; // uchwyt do kontekstu urządzenia BOOL ferase; // flaga określająca, czy będzie czyszczone tło RECT rcpaint; // prostokąt gdzie będzie można rysować BOOL frestore; // zarezerwowane przez Windows BOOL fincupdate; // zarezerwowane przez Windows BYTE rgbreserved[32]; // zareserwowane przez Windows } PAINTSTRUCT;

25 Parametry kontekstu urządzenia Atrybut Wart. domyślna Ustawianie Odczyt Kolor tekstu Czarny SetTextColor GetTextColor Kolor tła Biały SetBkColor GetBkColor Sposób wypełniania tła OPAQUE SetBkMode GetBkMode Tryb odwzorowania MM_TEXT SetMapMode GetMapMode Początek okna ( 0, 0 ) SetWindowOrgEx GetWindowOrgEx Początek widoku ( 0, 0 ) SetViewportOrgEx GetViewportOrgEx Rozciągłość okna ( 1, 1 ) SetWindowExtEx GetWindowExtEx Rozciągłość widoku ( 1, 1 ) SetViewportExtEx GetViewportExtEx Tryb rysowania R2_COPYPEN SetROP2 GetROP2 Pozycja pióra ( 0, 0 ) MoveTo GetCurrentPosition Pióro BLACK_PEN SelectObject SelectObject Pędzel WHITE_BRUSH SelectObject SelectObject Czcionka SYSTEM_FONT SelectObject SelectObject

26 Parametry kontekstu urządzenia Tryb odwzorowania Jednostka logiczna MM_TEXT 1 piksel MM_LOMETRIC 0,1 mm MM_HIMETRIC 0,01 mm MM_LOENGLISH 0.01 in MM_HIENGLISH 0,001 in MM_TWIPS 1/1440 in MM_ISOTROPIC definiowane przez użytkownika (takie same w x i y) MM_ANISOTROPIC definiowane przez użytkownika (różne w x i y) xviewporte xt xviewport = + xwinext ( xwindow xwinorg ) xviewportorg yviewportext yviewport = + ywinext ( ywindow ywinorg ) yviewportorg

27 Zapamiętywanie parametrów DC CS_OWNDC w stylu klasy okna parametry zapamiętywane dla każdego okna niezależnie wndclass.style =... CS_OWNDC CS_CLASSDC w stylu klasy okna parametry zapamiętywane dla klasy okna wndclass.style =... CS_CLASSDC Zapamiętywanie i odtwarzanie parametrów kontekstu urządzenia idsaved = SaveDC( hdc ); RestoreDC( hdc, idsaved );

28 Kolory Full color - 24 bits High color - 16 bits 256 colors - 8 bits (index in palette) 16 colors - 4 bits ( 16 fixed colors) Liczba bitów koloru na piksel: ibitspixel=getdevicecaps(hdc, BITSPIXEL); #define RGB(r,g,b)((COLORREF)(((BYTE)(r) \ ((WORD)((BYTE)(g)) << 8)) \ (((DWORD)(BYTE)(b)) << 16))) RGB(255, 0, 0) - Red

29 Pióra Używanie piór predefiniowanych (ze składnicy Windows) HPEN hpen = GetStockObject( WHITE_PEN ); Tworzenie pióra hpen = CreatePen( ipenstyle, iwidth, crcolor ); LOGPEN logpen; hpen = CreatePenIndirect ( & logpen ); Usuwanie pióra DeleteObject( hpen ); Piór ze składnicy Windows nie należy usuwać. Należy usuwać obiekty, które zostały utworzone. Nie należy usuwać obiektów GDI dopóki są one wybrane w ważnym kontekście.

30 Pióra Ustawianie aktywnego pióra SelectObject( hdc, hpen ); Jeżeli grubość pióra jest większa od 1 piksel (po narysowaniu), to linie niezależnie od stylu będą liniami ciągłymi. Przerwy pomiędzy liniami są wypełniane kolorem tła (OPAQUE) lub pozostają bez zmian (TRANSPARENT)

31 Pędzle Używanie pędzli predefiniowanych (ze składnicy Windows) HBRUSH hbrush = GetStockObject( WHITE_BRUSH ); Tworzenie pędzli hbrush=createsolidbrush( crcolor ); hbrush=createhatchbrush( ihatchstyle, crcolor ); LOGBRUSH logbrush; hbrush = CreateBrushIndirect ( & logbrush ); Usuwanie pędzli DeleteObject( hbrush ); Pędzli ze składnicy Windows nie należy usuwać. Należy usuwać obiekty, które zostały utworzone. Nie należy usuwać obiektów GDI dopóki są one wybrane w ważnym kontekście.

32 Pędzle Ustawianie aktywnego pędzla SelectObject( hdc, hbrush ); Przerwy pomiędzy liniami są wypełniane kolorem tła (OPAQUE) lub pozostają bez zmian (TRANSPARENT)

33 Rysowanie punktów i linii Punkty SetPixel (hdc, x, y, crcolor) ; crcolor = GetPixel (hdc, x, y) ; Linie proste BOOL LineTo( HDC hdc, int nxend, int nyend ); BOOL Polyline( HDC hdc, CONST POINT * lppt, int cpoints ); Łuki (Arc, ArcTo, AngleArc, PolyDraw, PolyBezier) BOOL PolyBezier( HDC hdc, CONST POINT * lppt, DWORD cpoint );

34 Funkcje obramowania BOOL Rectangle(hdc, xleft, ytop, xright, ybottom); Rectangle (hdc, 1, 1, 5, 4) ;

35 Funkcje obramowania BOOL Ellipse(hdc, xleft, ytop, xright, ybottom);

36 Funkcje obramowania BOOL RoundRect (hdc, xleft, ytop, xright, ybottom, xcornerellipse, ycornerellipse) ;

37 Funkcje obramowania BOOL Arc(hdc, xleft, ytop, xright, ybottom, xstart, ystart, xend, yend);

38 Funkcje obramowania BOOL Chord(hdc, xleft, ytop, xright, ybottom, xstart, ystart, xend, yend);

39 Funkcje obramowania BOOL Pie(hdc, xleft, ytop, xright, ybottom, xstart, ystart, xend, yend);

40 Tryb wypełniania wielokątów Polygon (hdc, apt, icount); PolyPolygon (hdc, apt, aicounts, ipolycount); SetPolyFillMode (hdc, imode) ; ALTERNATE WINDING

41 Tryb wypełniania wielokątów 2,0 1,1 ALTERNATE WINDING

42 Tryby rysowania SetROP2 (hdc, idrawmode); idrawmode = GetROP2 (hdc); Mix mode Description R2_BLACK - always 0 R2_COPYPEN - pen R2_MASKNOTPEN R2_MASKPEN R2_MASKPENNOT R2_MERGENOTPEN R2_MERGEPEN R2_MERGEPENNOT R2_NOP - nothing R2_NOT - not background R2_NOTCOPYPEN R2_NOTMASKPEN R2_NOTMERGEPEN R2_NOTXORPEN R2_WHITE - always 1 R2_XORPEN - xor

43 Regiony Tworzenie regionu hrgn = CreateRectRgn( xleft, ytop, xright, ybottom ); hrgn = CreateRectRgnIndirect( & rect ); hrgn = CreateEllipticRgn( xleft, ytop, xright, ybottom ); hrgn = CreatePolygonRgn( & point, icount, ipolyfillmode ); Tworzenie regionu złożonego irgntype = CombineRgn( hdstrgn, hsrcrgn1, hsrcrgn2, icomb ); icomb: RGN_AND, RGN_OR, RGN_XOR, RGN_DIFF, RGN_COPY irgntype: NULLREGION, SIMPLEREGION, COMPLEXREGION, ERROR Usuwanie regionu DeleteObject( hrgn );

44 Odświerzanie regionu InvalidateRgn (hwnd, hrgn, berase) ; Region obcinania SelectObject(hdc, hrgn); SelectClipRgn(hdc, hrgn); Regiony

45 Fokus Komunikaty związana z klawiaturą odbiera okno posiadające fokus (jest to okno aktywne lub dziecko okna aktywnego) WM_SETFOCUS - wiadomość wysyłana do okna otrzymującego fokus wparam - uchwyt do okna, które utraciło fokus WM_KILLFOCUS - wiadomość wysyłana do okna tracącego fokus wparam - uchwyt do okna, które uzyska fokus

46 Klawiatura - przyciski Komunikaty informującego wciśnięciu i zwolnieniu przycisku Przyciski systemowe i niesystemowe Niesystemowe Systemowe Wciśnięcie WM_KEYDOWN WM_SYSKEYDOWN Zwolnienie WM_KEYUP WM_SYSKEYUP

47 Klawiatura - przyciski Parametry wiadomości: wparam - kod wirtualny przycisku (np. VK_LBUTTON, VK_F2, VK_TAB) lparam - dodatkowe informacje

48 Klawiatura - wprowadzenie znaku Wiadomości informujące o wprowadzeniu znaku (generowane przez funkcję TranslateMesage) while( GetMessage( &msg, NULL, 0, 0 ) { TranstateMessage( &msg ); DispatchMessage( & msg ); } Niesystemowe Systemowe Znaki WM_CHAR WM_SYSCHAR Martwe znaki WM_DEADCHAR WM_SYSDEADCHAR

49 Klawiatura - wprowadzenie znaku Parametry wiadomości: wparam - kod ANSI znaku lparam - dodatkowe informacje

50 Stan przycisków Uzyskiwanie informacji o stanie przycisków SHORT GetAsyncKeyState( int vkey ); Uzyskiwanie informacji o stanie przycisków w chwili wystąpienia zdarzenia SHORT GetKeyState( int nvirtkey );

51 Kolejność komunikatów Wprowadzenie litery a Wiadomość Klawisz lub kod WM_KEYDOWN kod wirtualny klawisza A WM_CHAR kod znaku a WM_KEYUP kod wirtualny klawisza A Wprowadzenie litery A Wiadomość Klawisz lub kod WM_KEYDOWN kod wirtualny klawisza VK_SHIFT WM_KEYDOWN kod wirtualny klawisza `A' WM_CHAR kod znaku `A' WM_KEYUP kod wirtualny klawisza `A' WM_KEYUP kod wirtualny klawisza VK_SHIFT

52 Kolejność komunikatów Wprowadzenie litery a (autorepetycja) Wiadomość Klawisz lub kod WM_KEYDOWN kod wirtualny klawisza A WM_CHAR kod znaku a... WM_KEYDOWN kod wirtualny klawisza A WM_CHAR kod znaku a WM_KEYUP kod wirtualny klawisza A

53 Kolejność komunikatów Wprowadzenie litery ą Wiadomość Klawisz lub kod WM_KEYDOWN kod wirtualny klawisza ~ WM_DEADCHAR kod znaku ~ WM_KEYUP kod wirtualny klawisza ~ WM_KEYDOWN kod wirtualny klawisza A WM_CHAR kod znaku ą WM_KEYUP kod wirtualny klawisza A

54 Funkcje CreateCaret SetCaretPos ShowCaret Karetka HideCaret ukrywa karetkę DestroyCaret niszczy karetkę utworzenie karetki ustawia pozycję karetki w oknie wyświetla karetkę Może istnieć tylko jedna karetka

55 Karetka ukrywanie przy rysowaniu case WM_SETFOCUS: CreateCaret (hwnd, NULL, cxchar, cychar); SetCaretPos ( x, y ); ShowCaret (hwnd); return 0; case WM_KILLFOCUS: HideCaret ( hwnd ); DestroyCaret(); return 0 ; case WM_LBUTTONDOWN : HideCaret( hwnd ); hdc = GetDC( hwnd );... releasedc( hwnd, hdc ); ShowCaret( hwnd ); return 0;

56 Mysz (obszar roboczy) Wciśnięcie Zwolnienie Podwójne wciśnięcie Lewy WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK Środkowy WM_MBUTTONDOWN WM_MBUTTONUP WM_MBUTTONDBLCLK Prawy WM_RBUTTONDOWN WM_RBUTTONUP WM_RBUTTONDBLCLK Zmiana położenia kursora myszy WM_MOUSEMOVE Dodanie CS_DBLCLK do stylu klasy okna umożliwia otrzymywanie wiadomości o podwójnym naciśnięciu przycisku myszy

57 Mysz (obszar roboczy) Parametry wiadomości: wparam - informacja o stanie przycisków LOWORD( lparam ) - współrzędna x kursora HIWORD( lparam ) - współrzędna y kursora Położenie podawane we współrzędnych fizycznych względem obszaru roboczego okna Maski do sprawdzania stanu przycisków MK_LBUTTON, MK_MBUTTON, MK_RBUTTON MK_SHIFT, MK_CONTROL

58 Mysz (poza obszarem roboczym) Wciśnięcie Zwolnienie Podwójne wciśnięcie Lewy WM_NCLBUTTONDOWN WM_NCLBUTTONUP WM_NCLBUTTONDBLCLK Środkowy WM_NCMBUTTONDOWN WM_NCMBUTTONUP WM_NCMBUTTONDBLCLK Prawy WM_RBUTTONDOWN WM_NCRBUTTONUP WM_NCRBUTTONDBLCLK Zmiana położenia kursora myszy WM_NCMOUSEMOVE Dodanie CS_DBLCLK do stylu klasy okna umożliwia otrzymywanie wiadomości o podwójnym naciśnięciu przycisku myszy

59 Mysz (poza obszarem roboczym) Parametry wiadomości: wparam - identyfikator obszaru okna LOWORD( lparam ) - współrzędna x kursora HIWORD( lparam ) - współrzędna y kursora Położenie podawane we współrzędnych fizycznych względem całego ekranu Identyfikatory obszarów HTCAPTION - pasek tytułu HTSYSMENU - menu systemowe HTCLOSE - przycisk zamykający okno

60 Komunikat testu na trafienie okna Wiadomość WM_NCHITTEST poprzedza wszystkie inne wiadomości związane z myszą Parametry: wparam - nie wykorzystywany LOWORD( lparam ) - współrzędna x kursora HIWORD( lparam ) - współrzędna y kursora Położenie podawane we współrzędnych fizycznych względem całego ekranu

61 Komunikat testu na trafienie okna DefWindowProc przetwarza wiadomość WM_NCHITTEST i zwraca identyfikator obszaru okna Na podstawie informacji zwróconej przez procedurę obsługi zdarzeń okna system wstawia do kolejki odpowiednią wiadomość Identyfikatory obszarów HTCAPTION HTCLIENT HTNOWHERE HTTRANSPARENT pasek tytułu obszar roboczy żadne okno okno przykryte przez inne

62 Funkcje związane z myszą Sprawdzanie obecności i liczby przycisków myszy fmouse = GetSystemMetrics( SM_MOUSEPRESENT ); cbutton = GetSystemMetrics( SM_CMOUSEBUTTONS ); Ukrywanie i pokazywanie kursora ShowCursor( TRUE ); ShowCursor( FALSE ); Pobieranie i ustawianie pozycji kursora GetCursorPos( & pt ); SetCursorPos( x, y ); Przechwytywanie myszy SetCapture( hwnd ); ReleaseCapture();

63 Zegar Zegar to urządzenie wejściowe generujące wiadomość WM_TIMER z zadaną częstotliwością Parametry wparam - identyfikator zegara lparam - wskazanie na funkcję obsługi Czas podaje się w ms ale maksymalna rozdzielczość to: dla Win ms, dla Win NT 10 ms Wiadomość WM_TIMER jest kolejkowana i sklejana (w kolejce może być tylko jedna taka wiadomość dla jednego zegara)

64 Zegar Obsługa przez procedurę obsługi zdarzeń okna SetTimer( hwnd, itimerid, imsecinterval, NULL ); case WM_TIMER :... break; Obsługa przez funkcję call-back VOID CALLBACK TimerProc( HWND hwnd, UINT message, {... } UINT itimerid, DWORD dwtime ) SetTimer( hwnd, itimerid, imsecinterval, TimerProc ); Obsługa przez funkcję call-back (hwnd = NULL) VOID CALLBACK TimerProc( HWND hwnd, UINT message, UINT itimerid, DWORD dwtime ) {... } itimerid = SetTimer( NULL, 0, imsecinterval, TimerProc ); Usuwanie zegara KillTimer( hwnd, itimerid );

65 Kategorie wiadomości Wiadomości kolejkowane Przykłady wiadomości WM_LBUTTONDOWN, WM_PAINT, WM_TIMER Wysyłanie wiadomości LRESULT PostMessage(HWND hwnd,uint msg,wparam wpar,lparam lpar); Wiadomości niekolejkowane Przykład wiadomości WM_SETFOCUS, WM_KILLFOCUS, WM_ACTIVATE Wysyłanie wiadomości LRESULT SendMessage(HWND hwnd,uint Msg,WPARAM wpar, LPARAM lpar);

66 Wiadomości kolejkowane Wiadomości są wstawiane na koniec kolejki i pobierane z początku FIFO (wyjątkiem są WM_PAINT i WM_TIMER) Wysłanie powoduje wstawienie do kolejki związanej z wątkiem, w którym zostało utworzone okno do którego adresowana jest wiadomość

67 Wiadomości kolejkowane Thread A Thread B 1 Thread message queue PostMessage( ); 2 while( GetMessage( ) ) { DispatchMessage( ); } WndProc

68 Wiadomości niekolejkowane Wysłanie powoduje bezpośrednie wywołanie procedury obsługi zdarzeń okna (w kontekście wątku, w którym to okno zostało utworzone) Wysyłający czeka na zakończenie obsługi wiadomości Odbierający może potwierdzić obsłużenie wiadomości przed zakończeniem procedury obsługi zdarzeń okna BOOL ReplyMessage( LRESULT lresult ); Wątek odbierający musi wywoływać funkcję pobierania wiadomości

69 Wiadomości niekolejkowane Thread A Thread A Thread B SendMessage( ); 3 SendMessage( ); 3 GetMessage( ); 3 WndProc 2 WndProc 2 2

70 Wiadomości niekolejkowane Thread A 1 SendMessage( ); 3 Thread B 1 GetMessage( ); 4 WndProc 2 2 ReplayMessage( ); 3

71 Adresat wiadomości Parametr hwnd może mieć wartość HWND_BROADCAST wysłanie wiadomości do wszystkich okien typu top level NULL (tylko PostMessage) wysłanie wiadomości do wątku Wysyłanie wiadomości do wątku BOOL PostThreadMessage( DWORD idthread,uint Msg,WPARAM wpar, LPARAM lpar);

72 Rejestrowanie wiadomości Rejestrujemy wiadomość podając ciąg znaków i otrzymujemy identyfikator UINT RegisterWindowMessage( LPCTSTR lpstring ); Rejestracja nazw wiadomości globalna dla całego systemu Unikamy konfliktów identyfikatorów wiadomości

73 Zakresy identyfikatora wiadomości Zakres 0 - (WM_USER 1) WM_USER - 0x7FFF WM_APP - 0xBFFF 0xC000-0xFFFF > 0xFFFF Opis zarezerwowane do użytku prywatnego zarezerwowane wiadomości zarejestrowane zarezerwowane

74 Informacje o oknie Pobieranie informacji o oknie LONG GetWindowLong( HWND hwnd, int nindex ); Ustawianie informacji o oknie LONG SetWindowLong( HWND hwnd, int nindex, LONG dwnewlong ); Parametr nindex zawiera indeks wartości z obszaru danych alokowanych dla okna struct WNDCLASS { UINT style; WNDPROC lpfnwndproc; int cbclsextra; int cbwndextra;... };

75 Informacje o oknie Inne wartości parametru nindeks GWL_EXSTYLE rozszerzony styl okna GWL_STYLE styl okna GWL_WNDPROC adres procedury obsługi zdarzeń GWL_HINSTANCE uchwyt do instancji aplikacji GWL_ID identyfikator okna GWL_USERDATA wartość do wykorzystania przez aplikację

76 Zakładanie podklasy okna Pobranie adresu procedury obsługi zdarzeń LONG GetWindowLong( HWND hwnd, int nindex ); nindex = GWL_WNDPROC Ustawienie adresu procedury zdarzeń LONG SetWindowLong( HWND hwnd, int nindex, LONG dwnewlong ); nindex = GWL_WNDPROC Zamieniając procedurę obsługi zdarzeń możemy zmienić zachowanie okna Nowa procedura obsługi może dla zdarzeń przez nią nie obsługiwanych wywołać starą procedurę obsługi zdarzeń

77 Kontrolki okna potomnego Każde dziecko posiada unikatowy identyfikator (w obrębie swojego rodzeństwa) Pobieranie uchwytu do okna rodzica HWND GetParent( HWND hwnd ); Uzyskiwanie uchwytu do okna na podstawie identyfikatora HWND GetDlgItem( HWND hdlg, int niddlgitem ); Uzyskiwanie identyfikatora na podstawie uchwytu do okna id = GetWindowLong( hwndchild, GWL_ID ); int GetDlgCtrlID( HWND hwndctl );

78 Kontrolki okna potomnego W systemie są zdefiniowane klasy okien: button, static, scrollbar, edit, listbox, combobox Przy zmianie swojego stanu kontrolki wysyłają do okna rodzica wiadomość WM_COMMAND HIWORD( wparam ) - kod powiadomienia LOWORD( wparam ) - identyfikator kontrolki lparam - uchwyt do kontrolki (okna)

79 Klasa przycisków BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_RADIOBUTTON BS_3STATE BS_AUTO3STATE BS_GROUPBOX BS_AUTORADIOBUTTON BS_OWNERDRAW BS_LEFTTEXT przycisk naciskany przycisk naciskany pole wyboru pole wyboru przycisk opcji pole wyboru (3 stany) pole wyboru (3 stany) pole grupy przycisk opcji przycisk rysowane przez program wyrównanie tekstu do lewej strony

80 Komunikacja z oknem nadrzędnym Przy zmianie stanu przycisk wysyła do swojego rodzica wiadomość WM_COMMAND z kodem powiadomienia BN_CLICKED naciśnięcie przycisku BN_DBLCLK podwójne naciśnięcie przycisku myszy BN_SETFOCUS uzyskanie fokusu BN_KILLFOCUS utrata fokusu

81 Komunikacja z oknem nadrzędnym Jeśli do stylu przycisku dodano BS_NOTIFY to będzie on informował okno nadrzędne o: uzyskaniu lub utracie fokusu podwójnym naciśnięciu przycisku myszy Przyciski BS_RADIOBUTTON, BS_AUTORADIOBUTTON, BS_OWNERDRAW zawsze informują okno nadrzędne o podwójnym naciśnięciu przycisku myszy Przyciski rysowane przez program wysyłają wiadomość WM_DRAWITEM gdy muszą być odświeżone lub gdy zmieni się ich stan

82 Komunikacja z przyciskami Okno nadrzędne może się komunikować z kontrolką za pomocą szeregu komunikatów WM_XXX Komunikaty charakterystyczne dla przycisków BM_GETCHECK BM_SETCHECK BM_GETSTATE BM_SETSTATE BM_SETSTYLE BM_CLICK BM_GETIMAGE BM_SETIMAGE pobranie stanu (pole wyboru, przycisk opcji) ustawienie stanu (pole wyboru, przycisk opcji) pobranie stanu (zwykły przycisk) ustawienie stanu (zwykły przycisk) ustawienie stylu przycisku wciśnięcie przycisku pobranie uchwytu do bitmapy lub ikony ustawienie uchwytu do bitmapy lub ikony

83 Przyciski widoczne i dostępne Okno potomne może odbierać komunikaty generowane przez mysz i klawiaturę jeśli jest widoczne i dostępne Widoczność okna BOOL ShowWindow( HWND hwnd, int ncmdshow ); BOOL IsWindowVisible( HWND hwnd ); Dostępność okna SW_HIDE, SW_SHOWNORMAL BOOL EnableWindow( HWND hwnd, BOOL benable ); BOOL IsWindowEnabled( HWND hwnd );

84 Zasoby Zasoby są definiowane w tekstowym pliku - skrypcie zasobów (plik *.rc) W trakcie tworzenia programu zasoby takie jak ikony, kursory, zasoby użytkownika, bitmapy są przechowywane w oddzielnych plikach binarnych Po utworzeniu programu zasoby są dołączane do pliku wykonywalnego

85 Zasoby

86 Przykładowe zasoby: ikony kursory ciągi znakowe zasoby użytkownika skróty klawiatury okna dialogowe bitmapy Zasoby

87 Ikony Używane Dwa rozmiary ikon: duża 32 x 32 piksele mała 16 x 16 pikseli Definicja ikony w pliku zasobów #define IDI_ICON 101 IDI_ICON ICON DISCARDABLE "icondemo.ico" MYICON ICON DISCARDABLE "icondemo.ico" Pobieranie ikony hicon = LoadIcon( hinstance, MAKEINTRESOURCE (IDI_ICON) ); hicon = LoadIcon ( hinstance, MYICON ) ; Wyświetlanie ikony BOOL DrawIcon( HDC hdc, int X, int Y, HICON hicon );

88 Ciągi znaków Definicja w pliku zasobów STRINGTABLE DISCARDABLE BEGIN IDS_STRING1, "character string 1" IDS_STRING2, "character string 2" END Każdy tekst musi być jednoznacznie identyfikowany przez stałą W tekstach można używać znaków \t i \n Pobieranie tekstu int LoadString( HINSTANCE hinstance, UINT uid LPTSTR lpbuffer, int nbuffermax );

89 Zasoby użytkownika Nazwa typu zasobu jest definiowana przez użytkownika Definicja w pliku zasobów IDR_BINTYPE1 BINTYPE BINDATA.BIN Pobieranie uchwytu do zasobu użytkownika hresource = LoadResource (hinstance, FindResource( hinstance, "BINTYPE", MAKEINTRESOURCE (IDR_BINTYPE1) ) ); Dostęp do zasobu pdata = LockResource( hresource ); FreeResource( hresource );

90 Szablon okna dialogowego Utworzenie zasobu okno dialogowe Wstawienie kontrolek Określenie kolejności kontrolek

91 Szablon okna dialogowego Ustawienie właściwości kontrolek WS_TABSTOP - kontrolka może otrzymać fokus WS_GROUP - rozpoczyna nową grupę przycisków wyboru

92 Okna dialogowe Typy okien dialogowych modalne okno dialogowe musi zostać zamknięte zanim użytkownik będzie pracował z innymi oknami aplikacji przykład otwarcie pliku nie modalne gdy okno dialogowe jest otwarte użytkownik może pracować z innymi oknami aplikacji przykład znajdź i zamień

93 Modalne okna dialogowe BOOL CALLBACK AboutDlgProc (HWND hdlg, UINT message, WPARAM wparam, LPARAM lparam) { } switch (message) { case WM_INITDIALOG : return TRUE ; case WM_COMMAND : } switch (LOWORD (wparam)) { case IDOK : case IDCANCEL : EndDialog (hdlg, 0) ; return TRUE ; } break ; return FALSE ;

94 Modalne okna dialogowe Wyświetlanie okna dialogowego case WM_COMMAND : switch (LOWORD (wparam)) { case IDM_APP_ABOUT : DialogBox(hInstance,"AboutBox", hwnd,aboutdlgproc); break ; } return 0 ;

95 Nie modalne okna dialogowe Tworzenie niemodalnego okna dialogowego hdlgmodeless = CreateDialog (hinstance, sztemplate, hwndparent, DialogProc); hdlgmodeless = CreateDialog (... ) ; ShowWindow( hdlgmodeless, SW_SHOW ) ; Zamykanie niemodalnego okna dialogowego case WM_CLOSE : DestroyWindow (hdlg) ; hdlgmodeless = NULL ; break ;

96 Nie modalne okna dialogowe Obsługa zdarzeń while( GetMessage (&msg, NULL, 0, 0) ) { } if (hdlgmodeless == 0!IsDialogMessage (hdlgmodeless, &msg)) { } TranslateMessage (&msg) ; DispatchMessage (&msg) ;

97 The Common Dialog Boxes Rodzaje okien Common Dialog ChooseColor ChooseFont FindText GetOpenFileName GetSaveFileName PageSetupDlg PrintDlg ReplaceText

98 The Common Dialog Boxes #include <commdlg.h> int WINAPI WinMain (HINSTANCE hinstance, HINSTANCE hprevinstance, PSTR szcmdline, int icmdshow) { static CHOOSECOLOR cc; static COLORREF crcustcolors[16]; cc.lstructsize = sizeof (CHOOSECOLOR); cc.hwndowner = NULL; cc.hinstance = NULL; cc.rgbresult = RGB (0x80, 0x80, 0x80); cc.lpcustcolors = crcustcolors; cc.flags = CC_RGBINIT CC_FULLOPEN; cc.lcustdata = 0; cc.lpfnhook = NULL; cc.lptemplatename = NULL; return ChooseColor (&cc); }

99 Biblioteki dynamiczne Mogą być używane przez kilka aplikacji jednocześnie (wspólny kod) Używją stosu wątku wywołującego funkcję i przestrzeni adresowej wołającego procesu Aplikacja 1 LIB Aplikacja 1 DLL Aplikacja 2 LIB Aplikacja 2

100 Biblioteki dynamiczne Ładowanie biblioteki dynamicznej w momencie uruchomienia programu (z programem został skonsolidowany plik *.lib dla tej biblioteki dynamicznej, zawiera on nagłówki eksportowanych funkcji) w trakcie działania programu HINSTANCE LoadLibrary( LPCTSTR lplibfilename ); Zwalnianie biblioteki dynamicznej BOOL FreeLibrary( HMODULE hlibmodule );

101 Biblioteki dynamiczne Funkcje eksportowane (widoczne na zewnątrz biblioteki) wymienia się w dyrektywie EXPORT w pliku.def plik.c short FAR PASCAL suma( short a, short b ); plik.def EXPORT suma

102 Punkt wejścia i wyjścia biblioteki Funkcja wywoływana w momencie podłączenia/odłączenia biblioteki BOOL DllEntryPoint( HINSTANCE hinstdll, DWORD fdwreason, LPVOID lpvres ); hinstdll - uchwyt do instancji biblioteki fdwreason - powód wywołania funkcji DLL_PROCESS_ATTACH - dołączenie biblioteki do przestrzeni adresowej procesu DLL_THREAD_ATTACH - gdy proces tworzy nowy wątek (nie woła się dla wątku dla którego było wywołanie DLL_PROCES_ATTACH) DLL_THREAD_DETACH - gdy wątek się zakończy (nie woła się dla wątku dla którego DLL_PROCES_DETACH) DLL_PROCESS_DETACH odłączenie biblioteki do przestrzenia adresowej procesu lpvres - parametr zarezerwowany

103 Biblioteki dynamiczne zalety/wady Zalety Podział programu na moduły, które mogą być wymieniane niezależnie i wykorzystywane przez różne aplikacje Mniejsza zajętość pamięci operacyjnej i dyskowej Możliwy do realizacji mechanizm wtyczek Wady Biblioteka musi być w systemie Problemy z różnymi wersjami tej samej biblioteki

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

Procedura okna: LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam); 1. Pierwszy program pod Windows 1/8 Procedura okna: LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam); UINT unsigned int DWORD 32-bitowy unsigned int. LPSTR - wskaźnik do

Bardziej szczegółowo

Komunikaty w Windows. Jarosław Kuchta

Komunikaty w Windows. Jarosław Kuchta Komunikaty w Windows Jarosław Kuchta Okna i procedury okien W Windows każde okno ma swoją procedurę sterującą. LRESULT CALLBACK WndProc ( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { } gdzie:

Bardziej szczegółowo

IFiZR Laboratorium 5 Info

IFiZR Laboratorium 5 Info IFiZR Laboratorium 5 Info File->New->Project->Windows Application (DevC++) Kurs WinAPI: http://cpp0x.pl/kursy/kurs-winapi-c++/167 #include #include #include #include

Bardziej szczegółowo

Podstawy programowania w języku C dla środowiska Windows

Podstawy programowania w języku C dla środowiska Windows Podstawy programowania w języku C dla środowiska Windows Część druga Windows API pierwsze kroki Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera

Bardziej szczegółowo

Podstawy programowania w języku C dla środowiska Windows

Podstawy programowania w języku C dla środowiska Windows Podstawy programowania w języku C dla środowiska Windows Część pierwsza Windows API wprowadzenie Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera

Bardziej szczegółowo

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie na poziomie sprzętu. Programowanie w Windows API Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.

Bardziej szczegółowo

Wprowadzenie do programowania w Windows

Wprowadzenie do programowania w Windows Wprowadzenie do programowania w Windows Sławomir Samolej Rzeszów, 1999 1. Wstęp Od kilku lat dominującym systemem operacyjnym na rynku komputerów osobistych jest Microsoft Windows. Wersje systemu Windows

Bardziej szczegółowo

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie I. Wprowadzenie do programowania w Windows

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie I. Wprowadzenie do programowania w Windows Laboratorium Grafiki Komputerowej i Animacji Ćwiczenie I Wprowadzenie do programowania w Windows Sławomir Samolej Rzeszów, 2012 1. Wstęp Od kilku lat dominującym systemem operacyjnym na rynku komputerów

Bardziej szczegółowo

Programowanie w środowisku Windows. mgr inż. Krzysztof Mossakowski k.mossakowski@mini.pw.edu.pl http://www.mini.pw.edu.

Programowanie w środowisku Windows. mgr inż. Krzysztof Mossakowski k.mossakowski@mini.pw.edu.pl http://www.mini.pw.edu. Programowanie w środowisku Windows mgr inż. k.mossakowski@mini.pw.edu.pl Plan wykładu 1. Okna, komunikaty, czas, błędy 2. Typy, struktury, makra, mysz, klawiatura, wersje 3. GDI 4. Zasoby, okna dialogowe,

Bardziej szczegółowo

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

Podstawy programowania w środowisku Windows. Oto identyfikatory najczęściej obsługiwanych meldunków (przedrostek WM to skrót od Windows message): GRAFIKA KOMPUTEROWA Podstawy programowania w środowisku Windows 1. Struktura programu w środowisku MS Windows Program dla Windows powinien mieć przynajmniej jedno okno (chociaż może być ono niewidoczne).

Bardziej szczegółowo

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

Podstawowy projekt OpenGL utworzony przy użyciu środowisk programistycznych firmy Microsoft. Podstawowy projekt OpenGL utworzony przy użyciu środowisk programistycznych firmy Microsoft. Autor: Radosław Płoszajczak Spis treści I. Wymagania i utworzenie projektu w Visual Studio 2005...2 II. Absolutne

Bardziej szczegółowo

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

1.1. Programowanie dla Windows. Programowanie dla Windows. Komunikaty w systemie Windows. Application Programming Interface 1 Katedra Optoelektroniki i Systemów Elektronicznych 2 Oprogramowanie Systemów Elektronicznych Zagadnienia: Temat wykładu 1. 2. Etapy tworzenia okna 3. 4. 5. 6. 3 Application Programming Interface 4 jest

Bardziej szczegółowo

Formaty plików graficznych - wprowadzenie

Formaty plików graficznych - wprowadzenie Formaty plików graficznych - wprowadzenie Obraz graficzny jest dwuwymiarową tablicą pikseli, zwana czasem rastrem. Kolor piksela może być reprezentowany w następujący sposób: Dla obrazów monochromatycznych

Bardziej szczegółowo

Załącznik do ćwiczenia w środowisku MASM32 wersji 10. Tryb graficzny w systemie Windows

Załącznik do ćwiczenia w środowisku MASM32 wersji 10. Tryb graficzny w systemie Windows Załącznik do ćwiczenia w środowisku MASM32 wersji 10 7.7. Programowanie aplikacji graficznej Tryb graficzny w systemie Windows 7.7.1. Współdziałanie aplikacji graficznej z systemem Windows Aplikacja graficzna

Bardziej szczegółowo

Interfejs graficzny w systemie Windows (GDI - Graphics Device Interface)

Interfejs graficzny w systemie Windows (GDI - Graphics Device Interface) Interfejs graficzny w systemie Windows (GDI - Graphics Device Interface) GDI dostarcza funkcje i odpowiednie struktury, które aplikacja może wykorzystywać do obsługi graficznego wyjścia (różne urządzenia).

Bardziej szczegółowo

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

Programowanie w języku C++ z użyciem Windows API Programowanie w języku C++ z użyciem Windows API Autor: Mateusz Ferenc Data opracowania: 30 maja 2012 r. Windows API jest jedną z bibliotek programistycznych przeznaczonych do pisania programów na platformę

Bardziej szczegółowo

Projektowanie i programowanie aplikacji biznesowych. Wykład 2

Projektowanie i programowanie aplikacji biznesowych. Wykład 2 Projektowanie i programowanie aplikacji biznesowych Wykład 2 Kontrolki w Windows API Aby korzystać z kontrolek należy dołączyć plik nagłówkowy o nazwie commctrl.h oraz bibliotekę o nazwie libcomctl32.a.

Bardziej szczegółowo

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

PROE wykład 8 Interfejs użytkownika (GUI) dr inż. Jacek Naruniec PROE wykład 8 Interfejs użytkownika (GUI) dr inż. Jacek Naruniec Co to jest GUI? Graphical User Interface (GUI), czyli po prostu interfejs użytkownika (UI). Najpopularniejsze GUI dla C++: Qt WinAPI MFC

Bardziej szczegółowo

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

Programowanie współbieżne. Tworzenie i obsługa semaforów oraz wątków przy użyciu funkcji Windows API. Programowanie współbieżne Tworzenie i obsługa semaforów oraz wątków przy użyciu funkcji Windows API. Cel zadania. Celem zadania jest poznanie podstawowych funkcji Windows API umożliwiających tworzenie

Bardziej szczegółowo

Programowanie pod Windows

Programowanie pod Windows Programowanie pod Windows Wersja 0.99 Uwaga: notatki są w fazie rozwoju. Brakujące elementy będą sukcesywnie uzupełniane. Dokument może być bez zgody autora rozpowszechniany, zabrania się jedynie czerpania

Bardziej szczegółowo

Microsoft Visual C++

Microsoft Visual C++ Microsoft Visual C++ Typy aplikacji okna dialogowe Typy aplikacji Multiple Document Obsługa zdarzeń - komunikaty W celu obsługi zdarzeń pochodzących z wielu źródeł funkcja MainLoop odbiera komunikaty systemowe

Bardziej szczegółowo

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

Procedura okna: LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam); 1. Pierwszy program pod Windows 1/8 Procedura okna: LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam); UINT unsigned int DWORD 32-bitowy unsigned int. LPSTR - wskanik do łacuch

Bardziej szczegółowo

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

Do nich też i tylko do nich będzie się w tym rozdziale odnosić sam termin okno. 2 ANATOMIA OKNA Nauczycielem wszystkiego jest praktyka. Juliusz Cezar W systemie Windows składniki interfejsu użytkownika nazywamy oknami. Nadmieniłem w poprzednim rozdziale, iż określeniem tym obdarzamy

Bardziej szczegółowo

Podstawowe typy danych

Podstawowe typy danych 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

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

mgr inż. Tomasz Jaworski Klasy graficzne GDI 1. Interfejs urządzeń graficznych (GDI) 2. Kontekst urządzenia

mgr inż. Tomasz Jaworski Klasy graficzne GDI 1. Interfejs urządzeń graficznych (GDI) 2. Kontekst urządzenia mgr inż. Tomasz Jaworski Klasy graficzne GDI W wielu aplikacjach głównym sposobem komunikowania się z użytkownikiem jest obszar roboczy ich okien. Ten rozdział przedstawia zbiór funkcji służących do wykreślania

Bardziej szczegółowo

Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008.

Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008. Dwiczenie 5. TEMAT: CEL: Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008. Celem dwiczenia jest poznanie możliwości VS 2008 w zakresie tworzenia i uruchamiania aplikacji z kodem mieszanym

Bardziej szczegółowo

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

Programowanie w środowiskach RAD Język C++ w środowiskach RAD Programowanie w środowiskach RAD Język C++ w środowiskach RAD Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Programowanie sterowane zdarzeniami Geneza, koncepcja, rodzaje, przykłady Jeszcze

Bardziej szczegółowo

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

Zegary. Zegary (timers) umożliwiają cykliczne w danych odstępach czasu wykonać określone operacje. Zegary Zegary (timers) umożliwiają cykliczne w danych odstępach czasu wykonać określone operacje. Zaczniemy od funkcji przetwarzania komunikatów: //procedura okna LRESULT CALLBACK WndProc(HWND hwnd, UINT

Bardziej szczegółowo

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Dodanie nowej formy do projektu polega na:

Dodanie nowej formy do projektu polega na: 7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Tworzenie aplikacji dla Windows. Od prostych programów do gier komputerowych

Tworzenie aplikacji dla Windows. Od prostych programów do gier komputerowych Tworzenie aplikacji dla Windows. Od prostych programów do gier komputerowych Autor: Pawe³ Borkowski ISBN: 978-83-246-1881-1 Format: 158x235, stron: 456 Poznaj tajniki tworzenia aplikacji dla Windows Jak

Bardziej szczegółowo

Graficzny składnik Windows Pośredniczy między aplikacją, a sterownikiem urządzenia Logiczne obiekty tworzone przez aplikację są urzeczywistniane w

Graficzny składnik Windows Pośredniczy między aplikacją, a sterownikiem urządzenia Logiczne obiekty tworzone przez aplikację są urzeczywistniane w GDI - Graphics Device Interface Graficzny składnik Windows Pośredniczy między aplikacją, a sterownikiem urządzenia Logiczne obiekty tworzone przez aplikację są urzeczywistniane w chwili wyboru na DC Podstawowe

Bardziej szczegółowo

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Slajd 1 Excel Slajd 2 Ogólne informacje Arkusz kalkulacyjny podstawowe narzędzie pracy menadżera Arkusz

Bardziej szczegółowo

1. Wstęp. 2. Szablon. 1 WinApi Wstęp i szablon. Czym jest API?

1. Wstęp. 2. Szablon. 1 WinApi Wstęp i szablon. Czym jest API? 1 WinApi Wstęp i szablon 1. Wstęp Czym jest API? API Windows to zestaw funkcji, które pozwalają zbudować praktycznie dowolną aplikację działającą w systemach Windows 95, 98, NT, 2000 oraz CE. Za ich pomocą

Bardziej szczegółowo

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny 2010 dla WINDOWS cz. 1 Slajd 1 Slajd 2 Ogólne informacje Arkusz kalkulacyjny podstawowe narzędzie pracy menadżera Arkusz kalkulacyjny

Bardziej szczegółowo

1.1. Programowanie w Visual C++ Programowanie w Visual C++ Środowisko programisty Visual C++ Środowisko programisty Visual C++

1.1. Programowanie w Visual C++ Programowanie w Visual C++ Środowisko programisty Visual C++ Środowisko programisty Visual C++ 1 Katedra Optoelektroniki i Systemów Elektronicznych 2 Programowanie w Organizacja i Oprogramowanie Systemów Elektronicznych Temat wykładu Programowanie w 1. Środowisko programisty 5. 6. 3 Środowisko programisty

Bardziej szczegółowo

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

Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (Delphi) Jacek Matulewski http://www.phys.uni.torun.pl/~jacek/ Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (Delphi) Ćwiczenia Toruń, 2 grudnia 2002 Najnowsza wersja tego dokumentu znajduje

Bardziej szczegółowo

1 WSTĘP. Źródło : http://www.winapi.rox.pl/ 1.1 Wymagania i terminologia

1 WSTĘP. Źródło : http://www.winapi.rox.pl/ 1.1 Wymagania i terminologia 1 Źródło : http://www.winapi.rox.pl/ 1 WSTĘP 1.1 Wymagania i terminologia Zakładam, że do tej pory dobrze poznałeś języki C/C++. Potrafisz zrobić całkiem ciekawą aplikację wyświetlaną w środowisku konsolowym.

Bardziej szczegółowo

Architektura interfejsu użytkownika

Architektura interfejsu użytkownika Uniwersytet Jagielloński Interfejsy graficzne Wykład 3 Architektura interfejsu użytkownika Barbara Strug 2011 Hall of shame Hall of Shame Hall of Fame O czym dzisiaj Model Widok- Kontroler Hierarchia widoków

Bardziej szczegółowo

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej. W przygotowaniu ćwiczeń wykorzystano m.in. następujące materiały: 1. Program AutoCAD 2012. 2. Graf J.: AutoCAD 14PL Ćwiczenia. Mikom 1998. 3. Kłosowski P., Grabowska A.: Obsługa programu AutoCAD 14 i 2000.

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Wymiarowanie, kreskowanie, teksty

Wymiarowanie, kreskowanie, teksty Zdefiniowanie własnego stylu wymiarowania Na pasku Wymiary kliknąć ostatnią ikonę Styl wymiarowania, rys. 1 Rys. 1 Wywoła to Menedżera stylów wymiarowania, rys. 2 (ostatnia ikona). Rys. 2. Memedżer stylów

Bardziej szczegółowo

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści Microsoft Visual C++ 2008 : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop. 2010 Spis treści Co znajdziesz w tej książce? 9 Rozdział 1. Podstawy środowiska Visual C++ 2008 11 Język C++ a.net Framework

Bardziej szczegółowo

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu Laboratorium z Grafiki InŜynierskiej CAD W przygotowaniu ćwiczeń wykorzystano m.in. następujące materiały: 1. Program AutoCAD 2010. 2. Graf J.: AutoCAD 14PL Ćwiczenia. Mikom 1998. 3. Kłosowski P., Grabowska

Bardziej szczegółowo

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Slajd 1 Slajd 2 Numerowanie i punktowanie Automatyczne ponumerowanie lub wypunktowanie zaznaczonych akapitów w

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Wykład 11 Grafika 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Grafika GDI+ GDI+ - Graphics Device Interface jeden z trzech podstawowych komponentów

Bardziej szczegółowo

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Slajd 1 Slajd 2 Numerowanie i punktowanie Automatyczne ponumerowanie lub wypunktowanie zaznaczonych akapitów w

Bardziej szczegółowo

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący Laboratorium 13: GUI - Graficzny interfejs użytkownika Cel: Projektowanie z wykorzystaniem Graficzny Interfejs Użytkownika Czas: Wprowadzenia

Bardziej szczegółowo

Visual Studio instalacja

Visual Studio instalacja Visual Studio 2017 - instalacja Do tej pory napisaliśmy wiele programów, z czego niemal wszystkie były aplikacjami konsolowymi. Najwyższy więc czas zająć się tworzeniem aplikacji z graficznym interfejsem

Bardziej szczegółowo

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze. ARKUSZ KALKULACYJNY Arkusz strona zawierająca informacje Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze. Obszar roboczy fragment ekranu, na którym dokonywane są obliczenia Wiersze

Bardziej szczegółowo

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej Jarosław Kuchta Podstawy Programowania Obiektowego Podstawy grafiki obiektowej Zagadnienia Grafika proceduralna grafika obiektowa Grafika WPF dualizm XAML C# Właściwości obiektów graficznych edycja właściwości

Bardziej szczegółowo

Do obsługi plików BMP należy stworzyć klasę przechowującą zawartość obrazu i udostępniającą następujące metody:

Do obsługi plików BMP należy stworzyć klasę przechowującą zawartość obrazu i udostępniającą następujące metody: Ćwiczenie 1 OBSŁUGA OBRAZÓW W FORMACIE BMP Zakres pracy W ramach ćwiczenia należy do dostarczonego interfejsu dodać możliwość wyświetlania wczytanych z pliku obrazów typu BMP, konwertowania ich na format

Bardziej szczegółowo

Wymagania edukacyjne - Informatyka w klasie I

Wymagania edukacyjne - Informatyka w klasie I Wymagania edukacyjne - Informatyka w klasie I Poziom niski wyrażony cyfrą 2 wymagania konieczne. Uczeń ma duże trudności ze spełnieniem wymagań, potrzebuje częstej pomocy nauczyciela. Poziom dostateczny

Bardziej szczegółowo

Politechnika Wrocławska Urządzenia peryferyjne sprawozdanie z laboratorium 1. Zadania do wykonania 2. Wstęp teoretyczny 3. Realizacja ćwiczenia

Politechnika Wrocławska Urządzenia peryferyjne sprawozdanie z laboratorium 1. Zadania do wykonania 2. Wstęp teoretyczny 3. Realizacja ćwiczenia Politechnika Wrocławska Urządzenia peryferyjne sprawozdanie z laboratorium Ćwiczenie 12: Kamera USB 02.01.12 r. Michał Kaczara (181132) Pn / TN, 14:15 17:00 Prowadzący: dr inż. Jarosław Mierzwa 1. Zadania

Bardziej szczegółowo

external Data Representation

external Data Representation Remote Procedure Call external Data Representation Opis standardu RFC 1014 Kanoniczna reprezentacja danych oparta na formacie IEEE Deklaratywny język opisu struktur danych (zbliżony do języka C) Koncepcja

Bardziej szczegółowo

Przykład 1 wałek MegaCAD 2005 2D przykład 1 Jest to prosty rysunek wałka z wymiarowaniem. Założenia: 1) Rysunek z branży mechanicznej; 2) Opracowanie w odpowiednim systemie warstw i grup; Wykonanie 1)

Bardziej szczegółowo

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie. Lokalizacja Informacje ogólne Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie. To pojęcie jest używane przez schematy szaf w celu tworzenia

Bardziej szczegółowo

Europejski Certyfikat Umiejętności Komputerowych. Moduł 3 Przetwarzanie tekstów

Europejski Certyfikat Umiejętności Komputerowych. Moduł 3 Przetwarzanie tekstów Europejski Certyfikat Umiejętności Komputerowych. Moduł 3 Przetwarzanie tekstów 1. Uruchamianie edytora tekstu MS Word 2007 Edytor tekstu uruchamiamy jak każdy program w systemie Windows. Można to zrobić

Bardziej szczegółowo

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

Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (C++ Builder) Jacek Matulewski http://www.phys.uni.torun.pl/~jacek/ Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (C++ Builder) Ćwiczenia Toruń, 2 grudnia 2002 Najnowsza wersja tego dokumentu znajduje

Bardziej szczegółowo

Podręcznik użytkownika programu. Ceremonia 3.1

Podręcznik użytkownika programu. Ceremonia 3.1 Podręcznik użytkownika programu Ceremonia 3.1 1 Spis treści O programie...3 Główne okno programu...4 Edytor pieśni...7 Okno ustawień programu...8 Edycja kategorii pieśni...9 Edytor schematów slajdów...10

Bardziej szczegółowo

DLL Injection. Przejęcie kontroli nad procesem

DLL Injection. Przejęcie kontroli nad procesem MACIEJ PAKULSKI DLL Injection Stopień trudności Współczesne systemy operacyjne pozwalają uruchomić wiele procesów, z których część posiada wyższy priorytet niż inne oraz może korzystać z większej ilości

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Laboratorium OiOSE. Programowanie w środowisku MS Visual C++ 1 Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Organizacja i Oprogramowanie Systemów Elektronicznych Michał Kowalewski

Bardziej szczegółowo

Zasób - binarne dane, które mogą być dołączone do każdego wykonywalnego modułu (.exe lub.dll) Źródło: HMODULE lub HINSTANCE

Zasób - binarne dane, które mogą być dołączone do każdego wykonywalnego modułu (.exe lub.dll) Źródło: HMODULE lub HINSTANCE Zasoby Wykład 4-1 Zasób - binarne dane, które mogą być dołączone do każdego wykonywalnego modułu (.exe lub.dll) Źródło: HMODULE lub HINSTANCE LoadLibrary(), LoadLibraryEx() GetModuleHandle(), GetModuleHandleEx()

Bardziej szczegółowo

1. Wprowadzenie. 1.1 Uruchamianie AutoCAD-a 14. 1.2 Ustawienia wprowadzające. Auto CAD 14 1-1. Aby uruchomić AutoCada 14 kliknij ikonę

1. Wprowadzenie. 1.1 Uruchamianie AutoCAD-a 14. 1.2 Ustawienia wprowadzające. Auto CAD 14 1-1. Aby uruchomić AutoCada 14 kliknij ikonę Auto CAD 14 1-1 1. Wprowadzenie. 1.1 Uruchamianie AutoCAD-a 14 Aby uruchomić AutoCada 14 kliknij ikonę AutoCAD-a 14 można uruchomić również z menu Start Start Programy Autodesk Mechanical 3 AutoCAD R14

Bardziej szczegółowo

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using

Bardziej szczegółowo

Rysowanie punktów na powierzchni graficznej

Rysowanie punktów na powierzchni graficznej Rysowanie punktów na powierzchni graficznej Tworzenie biblioteki rozpoczniemy od podstawowej funkcji graficznej gfxplot() - rysowania pojedynczego punktu na zadanych współrzędnych i o zadanym kolorze RGB.

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy 1 Podstawowym przeznaczeniem arkusza kalkulacyjnego jest najczęściej opracowanie danych liczbowych i prezentowanie ich formie graficznej. Ale formuła arkusza kalkulacyjnego jest na tyle elastyczna, że

Bardziej szczegółowo

Jak dodać własny szablon ramki w programie dibudka i dilustro

Jak dodać własny szablon ramki w programie dibudka i dilustro Aby dodać własną ramkę otwórz moduł administracyjny dibudkaadmin.exe, wejdź do zakładki Ramki, tła, id i następnie Edycja. 1. Kliknij przycisk Dodaj ramkę 2. Określ wymiary nowej ramki Jeżeli dodajesz

Bardziej szczegółowo

8. Dynamiczne generowanie grafiki, cz. 2

8. Dynamiczne generowanie grafiki, cz. 2 8. Dynamiczne generowanie grafiki, cz. 2 8.1. Generowanie tekstu Chociaż tekst można umieścić na grafice korzystając z HTML (używając grafiki jako tła obiektu), często wygodniej jest umieścić tekst bezpośrednio

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Wykład A1. AutoCAD Dr inż. Jarosław Bydłosz

Wykład A1. AutoCAD Dr inż. Jarosław Bydłosz Wykład A1 AutoCAD Dr inż. Jarosław Bydłosz 1 Tematyka zajęć Rysunek techniczny Elementy geometrii wykreślnej Pakiet CAD (AutoCAD 2008) 2 Prowadzący zajęcia Wykłady: Prof. Jadwiga Maciaszek (pok. 204) Ćwiczenia

Bardziej szczegółowo

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania. Elementy programu Paint Aby otworzyć program Paint, należy kliknąć przycisk Start i Paint., Wszystkie programy, Akcesoria Po uruchomieniu programu Paint jest wyświetlane okno, które jest w większej części

Bardziej szczegółowo

PLAN WYNIKOWY KLASA 1

PLAN WYNIKOWY KLASA 1 PLAN WYNIKOWY KLASA 1 1. Pracownia komputerowa 2. Podstawowy zestaw komputerowy Zasady bezpiecznej pracy i przebywania w pracowni komputerowej i nazywamy elementy podstawowego zestawu komputerowego wie,

Bardziej szczegółowo

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne. TEMAT 8: Moduły standardowe

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne. TEMAT 8: Moduły standardowe Pakiet crt zawiera procedury i funkcje, które pozwalają na sterowanie trybem ekranu, kolorami, oknami i dźwiękiem. Opisy procedur są zawarte w pliku pomocy, można je wyświetlić z menu Help Standard units

Bardziej szczegółowo

Szybkie tworzenie grafiki w GcIde

Szybkie tworzenie grafiki w GcIde Szybkie tworzenie grafiki w GcIde Opracował: Ryszard Olchawa Poniższy opis dotyczy aplikacji okienkowej w systemie Windows lub Linux bazującej na obiektowej bibliotece rofrm stworzonej w środowisku GcIde.

Bardziej szczegółowo

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1 Slajd 1 Uruchomienie edytora Word dla Windows otwarcie menu START wybranie grupy Programy, grupy Microsoft Office,

Bardziej szczegółowo

Wykład A1. AutoCAD. Jarosław Bydłosz Katedra Geomatyki

Wykład A1. AutoCAD. Jarosław Bydłosz Katedra Geomatyki Wykład A1 AutoCAD Jarosław Bydłosz Katedra Geomatyki 1 Tematyka wykładu: Pojęcie CAD Główne pakiety CAD Wprowadzenie do pakietu AutoCAD 2 Pojęcie CAD Computer Aided Design (ang.) projektowanie wspomagane

Bardziej szczegółowo

OKNO NA ŚWIAT - PRZECIWDZIAŁANIE WYKLUCZENIU CYFROWEMU W MIEŚCIE BRZEZINY

OKNO NA ŚWIAT - PRZECIWDZIAŁANIE WYKLUCZENIU CYFROWEMU W MIEŚCIE BRZEZINY Projekt OKNO NA ŚWIAT - PRZECIWDZIAŁANIE WYKLUCZENIU CYFROWEMU W MIEŚCIE BRZEZINY współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego

Bardziej szczegółowo

ROZSZERZANIE MOŻLIWOŚCI...

ROZSZERZANIE MOŻLIWOŚCI... SPIS TREŚCI: Od Autora... 11 ROZSZERZANIE MOŻLIWOŚCI... 13 PROGRAMY PREFERENCYJNE... 15 Czcionki systemowe... 15 Tła okien... 18 Tryb wyświetlania... 22 Zegar i data systemowa... 24 Urządzenia wejścia

Bardziej szczegółowo

Instrukcja edycji grafiki dla urządzeń firmy C&C.

Instrukcja edycji grafiki dla urządzeń firmy C&C. Instrukcja_grafiki_C&C_UTXvP 16.04.09 Instrukcja edycji grafiki dla urządzeń firmy C&C. Spis treści 1 EKRAN GRAFICZNY...2 1.1 Grafika tła...2 1.2 Grafika elementów...3 1.3 Wstawianie elementów...5 1.4

Bardziej szczegółowo

Microsoft Small Basic

Microsoft Small Basic Microsoft Small Basic Okno grafiki Szacowany czas trwania lekcji: 1 godzina Okno grafiki Podczas tej lekcji uzyskasz informacje na temat: Instrukcji używających obiektu GraphicsWindow. Właściwości obiektu

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Laboratorium Systemów SCADA

Laboratorium Systemów SCADA Laboratorium Systemów SCADA Ćwiczenie 4. Tworzenie skryptów w programie InTouch Opracował: dr hab. inż. Sebastian Dudzik 1. Cel ćwiczenia Zapoznanie się z rodzajami skryptów w programie InTouch. Zapoznanie

Bardziej szczegółowo

Edytor tekstu MS Word 2003 - podstawy

Edytor tekstu MS Word 2003 - podstawy Edytor tekstu MS Word 2003 - podstawy Cz. 4. Rysunki i tabele w dokumencie Obiekt WordArt Jeżeli chcemy zamieścić w naszym dokumencie jakiś efektowny napis, na przykład hasło reklamowe, możemy wykorzystać

Bardziej szczegółowo

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.5

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.5 Mariusz Rudnicki mariuszrudnicki@etipggdapl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ5 Komunikacja IPC Omawiane zagadnienia Czym jest komunikacja międzyprocesowa? W jakim celu stosuje się komunikację

Bardziej szczegółowo

System Informatyczny CELAB. Terminy, alarmy

System Informatyczny CELAB. Terminy, alarmy Instrukcja obsługi programu 2.18. Terminy, alarmy Architektura inter/intranetowa Aktualizowano w dniu: 2007-09-25 System Informatyczny CELAB Terminy, alarmy Spis treści 1. Terminy, alarmy...2 1.1. Termin

Bardziej szczegółowo

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

MS Access formularze

MS Access formularze MS Access formularze Formularze to obiekty służące do wprowadzania i edycji danych znajdujących się w tabelach. O ile wprowadzanie danych bezpośrednio do tabel odbywa się zawsze w takiej samej formie (arkusz

Bardziej szczegółowo

Program V-SIM tworzenie plików video z przebiegu symulacji

Program V-SIM tworzenie plików video z przebiegu symulacji Program V-SIM tworzenie plików video z przebiegu symulacji 1. Wprowadzenie Coraz częściej zdarza się, że zleceniodawca opinii prosi o dołączenie do opracowania pliku/ów Video z zarejestrowanym przebiegiem

Bardziej szczegółowo

Instrukcja obsługi platformy PROMEDIO Transmisje. wersja dla nauczyciela

Instrukcja obsługi platformy PROMEDIO Transmisje. wersja dla nauczyciela Instrukcja obsługi platformy PROMEDIO Transmisje wersja dla nauczyciela Spis treści Instrukcja obsługi platformy 1 1. Na początku 3 2. Widok ogólny 4 3. Menu główne 5 4. Zarządzanie oknami 6 5. Okno audio

Bardziej szczegółowo

IPC: Kolejki komunikatów

IPC: Kolejki komunikatów IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat

Bardziej szczegółowo

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA EGMONT INSTRUMENTS PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA EGMONT INSTRUMENTS tel. (0-22) 823-30-17, 668-69-75 02-304 Warszawa, Aleje Jerozolimskie 141/90 fax (0-22) 659-26-11

Bardziej szczegółowo

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Zadaniem poniższego opisu jest pokazanie, jak stworzyć aplikację z dostępnym interfejsem. Sama aplikacja nie ma konkretnego zastosowania i

Bardziej szczegółowo

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii: Uruchom program AutoCAD 2012. Utwórz nowy plik wykorzystując szablon acadiso.dwt. 2 Linia Odcinek linii prostej jest jednym z podstawowych elementów wykorzystywanych podczas tworzenia rysunku. Funkcję

Bardziej szczegółowo