⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.h

📁 有了操作系统、TCP/IP协议栈、文件系统
💻 H
📖 第 1 页 / 共 3 页
字号:
 */#define MakeRGB(r, g, b)    (((DWORD)((BYTE)(r))) | ((DWORD)((BYTE)(g)) << 8) \                | ((DWORD)((BYTE)(b)) << 16))/** * A rectangle defined by coordinates of corners. * * \note The lower-right corner does not belong to the rectangle, * i.e. the bottom horizontal line and the right vertical line are excluded * from the retangle. * * \sa PRECT, GAL_Rect */typedef struct _RECT{    /**     * the x coordinate of the upper-left corner of the rectangle.     */    int left;    /**     * the y coordinate of the upper-left corner of the rectangle.     */    int top;    /**     * the x coordinate of the lower-right corner of the rectangle.     */    int right;    /**     * the y coordinate of the lower-right corner of the rectangle.     */    int bottom;} RECT;/** * \var typedef RECT* PRECT * \brief Data type of the pointer to a RECT. * * \sa RECT */typedef RECT* PRECT;/** * Point structure. * \sa PPOINT */typedef struct _POINT{    /**     * the x coordinate of the point.     */    int x;    /**     * the y coordinate of the point.     */    int y;} POINT;/** * \var typedef POINT* PPOINT * \brief Data type of the pointer to a POINT. * * \sa POINT */typedef POINT* PPOINT;/** * Size structure of a 2-dimension object. * \sa PSIZE */typedef struct _SIZE{    /**     * the extent in x coordinate of a 2D object.     */    int cx;    /**     * the extent in y coordinate of a 2D object.     */    int cy;} SIZE;/** * \var typedef SIZE* PSIZE * \brief Data type of the pointer to a SIZE. * * \sa SIZE */typedef SIZE* PSIZE;/** * RGB triple structure. * \sa PRGB, GAL_Color */typedef struct _RGB{    /**     * the red component of a RGB triple.     */    BYTE r;    /**     * the green component of a RGB triple.     */    BYTE g;    /**     * the blue component of a RGB triple.     */    BYTE b;    /**     * Reserved for alignment, maybe used for the alpha component of a RGB triple.      */    BYTE a;} RGB;typedef RGB* PRGB;    /** @} end of win32_types */    /**     * \defgroup gdi_types Data types for GDI     * @{     *//** * \var typedef Sint8 gal_sint8 * \brief Data type of 8-bit signed integer. * * \sa Sint8 */typedef Sint8       gal_sint8;/** * \var typedef Uint8 gal_uint8 * \brief Data type of 8-bit unsigned integer. * * \sa Uint8 */typedef Uint8       gal_uint8;/** * \var typedef Sint16 gal_sint16 * \brief Data type of 16-bit signed integer. * * \sa Sint16 */typedef Sint16      gal_sint16;/** * \var typedef Uint16 gal_uint16 * \brief Data type of 16-bit unsigned integer. * * \sa Uint16 */typedef Uint16      gal_uint16;/** * \var typedef Sint32 gal_sint16 * \brief Data type of 32-bit signed integer. * * \sa Sint32 */typedef Sint32      gal_sint32;/** * \var typedef Uint32 gal_uint16 * \brief Data type of 32-bit unsigned integer. * * \sa Uint32 */typedef Uint32      gal_uint32;/** * \var typedef signed int gal_sint * \brief Data type of signed integer. */typedef signed int      gal_sint;/** * \var typedef unsigned int gal_uint * \brief Data type of unsigned integer. */typedef unsigned int    gal_uint;/** * \var typedef Uint32 gal_pixel  * \brief Data type of pixel value */typedef Uint32          gal_pixel;/** * \var typedef Uint32 gal_attr * \brief Data type of attribute value */typedef Uint32          gal_attr;/** * \var typedef long fixed. * \brief Data type of fixed point. */typedef long fixed;/** * RGBA quarter structure. * \sa RGB */typedef struct GAL_Color{    /**     * the red component of a RGBA quarter.     */    gal_uint8 r;    /**     * the green component of a RGBA quarter.     */    gal_uint8 g;    /**     * the blue component of a RGBA quarter.     */    gal_uint8 b;    /**     * the alpha component of a RGBA quarter.     */    gal_uint8 a;} GAL_Color;/** * Palette structure. * \sa GAL_Color */typedef struct GAL_Palette{    /**     * the number of palette items.     */    int        ncolors;    /**     * the pointer to the array of palette items.     */    GAL_Color* colors;} GAL_Palette;/** * A rectangle defined by upper-left coordinates and width/height. * \sa RECT  */typedef struct GAL_Rect {    /**     * the coordinates of the upper-left corner of the rectangle.     */    Sint32      x, y;    /**     * the width and height of the rectangle.     */    Sint32      w, h;} GAL_Rect;    /** @} end of gdi_types */    /**     * \defgroup key_defs Macros for key codes and shift status     * @{     *//** * \def MGUI_NR_KEYS * \brief Number of MiniGUI keys. * * The number of MiniGUI keys is defined to 255 by default. This means that * MiniGUI can destinguish 255 different keys with each has an unique scan code. * The scan codes below 129 are defined for PC keyboard by default.  * If your system has a large amount of keys, you can define the scan code of keys  * ranged from 1 to 255 in your IAL engine. And your application will receive * a MSG_KEYDOWN and MSG_KEYUP messages when a key pressed and released, and the * wParam of the messages will be defined to be equal to the scan code * of the key. * * \sa NR_KEYS, SCANCODE_USER */#define MGUI_NR_KEYS                    255/** * \def NR_KEYS * \brief The number of keys defined by Linux operating system.  * * For a PC box, NR_KEYS is defined to 128 by default. You can define * some input events from an input device other than keyboard, e.g.  * your remote controller, as key events with different scan codes from  * those of PC's. MiniGUI can support 255 keys, and the constant * is defined by MGUI_NR_KEYS. * * \sa MGUI_NR_KEYS */#ifndef NR_KEYS#define NR_KEYS                         128#endif/** * \def SCANCODE_USER * \brief The first key scan code different from OS defined ones. * * You can define your special key scan codes like below * * \code * #define SCANCODE_PLAY    (SCANCODE_USER) * #define SCANCODE_STOP    (SCANCODE_USER + 1) * #define SCANCODE_PAUSE   (SCANCODE_USER + 2) * \endcode * * to distinguish the keys on your remote controller. * * \sa MGUI_NR_KEYS, NR_KEYS */#define SCANCODE_USER                   (NR_KEYS + 1)#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    /* Beware: is 119     */#define SCANCODE_BREAK_ALTERNATIVE      119    /* on some keyboards! */#define SCANCODE_HOME                   102#define SCANCODE_CURSORBLOCKUP          103    /* Cursor key block */#define SCANCODE_PAGEUP                 104#define SCANCODE_CURSORBLOCKLEFT        105    /* Cursor key block */#define SCANCODE_CURSORBLOCKRIGHT       106    /* Cursor key block */#define SCANCODE_END                    107#define SCANCODE_CURSORBLOCKDOWN        108    /* Cursor key block */#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/** * \def KS_CAPTURED  * \brief This status indicate that the mouse is captured by a window when  * the mouse message posted. * * You can test the status by AND'ed with lParam of the message, like below: * * \code *      switch (message) { *      case MSG_MOUSEMOVE: *          if (lParam & KS_CAPTURED) { *              // the mouse is captured by this window. *              ... *          } *          break; *      ... * \endcode * * \sa mouse_msgs */#define KS_CAPTURED                     0x00000400/** * \def KS_IMEPOST * \brief This status indicate that the key message is posted by the IME window. * * \sa key_msgs */#define KS_IMEPOST                      0x00000200/** * \def KS_CAPSLOCK * \brief This status indicate that the CapsLock key was locked when  * the key or mouse message posted to the window. * * You can test the status by AND'ed with lParam of the message, like below * * \code *      switch (message) { *      case MSG_KEYDOWN: *          if (lParam & KS_CAPSLOCK) { *              // the CapsLock key is locked. *              ... *          } *          break; *      ... * \endcode * * \sa key_msgs */#define KS_CAPSLOCK                     0x00000100/** * \def KS_NUMLOCK * \brief This status indicate that the NumLock key was locked when  * the key or mouse message posted to the window. * * \sa key_msgs */#define KS_NUMLOCK                      0x00000080/** * \def KS_SCROLLLOCK * \brief This status indicate that the ScrollLock key was locked when * the key or mouse message posted to the window. *

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -