Chương 10
TƯƠNG TÁC GIỮA NGƯỜI DÙNG
& CHƯƠNG TRÌNH
Chương 10: Tương tác giữa người dùng & chương trình
10.1 Tổng quát về tương tác giữa người dùng & chương
trình
10.2 Giao tiêp với b2n phím.
10.3 Giao tiếp với chuột
10.4 Vẽ văn bản và đồ họa lên đối tượng giao diện
10.5 Vấn đề in ấn trong VB
31 trang |
Chia sẻ: phuongt97 | Lượt xem: 458 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Tin học đại cương - Chương 10: Tương tác giữa người dùng & chương trình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
pect miêu tả tỉ lệ kích thước dọc/ngang của ellipse (default là 1 để vẽ
vòng tròn).
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 280
Các thuộc tính qui định thông số vẽ
Khi ta gọi các method vẽ PSet, Line, Circle, PaintPicture trên 1 đối tượng vẽ
nào đó (Printer, Form, PictureBox) thì các method này dùng các thuộc tính sau
để qui định thông số vẽ của chúng:
CurrentX, CurrentY miêu tả tọa độ điểm hiện hành, nó được dùng làm gốc
tọa độ cho các điểm vẽ nếu có dùng từ khóa Step kèm theo điểm vẽ đó.
FillStyle, FillColor xác định mẫu tô và màu tô các phần tử có diện tích (box,
circle).
BackColor xác định màu nền của đối tượng.
ForeColor xác định màu để hiển thị text hay vẽ biên các phần tử (line, box,
circle).
DrawMode xác định cách thức vẽ (vbBlackness, vbWhiteness, vbInvert...).
DrawStyle xác định mẫu vẽ của đường vẽ (line, box, circle).
DrawWidth xác định độ dày của đường vẽ (line, box, circle).
Ta có thể đọc/hiệu chỉnh lại giá trị các thuộc tính theo yêu cầu.
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 281
Chi tiết về thuộc tính qui định đơn vị tính kích thước
Thuộc tính ScaleMode miêu tả đơn vị tính kích thước với qui định sau:
Constant Setting Description
vbUser 0 Indicates that one or more of the ScaleHeight,
ScaleWidth, ScaleLeft, and ScaleTop properties
are set to custom values.
vbTwips 1 (Default)Twip (1440 twips per logical inch;
567 twips per logical centimeter).
vbPoints 2 Point (72 points per logical inch).
vbPixels 3 Pixel (smallest unit of monitor or printer resolution).
vbCharacters 4 Character (horizontal = 120 twips per unit;
vertical = 240 twips per unit).
vbInches 5 Inch.
vbMillimeters 6 Millimeter.
vbCentimeters 7 Centimeter.
vbHimetric 8 HiMetric
vbContainerPosition 9 Units used by the control's container to determine
the control's position.
vbContainerSize 10 Units used by the control's container to determine
the control's size.
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 282
Chi tiết về thuộc tính miêu tả màu
Mỗi màu ở chế độ TrueColor được tổng hợp từ 3 thành phần màu cơ bản Red -
Green - Blue. Trọng số của mỗi thành phần màu được miêu tả bởi 1 giá trị Byte
(từ 0 đến 255). Xác định 1 màu là xác định 3 thành phần màu của nó.
Các thuộc tính BackColor, ForeColor, FillColor có giá trị miêu tả màu dạng RGB
với qui định sau:
Color Red Value Green Value Blue Value
Black 0 0 0
Blue 0 0 255
Green 0 255 0
Cyan 0 255 255
Red 255 0 0
Magenta 255 0 255
Yellow 255 255 0
White 255 255 255
Thí dụ ta viết lệnh gán: Form1.BackColor = RGB(0,0,0) để thiết lập màu nền
của form tên Form1 là màu đen.
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 283
Chi tiết về thuộc tính miêu tả màu (tt)
Nếu chỉ muốn dùng 1 trong 16 màu cơ bản của QBasic (version Basic đầu tiên
của Microsoft chạy trên DOS), ta có thể dùng hàm QBColor. Bảng sau liệt kê 16
màu cơ bản này:
Number Color Number Color
0 Black 8 Gray
1 Blue 9 Light Blue
2 Green 10 Light Green
3 Cyan 11 Light Cyan
4 Red 12 Light Red
5 Magenta 13 Light Magenta
6 Yellow 14 Light Yellow
7 White 15 Bright White
Thí dụ ta viết lệnh gán: Form1.BackColor = QBColor(15) để thiết lập màu nền
của form tên Form1 là màu trắng sáng.
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 284
Chi tiết về thuộc tính mẫu tô nền
Thuộc tính FillStyle có giá trị miêu tả 1 mẫu tô nền với qui định sau:
Constant Setting Description
VbFSSolid 0 Solid
VbFSTransparent 1 (Default) Transparent
VbHorizontalLine 2 Horizontal Line
VbVerticalLine 3 Vertical Line
VbUpwardDiagonal 4 Upward Diagonal
VbDownwardDiagonal 5 Downward Diagonal
VbCross 6 Cross
VbDiagonalCross 7 Diagonal Cross
Thí dụ ta viết lệnh gán: Form1.FillStyle = VbVerticalLine để thiết lập mẫu tô nền
của các phần tử trong form là các đường thẳng đứng.
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 285
Chi tiết về thuộc tính mẫu vẽ đường viền
Thuộc tính DrawStyle có giá trị miêu tả 1 mẫu vẽ đường viền với qui định sau:
Constant Setting Description
VbSolid 0 (Default) Solid
VbDash 1 Dash
VbDot 2 Dot
VbDashDot 3 Dash-Dot
VbDashDotDot 4 Dash-Dot-Dot
VbInvisible 5 Transparent
VbInsideSolid 6 Inside Solid
Thí dụ ta viết lệnh gán: Form1.DrawStyle = VbDash để thiết lập mẫu vẽ đường
viền của các phần tử trong form là các đường gạch-gạch dài.
Lưu ý thuộc tính DrawStyle chỉ có nghĩa theo bảng trên khi ta thiết lập thuộc
tính DrawWidth = 1. Trong trường hợp DrawWidth > 1 thì DrawStyle 5 đều
tạo ra nét vẽ liên tục.
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 286
Function PaintPicture: vẽ ảnh bitmap bất kỳ
Mỗi đối tượng vẽ có method PaintPicture cho phép ta vẽ ảnh bitmap bất kỳ. Cú
pháp như sau:
[objName.]PaintPicture picture, dx, dy, dw, dh, sx, sy, sw, sh, opcode
trong đó:
objName là tên của Form, PictureBox hay Printer, nếu không có thì form
hiện hành được vẽ.
picture là ảnh bitmap gốc được dùng để vẽ.
dx, dy là toạ độ đỉnh trên trái của vùng chứa ảnh vẽ trong đối tượng vẽ.
dw, dh là độ rộng, độ cao của vùng chứa ảnh vẽ trong đối tượng vẽ.
sx, sy là toạ độ đỉnh trên trái của vùng chứa ảnh trong ảnh gốc.
sw, sh là độ rộng, độ cao của vùng chứa ảnh trong ảnh gốc.
opcode miêu tả hành vi đưa ảnh gốc vào đối tượng vẽ, ta thường dùng các
mã sau:
vbSrcCopy: copy ảnh gốc vào vị trí qui định của đối tượng vẽ.
vbSrcPaint: Or từng pixel ảnh gốc với từng bit đối tượng vẽ tương ứng.
vbSrcInvert: Xor từng pixel ảnh gốc với từng bit đối tượng vẽ tương ứng.
vbSrcAnd: And từng pixel ảnh gốc với từng bit đối tượng vẽ tương ứng...
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 287
Thí dụ về việc dùng function PaintPicture
Tạo 1 form trống, 'add' điều khiển PictureBox chứa ảnh gốc vào form, set thuộc tính Visible
= False, thuộc tính Picture = đườn dẫn file ảnh, rồi viết đoạn code sau cho form:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Load()
AutoRedraw = False ' để VB gọi hàm xử lý biến cố Paint
End Sub
Private Sub Form_Paint() ' hiển thị ảnh chạy từ từ sang phải
Dim x As Integer, y As Integer
ScaleMode = vbPixels ' đơn vị tính của form là pixel
Picture1.ScaleMode = vbPixels ' đơn vị tính ở ảnh gốc là pixel
x = 0 ' thiết lập vị trí đầu của ảnh
y = 50
While True
PaintPicture Picture1, x, y, 60, 60, 0, 0, , , vbMergePaint ' vẽ ảnh ở vị trí x,y
DoEvents ' cho phép ứng dụng đáp ứng sự kiện
Sleep (10) ' ngủ chờ 10ms
Line (x, y)-(x + 60, y + 60), BackColor, BF ' xóa ảnh vừa vẽ
x = x + 4 ' di chuyển vị trí về bên phải 4 pixel
If (x - 60 > ScaleWidth) Then x = 0 ' nếu ảnh đạt lề phải thì set về trái
Wend
End Sub
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn: Tin học
Slide 288
10.5 Vấn đề in ấn trong VB
Trong chương trình VB, ta có thể in thông tin ra máy in bằng cách dùng 1 trong
3 cách sau:
dùng các method vẽ văn bản, đồ họa và ảnh bitmap lên 1 form theo ý muốn
rồi gọi method PrintForm để in form kết quả ra máy in. Đây là cách dễ dàng
nhất để kiểm tra kết quả trước khi in ra giấy thực sự, nhưng kết quả có độ
phân giải không cao (vì trùng với độ phân giải của màn hình).
dùng các method vẽ văn bản, đồ họa và ảnh bitmap theo ý muốn trực tiếp
lên đối tượng Printer cùng 2 method điều khiển NewPage & EndDoc để
xuất kết quả trực tiếp ra máy in default của Windows. Cách này cho kết quả
có độ phân giải đúng với máy in (thường rất cao so với độ phân giải màn
hình).
dùng lệnh Set Printer = Printers(n) để chọn máy in cụ thể trong danh sách
các driver máy in hiện có của Windows rồi dùng các method vẽ văn bản, đồ
họa và ảnh bitmap theo ý muốn trực tiếp lên đối tượng Printer cùng 2
method điều khiển NewPage & EndDoc để xuất kết quả trực tiếp ra máy in
vừa chọn.
Chương 10: Tương tác giữa người dùng & chương trình
Các file đính kèm theo tài liệu này:
- bai_giang_tin_hoc_dai_cuong_chuong_10_tuong_tac_giua_nguoi_d.pdf