System operacyjny Windows

Transkrypt

System operacyjny Windows
Gliwice, Kwiecień 2004
Plan wykładu
Programowanie
w środowiskach graficznych
Sy stem operacy jny Windows
Historia
C echy sy stemu Windows
Program sterowany zdarzeniami
Ry sowanie
Kontrolk i
Marek Mittmann
2
Historia systemu Windows
Cechy systemu Windows
Prace na d GU I w Xero x PARC – lata 70
Pie rwsza wersja Wi nd ows – l isto pad 19 85
Wi nd o ws 2.0 - list op ad 19 87
Wi nd o ws/2 87 i Win do ws/ 38 7
Wi nd o ws 3.0 – maj 19 90 – ws parc ie dla try bu c hro n io neg o
proc esor ów 80 x8 6
Wi nd o ws 3.1 – k wiec ie ń 1 99 2 – no we t ech no lo gi e: Tru eTyp e,
OLE, mu lti med ia
Wi nd o ws NT – l ip iec 199 3 – pi er wsza wersja prac ująca w t ryb ie
32- bit o wym
Wi nd o ws 95 – k wi ecie ń 1 99 5
Wi nd o ws 98, Wi n do ws ME, Wi nd o ws 20 00, Wi nd o ws XP, ...
Interfejs graficzny
Wielow ątkow ość
GUI oparte na zestaw ie standardowych
komponentów graficzny ch
E lementy OOUI
N iezależność od sprzętu, sterowniki urządzeń
Biblioteki dołączane dy namicznie (D LL)
Aplikacje sterow ane zdarzeniami
3
Windows API
Programy sterowane zdarzeniami
Podsy stemy : Kernel, User, GDI
Korzy stanie z funk cji Windows API
Zdarzenia
Konwencje
Ty py danych, struktury , uchwyty
U żywanie w różnych językach
programow ania
Dokumentacja
4
Reagowanie na zdarzenia
Don't Call Me, I'll Call You
MSDN , P latform SD K
5
Rodzaje zdarzeń
G enerow anie komunikatów
F unkcje S endM essage i PostM essage
Kolejka komunikatów
P rocedura okna
6
1
Przykładowa aplikacja
Rysowanie
int WIN API Win Mai n(H INS TAN CE h Ins tan ce, HI NST ANCE hP rev Ins tan ce,
P STR sz CmdL ine , i nt iCm dSh ow)
{
/* ... */
Reg iste rCl ass (&w ndc las s);
//
hwn d = Cre ate Win dow ( / * .. . * / ) ;
// Stw orz eni e
Sho wWin dow (hw nd, iC mdS how) ;
// i o twa rci e o kna
Upd ateW ind ow( hwn d);
//
whi le ( Get Mes sag e(& msg , NU LL, 0, 0) ) {
T ran sla teM ess age (&ms g);
// Pob ier ani e k omu nik atów
D isp atc hMe ssa ge( &msg );
// z k ole jki
}
ret urn msg .wP ara m;
}
// P roc edur a o kna
LRES ULT CAL LBA CK Wnd Pro c(H WND hwn d, UIN T m ess age, WP ARA M w Par am, LPA RAM lP ara m)
{
sw itch (m ess age ) {
ca se WM_ xxx x:
// Obsł uga ko mun ika tów
/ * . .. */
r etu rn 0;
}
re turn De fWi ndo wPr oc( hwnd , m ess age , w Par am, lPa ram );
}
Kontekst urządzenia (DC )
F unkcje GD I
Atry buty kontekstu urządzenia
Obiekty GDI
7
Rysowanie - przykład
8
Urządzenia wejśc iowe
/* . .. */
LRES ULT CAL LBA CK
{
HD C
PA INTS TRU CT
RE CT
Zdarzenie WM_PA INT
Regiony zak tualizowane i unieważnione
Podsy stem GDI
Klaw iatura
Wnd Pro c(H WND hwn d, UIN T m ess age, WP ARA M w Par am, LPA RAM lP ara m)
hdc ;
ps;
rec t;
sw itch (m ess age ) {
/* .. . * /
ca se WM_ PAI NT:
h dc = B egi nPa int( hwn d, &ps );
G etC lie ntR ect (hwn d, &re ct) ;
S ele ctO bje ct( hdc, Ge tSt ock Obj ect (GRA Y_B RUS H)) ;
R ect ang le( hdc , 10 , 1 0, rec t.r igh t-10 , r ect .bo tto m-1 0);
D raw Tex t(h dc, "He llo wo rld ", -1, &re ct,
DT_ SIN GLE LIN E | DT _CEN TER | DT_ VCE NTE R);
E ndP ain t(h wnd , &p s);
r etu rn 0;
}
re turn De fWi ndo wPr oc( hwnd , m ess age , w Par am, lPa ram );
Mysz
}
Akceleratory
Ognisko wejściowe
Komunikaty związane z klawiaturą
Kody klawiszy – Virtual Key Codes
Komunikaty związane z myszą
Kursory
Przechwytywanie myszy – funkcja SetCapture
9
Okna dialogowe
10
Kontrolki
Funk cja MessageBox
Ok na modalne i niemodalne
Procedura obsługi k omunik atów
Ok na z zak ładk ami i k reatory
Standardowe ok na dialogowe sy stemu
Windows
11
Ok na potomne
Standardowe k ontrolk i Windows
Uży wanie k ontrolek
Umieszczanie w oknie
Wywoływanie funkcji kontrolek
Obsługa komunikatów
Kontrolk i A ctiv eX
12
2
Kontrolki - przykład
Multimedia
/* . .. */
LRES ULT CAL LBA CK Wnd Pro c(H WND hwn d, UIN T m ess age, WP ARA M w Par am, LPA RAM lP ara m)
{
HW ND h Edi t;
sw itch (m ess age ) {
/* .. . * /
ca se WM_ CRE ATE :
/ / U two rze nie kon tro lki
h Edi t = Cr eat eWin dow ("e dit ", /* ... */) ;
r etu rn 0;
ca se WM_ COM MAN D:
/ / O bsł uga ko muni kat u g ene row ane go p rze z k ont rol kę
i f ( LOW ORD (wP aram ) = = I D_E DIT )
i f ( HIW ORD (wPa ram ) = = E N_E RRS PACE ||
HIW ORD (wP ara m) == EN_ MAX TEXT )
Mes sag eBox (hw nd, "E dit co ntro l o ut of spa ce" , NU LL, 0) ;
r etu rn 0;
Odtwarzanie plik ów multimedialny ch
F unkcja P laySound
M edia Control Interface (MCI)
D irectS how, D irectS ound, D irectM usic, …
Grafik a 3D i gry k omputerowe
D irectX
}
re turn De fWi ndo wPr oc( hwnd , m ess age , w Par am, lPa ram );
}
13
Style wizualne w Windows XP
C o jest potrzebne?
Biblioteka Comctl32.dll w wersji 6.0
14
Plik manifestu
<?xm l v ersi on= "1. 0" enc odi ng=" UTF -8" st and alo ne=" yes "?>
<ass emb ly x mln s=" urn :sc hem as-m icr oso ft- com :as m.v1 " m ani fes tVe rsi on=" 1.0 ">
<ass emb lyId ent ity
v ers ion= "1. 0.0 .0"
p roc esso rAr chi tec tur e=" X86"
n ame ="Mi cro sof t.W inw eb.<Executable Name>"
t ype ="wi n32 "
/>
<des cri ptio n>. NET co ntr ol depl oym ent to ol< /de scri pti on>
Nazwa pliku
<dep end ency >
< dep ende ntA sse mbl y>
wykonywalnego
<a ssem bly Ide nti ty
aplikacji (bez
type ="w in3 2"
rozszerzenia )
name ="M icr oso ft. Win dows .Co mmo n-C ont rol s"
vers ion ="6 .0. 0.0 "
proc ess orA rch ite ctu re=" X86 "
publ icK eyT oke n=" 659 5b64 144 ccf 1df "
lang uag e=" *"
/>
< /de pend ent Ass emb ly>
</de pen denc y>
</as sem bly>
(dostarczana z Window s XP )
P lik manifestu – plik XM L dołączony do
aplikacji jako zasób lub umieszczony w
katalogu z plikiem wykonywalnym
W kontrolkach, które mają w łaściw ość
F latS ty le, należy ustawić wartość
F latS ty le.Sy stem
15
16
Dodawanie manifestu do aplikacji
Jako plik zewnętrzny
Dziękuję za uwagę
Zmienić nazwę pliku manifestu na
NazwaAplikacji.exe.manifest
Umieścić w katalogu aplikacji, razem z plikiem
wykonywalnym
Jako zasób zawarty w pliku wykonywalnym
Dołączyć do pliku wykonywalnego plik manifestu
jako zasób typu RT_MANIFEST
Zmienić wartość identyfikatora zasobu na 1
17
3