- Nhận đường liên kết
- X
- Ứng dụng khác
- Nhận đường liên kết
- X
- Ứng dụng khác
1. Accelerator Table:
Một "bảng" các phím tắt cho ứng dụng. Dùng thay thế cho cách tự xử lý hàm WM_KEYDOWN (phức tạp hơn).
http://msdn.microsoft.com/en-us/library/windows/desktop/gg153544%28v=vs.85%29.aspx
Tiện lợi:
Ví dụ ta muốn:
- B1:
Tại header file:
Một "bảng" các phím tắt cho ứng dụng. Dùng thay thế cho cách tự xử lý hàm WM_KEYDOWN (phức tạp hơn).
http://msdn.microsoft.com/en-us/library/windows/desktop/gg153544%28v=vs.85%29.aspx
Tiện lợi:
- Requires less coding.
- Consolidates all of your shortcuts into one data file.
- Supports localization into other languages.
- Enables shortcuts and menu commands to use the same application logic.
Ví dụ ta muốn:
Shortcut | Command |
---|---|
CTRL+M | Toggle between modes. |
F1 | Switch to draw mode. |
F2 | Switch to selection mode. |
- B1:
Tại header file:
#define IDR_ACCEL1 101 #define ID_TOGGLE_MODE 40002 #define ID_DRAW_MODE 40003 #define ID_SELECT_MODE 40004
- B2:
Tại .rc file:
#include "resource.h" IDR_ACCEL1 ACCELERATORS { 0x4D, ID_TOGGLE_MODE, VIRTKEY, CONTROL // ctrl-M 0x70, ID_DRAW_MODE, VIRTKEY // F1 0x71, ID_SELECT_MODE, VIRTKEY // F2 }
Mỗi hàng là 1 command:
Cột 1: VK code hay ASCII
Cột 2: Identified command
Cột 3: Nếu là VIRTKEY thì nghĩa là cột 1 là VK code, còn ASCII thì cột 1 là ASCII
Cột 4: CONTROL, ALT, SHIFT
Chú ý có khác nhau giữa Ctrl-A và Ctrl-a (nên cột 1 thường dùng VK code)
- B3:
Load Accelerator (trước vòng lặp):
HACCEL hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCEL1));
- B4:
Sử dụng trong vòng lặp:
while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } }
Nhận xét
Đăng nhận xét