Programowanie w środowiskach graficznych -...
-
Upload
phungtuyen -
Category
Documents
-
view
221 -
download
0
Transcript of Programowanie w środowiskach graficznych -...
Programowanie w środowiskach graficznych Wykład 1 OS, Podstawy Windows API
1
WSTĘP
2
Cele wykładu Zaznajomić z podstawowymi
mechanizmami programowania zdarzeniowego (w systemie operacyjnym Windows).
Nauczyć wykorzystania funkcjonalności Windows API, biblioteki Windows Forms zawartej w .NET Framework.
Zaznajomić z ogólnymi zasadami projektowania i tworzenia graficznego interfejsu użytkownika z uwzględnieniem ergonomii oraz analizy potrzeb potencjalnych użytkowników.
Używany do tego język: C# 3
Cele laboratorium Implementacja wybranych mechanizmów
programowania w środowisku graficznym systemu Windows (przy użyciu języka C# w środowisku programistycznym Microsoft Visual Studio)
Znajomość podstawowych mechanizmów wykorzystywanych podczas programowania w systemie Windows
Umiejętność wykorzystania funkcjonalności Windows API, obudowanej w bibliotekę Windows Forms zawartą w .NET Framework do tworzenia interfejsów użytkownika
Znajomość ogólnych zasad projektowania graficznego interfejsu użytkownika z uwzględnieniem ergonomii oraz analizy potrzeb potencjalnych użytkowników
4
Treści przedmiotu 1. Charakterystyka programowania obiektowego w języku C#. 2. Podstawy graficznego interfejsu użytkownika. Ogólne zasady
tworzenia graficznego interfejsu użytkownika. Urządzenia wejściowe i wyjściowe.
3. Podstawowe informacje na temat Windows API: okna, komunikaty, struktury danych, obsługa myszy i klawiatury. Standardowe kontrolki Windows, etykiety, menu, menu kontekstowe, paski narzędzi, paski statusu, paski podziału.
4. Tworzenie aplikacji z użyciem Windows Forms: podstawowe informacje – aplikacja, formularze, zdarzenia, okna dialogowe. Kontrolki dostępne w Windows Forms. GDI a GDI+. Używanie GDI+: pióra, pędzle, rysunki, praca z tekstem, praca z informacją obrazową, transformacje graficzne. Prezentacja i edycja informacji ze źródeł tabelarycznych: DataGrid, ListBox, DataGridView.
5. Okna dialogowe: modalne, niemodalne, standardowe. Komunikacja między oknami.
6. Wybrane mechanizmy systemu operacyjnego Windows: schowek, rejestr, pamięć, procesy i wątki, biblioteki DLL, COM, ActiveX.
7. Lokalizacja i regionalizacja: tworzenie wielojęzycznych GUI.
5
Literatura: 1. Lars Powers, Mike Snell - Microsoft Visual
Studio 2008. Ksiega eksperta. Helion, 2009. 2. Andrew Thoelsen - Jezyk C# i platforma
.NET. Wydawnictwo Naukowe PWN, 2008. 3. John Sharp, Jon Jagger - Microsoft Visual
C# .NET. Wydawnictwo RM, 2002. 4. Allen Jones - C# Księga przykładów.
Wydawnictwo Promise, 2005. 5. Jose Mojica - C# i ASP.net. Szybki start.
Helion, 2004. 6. Joe Mayo - C# 3.0 dla .NET 3.5 Księga
eksperta. Helion, 2010.
6
Zaliczenie Laboratorium: zaliczenie na ocenę, na
które składają się oceny z kolokwium zaliczeniowego oraz samodzielnej pracy na zajęciach.
Wykład: kolokwium zaliczeniowe.
7
SYSTEMY OPERACYJNE NA ŚWIECIE
KONTEKST:
8
Użycie „desktopowych” systemów operacyjnych na świecie
9 Data provided by > Net Applications, http://www.netmarketshare.com/
Użycie „desktopowych” systemów operacyjnych na świecie (styczeń 2016)
10 Data provided by > Net Applications, http://www.netmarketshare.com/
Użycie „mobilnych” i „tabletowych” systemów operacyjnych
11 Data provided by > Net Applications, http://www.netmarketshare.com/
styczeń 2016
styczeń 2015
Wizyty na witrynach www (OS)
12 http://www.w3counter.com/globalstats.php (31.01.2015)
Operating Systems 1 Windows 7 26.73% 2 iOS 9 13.74% 3 Android 4 11.70% 4 Android 5 8.18% 5 Windows 10 8.02% 6 Mac OS X 7.03% 7 Windows 8.1 6.24% 8 Windows XP 4.24% 9 iOS 8 3.17% 10 Linux 2.62%
Wizyty na witrynach www (przeglądarka)
13 http://www.w3counter.com/globalstats.php (31.01.2016)
Wizyty na witrynach www (trendy przeglądarek)
14 Data provided by > Net Applications, http://www.netmarketshare.com/
Wizyty na witrynach www (przeglądarka)
15 http://www.w3counter.com/globalstats.php (31.01.2016)
Screen Resolutions 1 1366x768 16.67%
2 360x640 9.40%
3 1920x1080 7.45%
4 768x1024 6.72%
5 1024x768 5.47%
6 375x667 5.02%
7 320x568 5.01%
8 1280x800 4.70%
9 1440x900 4.06%
10 1280x1024 3.92%
Popularność języków programowania (http://www.tiobe.com)
16
Wnioski Programujemy na „desktopa” – wybieramy Windows
(~90%); Programujemy „mobilnie” – wybieramy Androida
(otwarty, niejednorodny) lub iOS (hermetyczny); Programujemy „www” – uwzględniamy wiele
rozdzielczości i pamiętamy, że nie wszystkie technologie działają na różnych urządzeniach;
… Programujemy gry – wybieramy konkretną platformę
(Wii U, PlayStation 3/4, Xbox 360/One, PC, „mobilne”) lub tworzymy wieloplatformowo (np. Unity, JavaScript pod przeglądarkę).
17
Wersje MS Windows
18
http://commons.wikimedia.org/wiki/File%3AWindows_Updated_Family_Tree.png By Kristiyan Bogdanov [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons from Wikimedia Commons
19
Narzędzia programistyczne dla Windows (wybrane) Windows API
◦ Win16 - do Windows 3.1 ◦ Win32s - Windows 3.1 ◦ Win32 - od Windows 95 i wszystkie wersje NT
Visual Basic Visual C++
◦ MFC (Microsoft Foundation Class Library) ◦ WTL (Windows Template Library)
Visual J++ .NET Windows Forms (.NET Framework 1.0+) m.in. język C# Windows Presentation Foundation (.NET Framework 3.0+)
Delphi Builder C++ Borland Developer Studio
Qt GTK+ wxWidgets
20
PODSTAWY WINDOWS API
21
Windows API Windows Application Programming Interface (API) to uniwersalny zestaw funkcji, które umożliwiają aplikacjom (uruchomionym programom) współpracę z SO Windows. API pojawiło się w zamierzchłym Windows.
3.1, ale jest rozwijane w kolejnych wersjach Windows.
Jest wstecznie kompatybilne. Korzystanie z Windows API jest możliwe z
wielu języków programowania (potrzebna jest tylko obsługa DLL), m.in. C, C++, C#, Visual Basic, Object Pascal, a nawet asembler.
22
Kategorie funkcji API Zarządzanie, administracja,
serwisowanie, konfigurowanie SO Monitoring wydajności SO Grafika 2D i 3D oraz media Usługi sieciowe Bezpieczeństwo (np. kryptografia,
autoryzacja, uwierzytelnianie) Obsługa pamięci, plików, peryferiów,
procesów i wątków Tworzenie i zarządzanie oknami.
23
Aplikacja a okna Aplikacja nie musi mieć żadnych okien,
ale zwykle ma jedno lub wiele okien. Aplikacja obsługująca pojedynczy
dokument to tzw. aplikacja SDI (Single Document Interface); np. Paint, Notatnik, a nawet obecnie MS Word.
Aplikacja obsługująca i wyświetlająca wiele podobnych dokumentów to tzw. aplikacja MDI (Multiple Document Interface); np. przeglądarki www, zaawansowane programy graficzne.
24
25
Komunikaty Aplikacje Windows działają na zasadzie odpowiedzi na
zdarzenia generowane przez system i użytkownika. Są to komunikaty.
Komunikat to po prostu wywołanie funkcji. Komunikaty mają pewną określoną sygnaturę
(parametry), w miarę potrzeb. ◦ Przykład: komunikat mówiący o kliknięciu przyciskiem myszy na
kontrolce, zwykle zawiera: referencję na kontrolkę (object sender), oraz m.in. który przycisk kliknięto, ile razy, położenie myszy w oknie. To
wszystko upakowane w pojedynczym obiekcie (MouseEventArgs e).
Taki komunikat trafia do aplikacji zarządzającej kontrolką, na której kliknięto, a ona może na to odpowiednio zareagować (tzw. handler zdarzenia).
26
Obsługa komunikatów Aplikacja powinna obsługiwać
komunikaty wysłane jej przez okno (okna), m.in.: ◦ reagować na mysz i klawiaturę
użytkownika, np. wpisywać tekst w okienku; ◦ uaktualniać widoki, wykresy, itp.; ◦ otwierać, zapisywać i zamykać
dokumenty; ◦ zminimalizować, zmienić rozmiar czy
zamknąć okno (a może i samą aplikację).
27
Typy komunikatów generowane przez SO generowane przez użytkownika generowane przez aplikację niestandardowe: utworzone i zarejestrowane
przez programistę (za pomocą RegisterWindowMessage())
28
Pętla komunikatów Komunikaty obsługiwane są w kolejce
FIFO danej aplikacji. Program odczytuje kolejno komunikaty i
je obsługuje. Programistycznie jest to pętla, w której
następują: ◦ odczyt kolejnego komunikatu (GetMessage), ◦ przetwarzanie (TranslateMessage), oraz ◦ przesłanie do obsługi (DispatchMessage).
29
30
Windows Forms Windows Forms to obiektowa „nakładka”
(biblioteka) na Windows API, która wybitnie ułatwia z niej korzystanie.
Windows Forms jest częścią platformy .NET (wielojęzyczna i wielośrodowiskowa)
Do programowania będziemy używać IDE Microsoft Visual Studio (wersje 2010, 2012 lub 2013)
Będziemy używać Windows Forms oraz VS w połączeniu z językiem C#.
31
32
„Hello World” w Windows Forms
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.Text = "Hello world!"; } } }