1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình môi trường Window: Chương 4 - Ngô Thanh Hùng

51 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 51
Dung lượng 609,13 KB

Nội dung

Tiếp tục Bài giảng Lập trình môi trường window của tác giả Ngô Thanh Hùng, chương 4 có nội dung về xử lí các sự kiện nhập liệu: mã phím ảo; xử lý sự kiện bàn phím; xử lý sự kiện chuột; sự kiện Timer và sự kiện Click. Mời các bạn tham khảo.

Xử lý kiện nhập liệu CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung Keyboard Mouse Timer Click to add Title CuuDuongThanCong.com https://fb.com/tailieudientucntt 4/14/2009 Giới thiệu  Tìm hiểu thơng điệp phát sinh từ bàn phím hay từ thiết bị chuột để viết xử lý tương ứng với thiết bị  Bộ định thời gian: Windows cung cấp chế để truyền thông với ứng dụng theo định kì  Ứng dụng cần khai báo định thời gian với khoảng thời gian cho trước  Khi ứng dụng hoạt động hệ thống truyền tín hiệu cho ứng dụng theo khoảng thời gian định kì khai báo CuuDuongThanCong.com Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Keyboard - Mouse Bàn phím chuột hai thiết bị nhập liệu quan trọng máy tính Hầu hết chức Windows hỗ trợ dùng bàn phím chuột CuuDuongThanCong.com Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Keyboard - Mouse Bàn phím chuột xử lý thông qua chế thông điệp Windows Mọi kiện bàn phím chuột Windows gửi đến chương trình thơng qua thơng điệp CuuDuongThanCong.com Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Keyboard  Khi nhấn phím xảy trường hợp sau:  Nhấn phím ký tự  Nhấn phím điều khiển (các phím ESC, Enter, F1F12 )  Nhấn Shift Ctrl Alt tổ hợp ba phím với phím ký tự  Khi phím bàn phím gõ, nhả hay giữ thơng điệp tương ứng gửi đến cửa sổ focus CuuDuongThanCong.com https://fb.com/tailieudientucntt 4/14/2009 Keyboard  Các phím nhấn phân thành hai nhóm chính:  Nhóm phím hệ thống (system keys): phím nhấn với phím Alt  Nhóm phím thường (nonsystem keys): phím Alt khơng nhấn  Thường phím hệ thống Windows xử lý dịch thành kiện tương ứng CuuDuongThanCong.com Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Mã phím ảo – Virtual Keycode  Windows gán cho phím bàn phím mã, gọi mã phím ảo  Mã phím ảo mã không phụ thuộc thiết bị, thay cho mã quét (scan code) phụ thuộc loại bàn phím nhà sản xuất  Các mã phím ảo định nghĩa dạng macro, bắt đầu VK_  Ví dụ mã phím ảo cho phím ESC, Enter, F1 hay Alt VK_ESCAPE, VK_RETURN, VK_F1 VK_ALT CuuDuongThanCong.com https://fb.com/tailieudientucntt 4/14/2009 Mã phím ảo – Virtual Keycode  Cần phải phân biệt ký tự nhận ấn phím mã phím ảo  Ví dụ phím A nhấn, ký nhận ký tự „a‟ „A‟ không, tuỳ thuộc vào trạng thái phím CAPSLOCK, phím Shift, Alt, Ctrl có nhấn hay không CuuDuongThanCong.com https://fb.com/tailieudientucntt 4/14/2009 Xử lý kiện bàn phím Mơ hình xử lý kiện bàn phím Windows scan code, virtual-key code… CuuDuongThanCong.com 10 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Sự kiện MouseWheel  Sự kiện MouseWheel phát sinh người dùng scroll chuột  Để xử lý kiện MouseWheel ta override phương thức OnMouseWheel  Ví dụ: protected override void OnMouseWheel(MouseEventArgs mea) { if (mea.Delta>0) MessageBox.Show("Ban vua scroll chuot len", "Thong bao"); else MessageBox.Show("Ban vua scroll chuot xuong", "Thong bao"); } CuuDuongThanCong.com 37 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Sự kiện Click Sự kiện Click phát sinh phím chuột nhấn Sự kiện phát sinh kèm theo tham số EventArgs, tham số không chứa thông tin trạng thái nút chuột nhấn vị trí trỏ chuột nhấn protected override void OnClick(EventArgs ea) { … } CuuDuongThanCong.com 38 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Sự kiện DoubleClick  Khi DoubleClick phát sinh dãy kiện sau:         MouseDown Click MouseUp MouseMove MouseDown DoubleClick MouseUp MouseMove protected override void OnDoubleClick(EventArgs ea) { … } CuuDuongThanCong.com 39 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Bài tập CuuDuongThanCong.com 40 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Timer Multitasking Quản lý thông báo trạng thái Autosave Demo version Game CuuDuongThanCong.com 41 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Xử lý kiện Timer Theo lý thuyết thông điệp thời gian Windows cung cấp xác đến mili giây thực tế khơng hồn tồn Sự xác cịn phụ thuộc vào đồng hồ hệ thống hoạt động thời chương trình CuuDuongThanCong.com 42 Lập trình mơi trường windows https://fb.com/tailieudientucntt Lớp Timer Có thể tạo đối tượng Timer cách dùng constructor mặc định sau: Timer timer = new Timer(); Timer có kiện: Timer Event Event Method Delegate Argument Tick OnTick EventHandler EventArgs 4/14/2009 CuuDuongThanCong.com Lập trình mơi trường windows 43 https://fb.com/tailieudientucntt 4/14/2009 Lớp Timer Chúng ta định nghĩa kiện cho timer sau: void TimerOnTick(object obj, EventArgs ea) { … } Đăng ký kiện: Timer.Tick += new EventHandler(TimerOnTick) CuuDuongThanCong.com 44 Lập trình mơi trường windows https://fb.com/tailieudientucntt Lớp Timer Lớp Timer có thuộc tính: Timer Properties Type Property Accessibility Description int Interval bool Enabled get/set 4/14/2009 CuuDuongThanCong.com get/set Tick time in milliseconds Set to true if timer is running Lập trình mơi trường windows 45 https://fb.com/tailieudientucntt 4/14/2009 Lớp Timer Các phương thức Timer : void Start() void Stop() CuuDuongThanCong.com 46 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Lớp Timer (Ví dụ 1) using System; using System.Drawing; using System.Windows.Forms; public class CloselnFive: Form { public static void Main() { Application.Run(new CloselnFive()); } //……… CuuDuongThanCong.com 47 Lập trình mơi trường windows https://fb.com/tailieudientucntt Lớp Timer (Ví dụ 1) public class CloselnFive: Form { public CloselnFive(){ Text = "Closing in Five Minutes"; Timer timer = new Timer(); timer.Interval = * 60 * 1000; timer.Tick += new EventHandler(TimerOnTick); timer.Enabled = true; } void TimerOnTick(object obj, EventArgs ea){ Timer timer = (Timer) obj; timer.Stop(); timer.Tick -= new EventHandler(TimerOnTick); Close () ; } } CuuDuongThanCong.com 48 4/14/2009 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/14/2009 Lớp Timer (Ví dụ 2) using System; using System.Drawing; using System.Windows.Forms; class RandomRectangle: Form{ public static void Main(){ Application.Run(new RandomRectangle()); } public RandomRectangle(){ Text = "Random Rectangle"; Timer timer = new Timer(); timer.Interval = 1; timer.Tick += new EventHandler(TimerOnTick); timer.Start(); } //……… CuuDuongThanCong.com 49 Lập trình mơi trường windows https://fb.com/tailieudientucntt Lớp Timer (Ví dụ 2) 4/14/2009 void TimerOnTick(object obj, EventArgs ea) { Random rand = new Random(); int x1 = rand.Next(ClientSize.Width); int x2 = rand.Next(ClientSize.Width); int y1 = rand.Next(ClientSize.Height); int y2 = rand.Next(ClientSize.Height); Color color = Color.FromArgb(rand.Next(256), rand.Next(256), rand.Next(256)); Graphics grfx = CreateGraphics(); grfx.FillRectangle(new SolidBrush(color), Math.Min(xl, x2), Math.Min(yl, y2), Math.Abs(x2-xl), Math.Abs(y2-yl) ); grfx.Dispose() ; } } CuuDuongThanCong.com 50 Lập trình mơi trường windows https://fb.com/tailieudientucntt CuuDuongThanCong.com https://fb.com/tailieudientucntt ... CuuDuongThanCong.com 24 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/ 14/ 2009 Bài tập CuuDuongThanCong.com 25 Lập trình môi trường windows https://fb.com/tailieudientucntt 4/ 14/ 2009 Xử... CuuDuongThanCong.com 39 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/ 14/ 2009 Bài tập CuuDuongThanCong.com 40 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/ 14/ 2009 Timer... CuuDuongThanCong.com 34 Lập trình mơi trường windows https://fb.com/tailieudientucntt Sự kiện MouseMove CuuDuongThanCong.com 35 4/ 14/ 2009 Lập trình mơi trường windows https://fb.com/tailieudientucntt 4/ 14/ 2009

Ngày đăng: 17/04/2022, 09:53