Bài tập thực hành môn lập trình window PI
Trang 1© 2009, Nguyen Tri Tuan – Khoa CNTT ĐH.KHTN TP.HCM 1/2
Môn học Lập trình Windows (Windows Programming)
Bài tập thực hành – Phần 1 Thời gian thực hiện: 01 tuần
-oOo - Phần 1: Lập trình bằng thư viện WIN32 API
1 Làm quen với 1 chương trình C/C++ viết trên thư viện Win32 API
a Phần 1:
- Tạo project loại Win32 (Win32 project), sau đó biên dịch và chạy thử nghiệm chương trình
b Phần 2:
- Thay đổi tiêu đề của của sổ thành “Chuong trinh C/Win32 API”
- Thay đổi nội dung hiển thị trên vùng client của cửa sổ thành:
“Day la chuong trinh dau tien…
… viet bang Visual C++…
… tren HDH Windows…
… bang thu vien Win32 API.“
2 Tài nguyên của chương trình:
Lấy chương trình kết quả của bài tập 1, thực hiện tiếp:
a Phần 1:
- Thay đổi biểu tượng (icon) của chương trình
- Thay đổi con trỏ chuột: dùng con trỏ có sẵn IDC_CROSS hay tự vẽ một cursor mới
- Thay đổi nội dung của hộp thoại “About”
b Phần 2:
- Bổ sung thêm vào menu “File” các mục sau: New, Open, Save
- Thêm mới 1 menu popup “Edit” với các item sau: Undo, Cut, Copy, Paste, Select all
- Mỗi menu item đều có phím tắt tương ứng (vd Open Ctrl+O)
3 Lập trình sự kiện:
Lấy chương trình kết quả của bài tập 2, thực hiện tiếp:
a Phần 1:
- Thêm xử lý trong hàm xử lý message, để khi user chọn menu item nào thì hiện messagebox thông báo tương ứng VD “Ban vua chon chuc nang XYZ.”
- Khi user thoát chương trình bằng menu “Quit” hay close cửa sổ: hiển thị message-box yêu cầu xác nhận “Ban muon thoat ung dung ?” Nếu user chọn YES huỷ cửa sổ và thoát ứng dụng; nếu user chọn NO thì không thoát
b Phần 2:
- Khi user click mouse trái/phải, hiển thị message-box thông báo:
c Phần 3:
- Khi cửa sổ được tạo (WM_CREATE), hãy thể hiện 1 message-box ghi lời giới thiệu chương trình:
Trang 2© 2009, Nguyen Tri Tuan – Khoa CNTT ĐH.KHTN TP.HCM 2/2
4 Chương trình “Clock” - Sử dụng bộ định giờ (Timer)
a Phần 1:
- Viết chương trình có 1 cửa sổ giao diện, kích thước 300x100 pixel, không menu, chỉ có Close button (hình vẽ)
b Phần 2:
- Định nghĩa 1 bộ định giờ, với chu kỳ 1 giây (dùng hàm SetTimer)
- Ứng với thông điệp WM_TIMER, hiển thị giờ hiện tại lên cửa sổ giao diện (hình vẽ)
- Khi kết thúc chương trình (Close window), huỷ bộ định giờ (dùng hàm KillTimer) Ghi chú:
- Dùng font Arial, size = 28 (tạo handle font
bằng hàm CreateFont hay
CreateFontIndirect)
5 Window class (lớp cửa sổ)
Viết một chương trình theo các yêu cầu sau:
- Chương trình đăng ký 3 lớp cửa sổ (hàm RegisterClass) với 3 hàm xử lý message
tương ứng
- Mô tả các hàm xử lý message:
o Với cửa sổ thuộc class-1: nếu user click mouse trái vẽ một đường tròn
bán kính 100 pixel, tâm là điểm click mouse (hàm Ellipse)
o Với cửa sổ thuộc class-2: nếu user click mouse trái vẽ một hình vuông,
cạnh 100 pixel, tâm là điểm click mouse (hàm Rectangle)
o Với cửa sổ thuộc class-3: nếu user click mouse trái vẽ một hình vuông, cạnh 200 pixel, tâm là điểm click mouse, tô màu cam (Red=255,
Green=128, Blue=64) (tạo brush handle dùng hàm CreateSolidBrush)
- Ứng dụng có 3 menu item: “Class-1”, “Class-2” và “Class-3” Khi user chọn một menu item, thì ứng dụng tạo ra một cửa sổ thuộc lớp tương ứng Tiêu đề cửa sổ có dạng “Class X – Window Y”, trong đó:
o X = 1, 2 hay 3
o Y: số thứ tự của cửa sổ thuộc class X
- Hết phần 1 -