Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 86 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
86
Dung lượng
3,22 MB
Nội dung
TH LậptrìnhWindows Chương 1-2 Baøi taäp chương 1 1. Viết chương trình hiển thị màn hình như sau: Hướng dẫn: 1/9 TH LậptrìnhWindows Chương 1-2 2/9 TH LậptrìnhWindows Chương 1-2 3/9 TH LậptrìnhWindows Chương 1-2 4/9 TH LậptrìnhWindows Chương 1-2 2. Từ chương trình câu 1, thay đổi một số thuộc tính của cửa sổ lần lượt như sau: 5/9 TH LậptrìnhWindows Chương 1-2 - 3. Lần lượt thay đổi trạng thái cửa sổ như sau: • Nằm ở giữa màn hình, kích thước 640x480 • Luôn nằm trên các cửa sổ khác . • Không thể thay đổi kích thước • Cửa sổ phóng to đầy màn hình Gợi ý: sử dụng các hàm thuộc lớp CWnd: Create, ShowWindow, SetWindowPos Baøi taäp chương 2 1. Bài 1 6/9 TH LậptrìnhWindows Chương 1-2 Gợi ý: - Sử dụng hàm GetClientRect để lấy kích thước vùng Client - Chia vùng Client thành 4 phần bằng nhau, mỗi phần là một hình chữ nhật - Sử dụng các đối tượng CPen, CBrush và các hàm Ellipse, Chord, Pie, RoundRect, SetTextColor, SetBkMode, DrawText Ví dụ: hàm vẽ Ellipse: 7/9 TH LậptrìnhWindows Chương 1-2 2. Bài 2 Gợi ý: - Tính kích thước bitmap, mỗi ảnh sau có kích thước gấp 2 lần ảnh trước - Sử dụng hàm BitBlt và StretchBlt. 8/9 TH LậptrìnhWindows Chương 1-2 3. Bài 3 9/9 TH LậptrìnhWindows Chương 3 Baøi taäp chương 3 1. Dùng MFC AppWizard xây dựng ứng dụng sau: Chuỗi Hello!MFC có thể chuyển động theo các phương: - Sang trái : khi nhấn phím ← - Sang phải: khi nhấn phím → - Đi lên: khi nhấn phím ↑ - Đi xuống: khi nhấn phím ↓ - Phím S: Start – Stop chuyển động Gợi ý: - Sử dụng MDC và các hàm LoadBitmap, StretchBlt để load ảnh nền. - Tạo font chữ, sử dụng các hàm SetTextColor, DrawText để xuất chuỗi Hello!MFC - Chuỗi Hello!MFC nằm trong một frame hình chữ nhật (CRect). Để thay đổi vị trí chuỗi, chỉ cần di chuyển frame. Chú ý: Để tính toán kích thước frame trên, sử dụng hàm GetTextMetrics kết hợp với độ dài chuỗi. - Khai báo hàm xử lý sự kiện WM_TIMER. Trong hàm OnTimer, cập nhật lại vị trí frame tuỳ theo chiều di chuyể n đang được chọn - Khai báo hàm xử lý sự kiện WM_KEYDOWN. Trong hàm OnKeyDown, cập nhật lại chiều chuyển động dựa vào giá trị các phím được nhấn 1/7 [...]...TH LậptrìnhWindows Chương 3 Ví dụ: - Khai báo các biến thuộc lớp CChildView: - Tạo MDC: - Load ảnh nền: - Tính kích thước và vị trí frame chứa chuỗi Hello!MFC: 2/7 TH LậptrìnhWindows- Xử lý sự kiện nhấn phím: - Chương 3 Xử lý sự kiện WM_TIMER: 3/7 TH LậptrìnhWindows Chương 3 2 Dùng MFC AppWizard xây dựng ứng dụng vẽ tự do như sau: u cầu: - Giữ chuột trái rê vẽ tự do - Khi nhấn một... trái chuột //Di chuyển chuột 5/7 TH LậptrìnhWindows Chương 3 //Nhấn phím //Thay đổi con trỏ chuột 6/7 TH Lập trìnhWindows Chương 3 //Nhấn nút trái chuột ngồi vùng client 7/7 TH Lập trìnhWindows Chương 4 Bàitập chương 4 Dùng MFC AppWizard xây dựng ứng dụng vẽ các đoạn thẳng như sau: Yêu cầu: Dùng chuột rê vẽ các đoạn thẳng, cho phép lưu vào file có tên Lines.dat - Chúc năng bàn phím: Thay đổi màu... thay đổi độ dày nét vẽ ( 1 ≤ nét vẽ ≤ 20) o Phím Delete: xóa màn hình - Khi click chuột trên thanh tiêu đề: thay đổi tiêu đề cửa sổ Gợi ý: - Để thực hiện được thao tác vẽ, sử dụng các hàm xử lý sự kiện nhấn chuột (WM_LBUTTONDOWN) để bắt đầu chọn vị trí vẽ và di chuyển chuột (WM_MOUSEMOVE ) thực hiện thao tác vẽ 4/7 TH Lập trìnhWindows - Chương 3 Thay đổi con trỏ chuột và độ dày nét vẽ thực hiện trong... (clrBkColor); CBrush *pOldBr = pDC->SelectObject(&br); CPen pen(PS_SOLID, nPenWidth, clrBorderColor); CPen *pOldPen =pDC->SelectObject(&pen); switch (nShape) { case 0://ve doan thang pDC->MoveTo(pLeftTop); pDC->LineTo(pRightBottom); break; case 1://ve ellipse pDC-> Ellipse (pLeftTop.x, pLeftTop.y, pRightBottom.x, pRightBottom.y); break; case 2://ve hinh chu nhat pDC-> Rectangle (pLeftTop.x, pLeftTop.y,... ý: Xây dựng lớp CLine kế thừ từ CObject: 1/2 TH Lập trìnhWindows Chương 4 Định nghĩa hàm Serialize: Trong lớp CChildView , khai báo danh sách các đối tượng CLine: CArray m_arrLines; Để vẽ một đoạn thẳng, sử dụng các hàm xử lý sự kiện: - Nhấn chuột (WM_LBUTTONDOWN): xác định hai điểm của đoạn thẳng, đưa đoạn thẳng vào danh sách m_arrLines - Di chuyển chuột (WM_MOUSEMOVE ): cập nhật vị... m_arrLines - Di chuyển chuột (WM_MOUSEMOVE ): cập nhật vị trí điểm thứ hai của đoạn thẳng và thực hiện thao tác vẽ - Nhả chuột (WM_LBUTTONUP): kết thúc thao tác vẽ đoạn thẳng Để lưu và load danh sách các đoạn thẳng đã vẽ, trong lớp CChildView, khai báo và định nghĩa hàm Serialize: 2/2 THỰC HÀNH BÀI DRAWS PHẦN I: 1) Tạo ứng dụng SDI: 2) Tạo class CShape Trong file Shape.h, khai báo marco và các biến như... pDC-> Ellipse (pLeftTop.x, pLeftTop.y, pRightBottom.x, pRightBottom.y); break; case 2://ve hinh chu nhat pDC-> Rectangle (pLeftTop.x, pLeftTop.y, pRightBottom.x, pRightBottom.y); break; } pDC->SelectObject(pOldBr); pDC->SelectObject(pOldPen); br.DeleteObject(); pen.DeleteObject(); } Khai báo hàm ảo Serialize: Bổ sung marcro IMPLEMENT_SERIAL(CShape, CObject,1)trên hàm Serialize và định nghĩa hàm này . Lập trình Windows Chương 1-2 Baøi taäp chương 1 1. Viết chương trình hiển thị màn hình như sau: Hướng dẫn: 1/9 TH Lập trình Windows Chương 1-2 2/9 TH Lập trình Windows Chương. trình Windows Chương 1-2 4/9 TH Lập trình Windows Chương 1-2 2. Từ chương trình câu 1, thay đổi một số thuộc tính của cửa sổ lần lượt như sau: 5/9 TH Lập trình Windows. Lập trình Windows Chương 3 //Nhấn phím //Thay đổi con trỏ chuột 6/7 TH Lập trình Windows Chương 3 //Nhấn nút trái chuột ngoài vùng client 7/7 TH Lập trình Windows Chương