100 likes | 212 Views
Thao tác Menu , Mouse , và Keyboard (VC 6.0). Giảng viên : Trần Anh Tuấn. Nội dung chính. Giúp cho SV nắm được cách tạo và sử dụng thành thạo : Các loại menu Menu Pull_Down Menu Cascading Menu Popup Các sự kiện mouse Cách nhận và bắt các sự kiện bàn phím. Popup Menu. Cascading Menu.
E N D
Thao tác Menu , Mouse , và Keyboard (VC 6.0) Giảng viên : Trần Anh Tuấn
Nội dung chính • Giúp cho SV nắm được cách tạo và sử dụng thành thạo : • Các loại menu • Menu Pull_Down • Menu Cascading • Menu Popup • Các sự kiện mouse • Cách nhận và bắt các sự kiện bàn phím
Popup Menu Cascading Menu Pull_down Menu Menu • Giúp cho người dùng chọn thực hiện các chức năng (bằng phím tắt , hoặc dùng chuột nhấp vào từng menuitem ) • Có ba loại menu thông dụng
Pull_down menu & Cascading Menu • Tab ResourceView>Insert Menu>Create Menu • Check lại các ID sinh ra cho từng menuitem • Nếu muốn Cascading menu check thuộc tính Popup
Pull_down menu & Cascading Menu • Load menu: • Dùng chức năng : • Dùng lệnh : • CMenu mainmenu; • mainmenu.LoadMenu(IDR_MENU); • SetMenu(&mainmenu);
Pull_down menu & Cascading Menu • Cách disable một menuitem • mainmenu.EnableMenuItem (ID_???, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); • Thao tác trên menuitem • Classwinzard chọn ID cần thao tác • Add sự kiện WM_COMMAND • Đặt tên hàm tương ứng • Viết đoạn ã xử lý
Popup Menu • Cách tạo tương tự Pull_Down Menu • Định nghĩa ID tương tự • Classwinzard thêm function cho message WM_CONTEXT_MENU • void CBai3Dlg::OnContextMenu(CWnd* pWnd, CPoint point) • { • CMenu menupopup; • menupopup.LoadMenu(IDR_MENU); • CMenu* pPopup = menupopup.GetSubMenu(0); • pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON , point.x,point.y,this); • }
Thao tác Mouse • Các thao tác chuột thông dụng: • WM_LBUTTONDOWN • WM_LBUTTONUP • WM_LBUTTONBLCLK • WM_RBUTTONDOWN • WM_RBUTTONUP • WM_RBUTTONBLCLK • WM_MOUSEMOVE • WM_MOUSEWEEL • Add function tương ứng cho các sự kiện muốn xử lý
Thao tác Keyboard • Add function PreTranslateMessage và gửi thông thông điệp cho WM_KEYDOWN: • If (pMsg->message == WM_KEYDOWN) • { SendMessage(WM_KEYDOWN, • pMsg->wParam, pMsg->lParam); } • Add function tương ứng cho sự kiện WM_KEYDOWN • OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) • if (nChar == ‘{ký tự}') {do yourself } • if (nChar == {Mã ký tự ảo}) {do yourseft }
Thao tác Keyboard • {ký tự} • ‘A’ … ‘Z’ • ‘1’ … ‘9’ • ‘a’ … ‘z’ • {Mã ký tự ảo} • VK_LBUTTON , VK_RBUTTON , VK_CANCEL (Ctrl-break)… • VK_BACK , VK_TAB , VK_RETURN (Enter) , …… • VK_LEFT , VK_UP , VK_RIGHT , VK_DOWN , VK_PRIOR , VK_NEXT , VK_END, VK_HOME ….. • VK_ADD , VK_MULTIPLY , VK_SUBTRACT , VK_DIVIDE ….