Cechy systemu Windows
|
|
- Grzegorz Kowalczyk
- 9 lat temu
- Przeglądów:
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);
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
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:
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
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
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
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.
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
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
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,
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).
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
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
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
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
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).
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ę
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.
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
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
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
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
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
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
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
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
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
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
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
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
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ę
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
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,
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
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
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
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ą
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
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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ć
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
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
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
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
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
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()
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
// 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
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.
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
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
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
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
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
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
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
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,
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
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.
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,
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
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
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
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
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
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
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
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ć
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ę
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
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
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
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
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
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
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
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
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ę