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

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

pdf31 trang | Chia sẻ: phuongt97 | Lượt xem: 381 | Lượt tải: 0download
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:

  • pdfbai_giang_tin_hoc_dai_cuong_chuong_10_tuong_tac_giua_nguoi_d.pdf
Tài liệu liên quan