📄 engine.h
字号:
* *
*******************************************************************************
*/
/* 消息类型 */
#define VMSG_GETFOCUS (0x0008)
#define VMSG_LOSTFOCUS (0x0009)
#define MSM_FIRST (0x0010)
#define MSM_LB_DOWN (0x0001 + MSM_FIRST)
#define MSM_LB_UP (0x0002 + MSM_FIRST)
#define MSM_RB_DOWN (0x0003 + MSM_FIRST)
#define MSM_RB_UP (0x0004 + MSM_FIRST)
#define MSM_MB_DOWN (0x0005 + MSM_FIRST)
#define MSM_MB_UP (0x0006 + MSM_FIRST)
#define MSM_MS_MOVE (0x0007 + MSM_FIRST)
#define MSM_MS_ENTER (0x0008 + MSM_FIRST)
#define MSM_MS_LEAVE (0x0009 + MSM_FIRST)
#define MSM_MB_MOVE (0x000A + MSM_FIRST)
#define MSM_LB_CLICK (0x000B + MSM_FIRST)
#define MSM_LB_DCLICK (0x000C + MSM_FIRST)
#define MSM_RB_CLICK (0x000D + MSM_FIRST)
#define MSM_RB_DCLICK (0x000E + MSM_FIRST)
#define MSM_MB_CLICK (0x000F + MSM_FIRST)
#define MSM_MB_DCLICK (0x0010 + MSM_FIRST)
#define KEYM_FIRST (0x0030)
#define KEYM_KEY_DOWN (0x0001 + KEYM_FIRST)
#define KEYM_KEY_UP (0x0002 + KEYM_FIRST)
#define TIMERM_FIRST (0x0033)
#define TIMERM_OUT (0x0001 + TIMERM_FIRST)
#define WINM_FIRST (0x0040)
#define WINM_SCROLL (0x0001 + WINM_FIRST)
/*
*******************************************************************************
* *
*******************************************************************************
*/
#define SCANCODE_ESCAPE 1
#define SCANCODE_1 2#define SCANCODE_2 3#define SCANCODE_3 4#define SCANCODE_4 5#define SCANCODE_5 6#define SCANCODE_6 7#define SCANCODE_7 8#define SCANCODE_8 9#define SCANCODE_9 10#define SCANCODE_0 11#define SCANCODE_MINUS 12#define SCANCODE_EQUAL 13#define SCANCODE_BACKSPACE 14#define SCANCODE_TAB 15#define SCANCODE_Q 16#define SCANCODE_W 17#define SCANCODE_E 18#define SCANCODE_R 19#define SCANCODE_T 20#define SCANCODE_Y 21#define SCANCODE_U 22#define SCANCODE_I 23#define SCANCODE_O 24#define SCANCODE_P 25#define SCANCODE_BRACKET_LEFT 26#define SCANCODE_BRACKET_RIGHT 27#define SCANCODE_ENTER 28#define SCANCODE_LEFTCONTROL 29#define SCANCODE_A 30#define SCANCODE_S 31#define SCANCODE_D 32#define SCANCODE_F 33#define SCANCODE_G 34#define SCANCODE_H 35#define SCANCODE_J 36#define SCANCODE_K 37#define SCANCODE_L 38#define SCANCODE_SEMICOLON 39#define SCANCODE_APOSTROPHE 40#define SCANCODE_GRAVE 41#define SCANCODE_LEFTSHIFT 42#define SCANCODE_BACKSLASH 43#define SCANCODE_Z 44#define SCANCODE_X 45#define SCANCODE_C 46#define SCANCODE_V 47#define SCANCODE_B 48#define SCANCODE_N 49#define SCANCODE_M 50#define SCANCODE_COMMA 51#define SCANCODE_PERIOD 52#define SCANCODE_SLASH 53#define SCANCODE_RIGHTSHIFT 54#define SCANCODE_KEYPADMULTIPLY 55#define SCANCODE_LEFTALT 56#define SCANCODE_SPACE 57#define SCANCODE_CAPSLOCK 58#define SCANCODE_F1 59#define SCANCODE_F2 60#define SCANCODE_F3 61#define SCANCODE_F4 62#define SCANCODE_F5 63#define SCANCODE_F6 64#define SCANCODE_F7 65#define SCANCODE_F8 66#define SCANCODE_F9 67#define SCANCODE_F10 68#define SCANCODE_NUMLOCK 69#define SCANCODE_SCROLLLOCK 70#define SCANCODE_KEYPAD7 71#define SCANCODE_CURSORUPLEFT 71#define SCANCODE_KEYPAD8 72#define SCANCODE_CURSORUP 72#define SCANCODE_KEYPAD9 73#define SCANCODE_CURSORUPRIGHT 73#define SCANCODE_KEYPADMINUS 74#define SCANCODE_KEYPAD4 75#define SCANCODE_CURSORLEFT 75#define SCANCODE_KEYPAD5 76#define SCANCODE_KEYPAD6 77#define SCANCODE_CURSORRIGHT 77#define SCANCODE_KEYPADPLUS 78#define SCANCODE_KEYPAD1 79#define SCANCODE_CURSORDOWNLEFT 79#define SCANCODE_KEYPAD2 80#define SCANCODE_CURSORDOWN 80#define SCANCODE_KEYPAD3 81#define SCANCODE_CURSORDOWNRIGHT 81#define SCANCODE_KEYPAD0 82#define SCANCODE_KEYPADPERIOD 83#define SCANCODE_LESS 86#define SCANCODE_F11 87#define SCANCODE_F12 88#define SCANCODE_KEYPADENTER 96#define SCANCODE_RIGHTCONTROL 97#define SCANCODE_CONTROL 97#define SCANCODE_KEYPADDIVIDE 98#define SCANCODE_PRINTSCREEN 99#define SCANCODE_RIGHTALT 100#define SCANCODE_BREAK 101#define SCANCODE_BREAK_ALTERNATIVE 119#define SCANCODE_HOME 102#define SCANCODE_CURSORBLOCKUP 103#define SCANCODE_PAGEUP 104#define SCANCODE_CURSORBLOCKLEFT 105#define SCANCODE_CURSORBLOCKRIGHT 106#define SCANCODE_END 107#define SCANCODE_CURSORBLOCKDOWN 108 #define SCANCODE_PAGEDOWN 109#define SCANCODE_INSERT 110#define SCANCODE_REMOVE 111#define SCANCODE_PAUSE 119#define SCANCODE_POWER 120#define SCANCODE_SLEEP 121#define SCANCODE_WAKEUP 122#define SCANCODE_LEFTWIN 125#define SCANCODE_RIGHTWIN 126#define SCANCODE_MENU 127#define SCANCODE_LEFTBUTTON 0x1000#define SCANCODE_RIGHTBUTTON 0x2000#define SCANCODE_MIDDLBUTTON 0x4000
#define KEY_ESCAPE 0x001B
#define KEY_LEFT 0x4B00
#define KEY_RIGHT 0x4D00
#define KEY_UP 0x4800
#define KEY_DOWN 0x5000
#define KEY_ENTER 0x000D
#define KEY_BACKSPACE 0x0008
#define KEY_DELETE 0x5300
#define KEY_HOME 0x4700
#define KEY_END 0x4F00
#define KEY_TAB 0x0009
#define KEY_PAGEUP 0x4900
#define KEY_PAGEDOWN 0x5100
#define KEY_PLUS 0x003D
#define KEY_MINUS 0x002D
#define KEY_SPACE 0x0020
#define KEY_CTRLSPACE 0x1020
#define KEY_RESET 0x1021
#define KEY_INSERT 0x5200
#define KEY_F1 0x3B00
#define KEY_F2 0x3C00
#define KEY_F3 0x3D00
#define KEY_F4 0x3E00
#define KEY_F5 0x3F00
#define KEY_F6 0x4000
#define KEY_F7 0x4100
#define KEY_F8 0x4200
#define KEY_F9 0x4300
#define KEY_F10 0x4400
#define KEY_0 0x0030
#define KEY_1 0x0031
#define KEY_2 0x0032
#define KEY_3 0x0033
#define KEY_4 0x0034
#define KEY_5 0x0035
#define KEY_6 0x0036
#define KEY_7 0x0037
#define KEY_8 0x0038
#define KEY_9 0x0039
/*
*******************************************************************************
* *
*******************************************************************************
*/
typedef union mouse_info {
struct {
BYTE data[4];
} d;
struct {
INT_16 lbtn : 1;
INT_16 rbtn : 1;
INT_16 mbtn : 1;
INT_16 rsv : 1;
INT_16 xsn : 1;
INT_16 ysn : 1;
INT_16 xof : 1;
INT_16 yof : 1;
INT_16 dx : 8;
INT_16 dy : 8;
INT_16 dw : 8;
} inf;
DWORD raw;
} MOUSE_INF;
typedef union key_info {
struct {
BYTE data[4];
} d;
struct {
INT_16 shift : 1; /* ctrl key */
INT_16 ctrl : 1;
INT_16 alt : 1;
INT_16 caps : 1;
INT_16 num : 1;
INT_16 press : 1; /* ctrl key */
INT_16 scan : 8; /* scan code */
INT_16 key : 16; /* key code */
} inf;
DWORD raw;
} KEY_INF;
typedef union timer_info {
struct {
DWORD time; /* in second */
} inf;
DWORD raw;
} TIMERS_INF;
typedef void (_cdecl_ * PMSGHOOK)(void);
typedef void (_cdecl_ * PMOUSEHOOK)(const MOUSE_INF mi);
typedef void (_cdecl_ * PKEYBDHOOK)(const KEY_INF ki);
typedef void (_cdecl_ * PTIMERHOOK)(const TIMERS_INF ti);
#define TIMER_PERIOD (50) /* ms */
/*
*******************************************************************************
* *
*******************************************************************************
*/
/* 引擎相关函数 */
void _cdecl_ StartEngine(void); /* 注意启动GUI引擎之前不得调用任何浮点数操作 */
void _cdecl_ SetInitHook(PMSGHOOK hook); /* 其中不得包含任何浮点数操作 */
void _cdecl_ SetFirstHook(PMSGHOOK hook); /* 其中不得包含任何浮点数操作 */
void _cdecl_ SetTimerHook(PTIMERHOOK hook); /* 其中不得包含任何浮点数操作 */
void _cdecl_ SetMouseHook(PMOUSEHOOK hook); /* 其中不得包含任何浮点数操作 */
void _cdecl_ SetKeybdHook(PKEYBDHOOK hook); /* 其中不得包含任何浮点数操作 */
/*
*******************************************************************************
* *
*******************************************************************************
*/
#endif /* end of Engine.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -