Thông điệp của mouse (tt)

Một phần của tài liệu Bài giảng lập trình C trên Windows - các khái niệm cơ bản (Trang 58)

ƒ Với mỗi thông điệp của mouse, Windows gởi kèm 2 tham số wParam và lParam

ƒ wParam: cho biết phím nào đang được nhấn (Ctrl, Shift) ƒ lParam: cho biết toạđộ hiện tại LOWORD(lParam): tọa độ x HIWORD(lParam): tọa độ y Xử lý Mouse…(tt)  Ví dụ: Vẽ hình bằng mouse

ƒ Mô tả:khi user nhấn giữ nút trái chuột & di chuyển Ævẽ 1 đường thẳng

ƒ Các xửlý cần thiết:

WM_LBUTTONDOWN ÙOnLButtonDown

WM_MOUSEMOVE ÙOnMouseMove

ƒ Các bước thực hiện:

Định nghĩa 2 biến m_PrevX, m_PrevY trong class CxxxDlg

Định nghĩa hàm xửlý message WM_LBUTTONDOWN trong class CxxxDlg

Spring 2004

C4W - VisualC++ (MFC) - Nguyen Tri Tuan - DH.KHTN Tp.HCM 35 Xử lý Mouse…(tt)

 Vẽ hình bằng mouse…(tt)

void CxxxDlg::OnLButtonDown(UINT nFlags, CPoint point) {

// TODO: Add your message handler code here // and/or call default

m_PrevX = point.x; m_PrevY = point.y; CDialog::OnLButtonDown(nFlags, point); } Xử lý Mouse…(tt)  Vẽ hình bằng mouse…(tt)

void CxxxDlg::OnMouseMove(UINT nFlags, CPoint point) {

// TODO: Add your message handler code here if ((nFlags & MK_LBUTTON) == MK_LBUTTON) {

// Get the Device Context CClientDC dc(this);

// Draw a line from the prev point to current point dc.MoveTo(m_StartX, m_StartY);

dc.LineTo(point.x, point.y);

// Save the current point as the previous point m_PrevX = point.x;

m_PrevY = point.y; }

Spring 2004

C4W - VisualC++ (MFC) - Nguyen Tri Tuan - DH.KHTN Tp.HCM 37 Xử lý keyboard

 Thông điệp của keyboard

ƒ WM_KEYDOWN / WM_KEYUP: phát sinh khi 1 phím (không phải là phím hệ thống) được nhấn xuống/thả ra

Hàm xử lý tương ứng: CWnd::OnKeyDown, CWnd::OnKeyUp

wParam: virtual-key code

lParam: chứa các thông tin khác (số lần lặp lại phím, scan code, extended key,…)

ƒ WM_CHAR: là kết quả phát sinh do message WM_KEYDOWN, báo hiệu 1 ký tự in được (printed character) đã được tạo ra

Hàm xử lý tương ứng: CWnd::OnChar

wParam: mã ký tự

lParam: chứa các thông tin khác (số lần lặp lại do nhấn giữ

phím, có phím Alt nhấn kèm,…)

Xử lý keyboard…(tt)

Một phần của tài liệu Bài giảng lập trình C trên Windows - các khái niệm cơ bản (Trang 58)

Tải bản đầy đủ (PDF)

(192 trang)