G D I+
ạ ươ
G V: Ph m A nh Ph ng Em ail: paphuong@ fit.hcm uns.edu.vn
C h ủ đề GDI & Device Context GDI+ Các namespace Kĩ thu t di chuy n nh ậ ể ả Kĩ thu t ch ng flicker ậ
ố
ệ ệ ẽ ọ
G D I T p hàm A PI dùng th c hi n vi c m i thao tác v ậ
ệ đ ề để ự trong h i u hành W inX P
D evice Context là n i m à m i thao tác v th c hi n trên ọ
ẽ ự ệ ơ
ồ đ ó. Bao g m có: Paint Brush Im age Color ..
ớ ướ đố ượ ớ
G D I+ Th c hi n v trên m ôi tr ng .N ET ườ ự Cung c p t p nam espace, l p h ng i t ng l n cho
ệ
đượ
ế ằ đố ượ để ẽ ỗ ệ ẽ ấ ậ ự ệ ẽ vi c th c hi n v D evice Context c thay th b ng i t ng G raphic M i control u có i t ng G raphic v nó, bao đố ượ đề
ồ g m Form , Button, TextBox, … .
G D I+
Các nam espace chính
Tên
ĩ
System .D raw ing
ẽ ơ đố
M ô tả Đị ữ đố ượ nh ngh a nh ng i t ng v c ả b n (Fonts, Pens, Brushes,..) và i ượ t ng G raphic ấ
ẽ
System .D raw ing.D raw ing2D
ư
ữ đố ượ Cung c p nh ng i t ng v vector ề 2 chi u nh gradient brushes, gradient pens,..
ớ
System .D raw ing.Im age
ư ự ướ ả
ệ ả Thao tác v i hình nh nh th c hi n ẽ ấ v , l y thông tin kích th c nh, …
ệ
ữ đố
ấ
System .D raw ing.Printing
ự Th c hi n in; cung c p nh ng i ớ ượ t ng giao tác v i printer
ự
ệ
System .D raw ing.Text
ẽ ớ Th c hi n v v i các font.
Đố ượ
đố ượ Đ ủ
đố ượ ẽ đề ự ệ
i t ng G raphic ây là i t ng quan tr ng c a G D I+ ọ M i thao tác v u th c hi n trên i t ng G raphic
B t kì l p control nào c ng u có thu c tính G raphic ũ đề
ự ệ
ẽ ẽ ấ đ
đượ
ọ này ấ ộ
c
Reload
ớ để ẽ dùng v chính nó Có 2 cách truy xu tấ S ki n Paint H àm CreateG raphic(): nh v s m t i khi Form Ả
Ví dụ
Đố ượ
i t ng G raphic
D anh sách các hàm vẽ
Tên
ế ậ
M ô tả ẽ
Thi t l p vùng v
Clip
ộ
ẽ ớ
Clear(Color)
Tô toàn b vùng v v i m àu Color ố ề ậ đ ể
ẽ đườ
ố
D raw Curve
ng u n con n i li n t p i m
V
ẽ
D raw Eclipse
V hình Eclipse ẽ ể ượ
D raw Icon
V bi u t ng Icon
ữ ậ
ẽ
D raw Rectangle
V hình ch nh t
ẽ
độ
D raw A rc
V hình tròn theo
Ví dụ
ẽ
Ví dụ V hình Eclipse
Ví dụ
ẽ V Icon
Ví dụ
ẽ V hình tròn (D raw A rc)
Đố ượ
i t ng G raphic
D anh sách các hàm tô m àu
Tên
M ô tả ữ ậ
FillRectangle
Tô m àu hình ch nh t
FillEclipse
FillRegion
Tô m àu hình eclipse ẽ ộ Tô m àu m t vùng v
ở ậ đ ể
FillPolygon
ạ Tô m àu hình t o b i t p i m
ủ
ấ
From H D C
L y device context c a graphic
ả
ReleaseH D C
G i i phóng device context
ể đố ượ ứ ă ẽ ấ
System .D raw ing Cung c p nh ng ch c n ng, ki u i t ng tham gia v ữ
s d ng các i t ng v nâng cao, ta s dùng
đố ượ ẽ
ơ ả c b n Để ử ụ ẽ System .D raw ing.D raw ing2D , System .D raw ing.Im aging và System .D raw ing.Text
Pen, Pens
Brushes
FontFamily
Graphic Object
TextureBrush
Bitmap
SolidBrush
Pen D ùng Pen có s n thông qua Pens ẵ Pens.A liceBlue Pens.A qua Pens.Black Pens.Brow n …
D ùng Pen do t t o thông qua l p Pen
ớ
ự ạ new Pen(Brush) new Pen(Color) new Pen(Color, W idth)
Brush D ùng Brush t cóự
Brushes.Lavendar Brushes.Ivory Brushes.LightBlue
TextureBrush: dùng nh im age v để ẽ ả SolidBrush:T o c v i m àu n s c đơ ắ ạ ọ ớ
Ví dụ
TextureBrush
Ví dụ
SolidBrush
Ví dụ DrawString
đố ớ ả ẽ ấ ớ
System .D raw ing.D raw ing2D Cung c p các l p cho phép v nâng cao i v i nh v ẽ
ề ặ Vecto ho c 2 chi u
GraphicsPath
LinearGradientBrush
HatchBrush
Graphic Object
PathGradientBrush
Blend
RegionData
Ví dụ
G raphicsPath
Ví dụ
LinearGradientBrush
Blend Blend & Position: ị ừ
ạ đ ể
đ ể
đế
Blend có giá tr t 0.0f n 1.0f. T i i m Position, i m
ẽ đượ ạ
ế
ở
m àu s
ắ đầ c t o b i % m àu b t u và % m àu k t thúc
Ví dụ
Ví dụ
Ví dụ
M ultiColor Blend
Ví dụ
M ultiColor Blends
Ví dụ
H atchBrush
ể ả
ậ
ĩ K thu t di chuy n nh ự ệ ử ụ S d ng Tim er & s ki n Paint
ẽ đượ ệ đ ề ọ
Tim er N am espace: System .Tim ers.Tim e nh kho ng th i gian 1 hàm s ờ
ự ệ
ử
ả
c h i u hành g i
Interval Thu c tính: ộ
ự ệ
ả
ờ
đượ
Interval: Cho bi t kho ng th i gian m à s ki n Tick
c
ế ọ g i (m ilisecond)
ả Đị ạ để ự l i th c thi S ki n: ự ệ Tick: K hai báo hàm x lý s ki n Tick sau 1 kho ng
Ví d :ụ
ệ ẽ ạ để ự
Invalidate H ành ng Invalidate dùng th c hi n v l i Form độ
S d ng hàm : Invalidate
đ ho c 1 vùng nào ó trên Form .
ặ ử ụ