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

📄 guigdi.h

📁 The combined demo is dedicated for S1C33L05, so DMT33L05 should be used to load and run the demo. F
💻 H
📖 第 1 页 / 共 3 页
字号:
T_VOID fnGUI_DrawHVDotLine (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD w_h, T_BOOL H_V);
#define fnGUI_DrawHDotLine(hdc, x, y, w) fnGUI_DrawHVDotLine (hdc, x, y, w, TRUE);
#define fnGUI_DrawVDotLine(hdc, x, y, h) fnGUI_DrawHVDotLine (hdc, x, y, h, FALSE);

T_VOID fnGUI_FillBox (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD w, T_WORD h);
T_VOID fnGUI_FillBoxWithBitmap (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD w, T_WORD h,
                              T_GUI_pBitmap pBitmap);
T_VOID fnGUI_FillBoxWithBitmapPart (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD w, T_WORD h,
                              T_WORD bw, T_WORD bh, T_GUI_pBitmap pBitmap, T_WORD xo, T_WORD yo);

T_VOID fnGUI_BitBlt (T_GUI_HDC hsdc, T_WORD sx, T_WORD sy, T_WORD sw, T_WORD sh,
                   T_GUI_HDC hddc, T_WORD dx, T_WORD dy, T_UWORD dwRop);
T_VOID fnGUI_StretchBlt (T_GUI_HDC hsdc, T_WORD sx, T_WORD sy, T_WORD sw, T_WORD sh,
                       T_GUI_HDC hddc, T_WORD dx, T_WORD dy, T_WORD dw, T_WORD dh, T_UWORD dwRop);

/****** icon support *******************************************************/
#define HICON_INVALID 0
#ifdef GUI_FILESUPPORT
T_GUI_HICON fnGUI_LoadIconFromFile (T_GUI_HDC hDc, T_UBYTE* filename, T_WORD which);
#endif
#ifdef GUI_MEMORYSUPPORT
T_GUI_HICON fnGUI_LoadIconFromMemory (T_GUI_HDC hDc, T_CONST T_BYTE* pArray, T_WORD which);
#endif
T_GUI_HICON fnGUI_CreateIcon (T_GUI_HDC hDc, T_WORD w, T_WORD h,
                        T_CONST T_BYTE* AndBits, T_CONST T_BYTE* XorBits, T_WORD ColorNum);
T_BOOL fnGUI_DestroyIcon (T_GUI_HICON hIcon);
T_VOID fnGUI_DrawIcon (T_GUI_HDC hDc, T_WORD x, T_WORD y, T_WORD w, T_WORD h, T_GUI_HICON hIcon);

typedef struct T_GUI_Icon {
    T_WORD wWidth;
    T_WORD wHeight;
    T_VOID* vAndBits;
    T_VOID* vXorBits;
}T_GUI_Icon;
typedef T_GUI_Icon* T_GUI_pIcon;

/****** Rectangle support *******************************************************/
T_VOID fnGUI_SetRect (T_GUI_Rect* pRect, T_WORD left, T_WORD top, T_WORD right, T_WORD bottom);
T_VOID fnGUI_SetRectEmpty (T_GUI_Rect* pRect);
T_VOID fnGUI_CopyRect (T_GUI_Rect* pDstRect, T_CONST T_GUI_Rect* pSrcRect);
T_BOOL fnGUI_IsRectEmpty (T_CONST T_GUI_Rect* pRect);
T_BOOL fnGUI_EqualRect (T_CONST T_GUI_Rect* pRect1, T_CONST T_GUI_Rect* pRect2);
T_VOID fnGUI_NormalizeRect (T_GUI_Rect* pRect);
T_BOOL fnGUI_IntersectRect (T_GUI_Rect* pDstRect, T_CONST T_GUI_Rect* pSrcRect1, T_CONST T_GUI_Rect* pSrcRect2);
T_BOOL fnGUI_IsCovered (T_CONST T_GUI_Rect* pRect1, T_CONST T_GUI_Rect* pRect2);
T_BOOL fnGUI_DoesIntersect (T_CONST T_GUI_Rect* pRect1, T_CONST T_GUI_Rect* pRect2);
T_BOOL fnGUI_UnionRect (T_GUI_Rect* pDstRect, T_CONST T_GUI_Rect* pSrcRect1, T_CONST T_GUI_Rect* pSrcRect2);
T_VOID fnGUI_GetBoundRect (T_GUI_pRect pDstRect,  T_CONST T_GUI_Rect* pSrcRect1, T_CONST T_GUI_Rect* pSrcRect2);
T_WORD fnGUI_SubtractRect (T_GUI_Rect* pDstRects, T_CONST T_GUI_Rect* pSrcRect1, T_CONST T_GUI_Rect* pSrcRect2);
T_VOID fnGUI_OffsetRect (T_GUI_Rect* pRect, T_WORD x, T_WORD y);
T_VOID fnGUI_InflateRect (T_GUI_Rect* pRect, T_WORD cx, T_WORD cy);
T_VOID fnGUI_InflateRectToPt (T_GUI_Rect* pRect, T_WORD x, T_WORD y);
T_BOOL fnGUI_PtInRect (T_CONST T_GUI_Rect* pRect, T_WORD x, T_WORD y);
#define T_RECTWP(prc)  (prc->right - prc->left)
#define T_RECTHP(prc)  (prc->bottom - prc->top)
#define T_RECTW(rc)    (rc.right - rc.left)
#define T_RECTH(rc)    (rc.bottom - rc.top)



/****** System font support *******************************************************/
T_BOOL fnGUI_SetSysType (T_CONST T_UBYTE* type);
T_CONST T_BYTE* fnGUI_GetSysCharset (T_VOID);
T_BOOL fnGUI_DoesSupportCharset (T_CONST T_BYTE* T_BYTEset);
T_BOOL fnGUI_SetSysCharset (T_CONST T_BYTE* T_BYTEset);
T_WORD fnGUI_GetSysCharWidth (T_VOID);
T_WORD fnGUI_GetSysCCharWidth (T_VOID);
T_WORD fnGUI_GetSysCharHeight (T_VOID);
T_VOID fnGUI_GetSysTabbedTextExtent (T_CONST T_BYTE* spText, T_GUI_Extent* pSize);
/* Compatiblity definitions */
#define fnGUI_GetCharWidth fnGUI_GetSysCharWidth
#define fnGUI_GetCCharWidth fnGUI_GetSysCCharWidth
#define fnGUI_GetCharHeight fnGUI_GetSysCharHeight
/* Font support */
#define INV_LOGFONT     0
T_GUI_pLogFont fnGUI_CreateLogFont (T_CONST T_BYTE* type, T_CONST T_BYTE* family,
        T_CONST T_BYTE* charset, T_BYTE weight, T_BYTE slant, T_BYTE set_width,
        T_BYTE spacing, T_BYTE underline, T_BYTE struckout,
    	T_WORD size, T_WORD rotation);
T_GUI_pLogFont fnGUI_CreateLogFontIndirect (T_GUI_LogFont* logfont);
T_VOID fnGUI_DestroyLogFont (T_GUI_pLogFont log_font);
T_VOID fnGUI_GetLogFontInfo (T_GUI_HDC hdc, T_GUI_LogFont* log_font);
#define SYSLOGFONT_DEFAULT          0
T_GUI_pLogFont fnGUI_GetSystemFont (T_VOID);
T_GUI_pLogFont fnGUI_GetCurFont (T_GUI_HDC hdc);
T_GUI_pLogFont fnGUI_SelectFont (T_GUI_HDC hdc, T_GUI_pLogFont log_font);

#ifdef _BIG5_SUPPORT
T_VOID  fnGUI_Gb2Big(T_UBYTE* dest,T_CONST T_UBYTE* mchar);
T_VOID  fnGUI_Unic2Big(T_UBYTE* dest,T_CONST T_UBYTE* mchar,T_UWORD len);
#endif
#ifdef _GB_SUPPORT
T_VOID  fnGUI_Big2Gb(T_UBYTE* dest,T_CONST T_UBYTE *mchar);
T_VOID  fnGUI_Unic2Gb(T_UBYTE* dest,T_CONST T_UBYTE* mchar,T_UWORD len);
#endif
#ifdef _ToUnic_SUPPORT
T_VOID fnGUI_Gb2Unic(T_UBYTE* dest,T_CONST T_UBYTE* mchar);
T_VOID fnGUI_Big2Unic(T_UBYTE* dest,T_CONST T_UBYTE* mchar);
#endif


/****** text support *******************************************************/
T_WORD fnGUI_GetTextMCharInfo (T_GUI_pLogFont log_font, T_CONST T_BYTE* mstr, T_WORD len,
                T_WORD* pos_chars);
T_WORD fnGUI_GetTextWordInfo (T_GUI_pLogFont log_font, T_CONST T_BYTE* mstr, T_WORD len,
                T_WORD* pos_words, T_GUI_WordInfo* info_words);
T_WORD fnGUI_GetFirstMCharLen (T_GUI_pLogFont log_font, T_CONST T_BYTE* mstr, T_WORD len);
T_WORD fnGUI_GetFirstWord (T_GUI_pLogFont log_font, T_CONST T_BYTE* mstr, T_WORD len,
                            T_GUI_WordInfo* word_info);
T_WORD fnGUI_GetTextExtentPoint (T_GUI_HDC hdc, T_CONST T_BYTE* text, T_WORD len, T_WORD max_extent,
                T_WORD* fit_chars, T_WORD* pos_chars, T_WORD* dx_chars, T_GUI_Extent* size);

T_WORD fnGUI_GetFontHeight (T_GUI_HDC hdc);
T_WORD fnGUI_GetMaxFontWidth (T_GUI_HDC hdc);
T_VOID fnGUI_GetTextExtent (T_GUI_HDC hdc, T_CONST T_BYTE* spText, T_WORD len, T_GUI_Extent* pSize);

T_WORD fnGUI_GetTextCharacterExtra (T_GUI_HDC hdc);
T_WORD fnGUI_SetTextCharacterExtra (T_GUI_HDC hdc, T_WORD extra);
T_WORD fnGUI_GetTextAboveLineExtra (T_GUI_HDC hdc);
T_WORD fnGUI_SetTextAboveLineExtra (T_GUI_HDC hdc, T_WORD extra);
T_WORD fnGUI_GetTextBellowLineExtra (T_GUI_HDC hdc);
T_WORD fnGUI_SetTextBellowLineExtra (T_GUI_HDC hdc, T_WORD extra);

T_WORD fnGUI_TextOutLen (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_CONST T_BYTE* spText, T_WORD len);
T_VOID fnGUI_GetLastTextOutPos (T_GUI_HDC hdc, T_GUI_Point* pt);
#define fnGUI_TextOut(hdc, x, y, text)    fnGUI_TextOutLen (hdc, x, y, text, -1)

#define DT_TOP              0x00000000
#define DT_LEFT             0x00000000
#define DT_CENTER           0x00000001
#define DT_RIGHT            0x00000002
#define DT_VCENTER          0x00000004
#define DT_BOTTOM           0x00000008
#define DT_WORDBREAK        0x00000010
#define DT_SINGLELINE       0x00000020
#define DT_EXPANDTABS       0x00000040
#define DT_TABSTOP          0x00000080
#define DT_NOCLIP           0x00000100
#define DT_EXTERNALLPADING  0x00000200
#define DT_CALCRECT         0x00000400
#define DT_NOPREFIX         0x00000800
#define DT_INTERNAL         0x00001000
T_WORD fnGUI_DrawTextEx (T_GUI_HDC hdc, T_CONST T_BYTE* pText, T_WORD nCount,
                T_GUI_Rect* pRect, T_WORD nIndent, T_UWORD nFormat);
#define fnGUI_DrawText(hdc, text, n, rc, format)      fnGUI_DrawTextEx (hdc, text, n, rc, 0, format)



/************************** Bitmap file load/save support ******************/
#define GUI_BMP_FLOW_DOWN   1
#define GUI_BMP_FLOW_UP     2

#define GUI_LOADBMP_FLAG_GRAYSCALE  0x00000001
#define GUI_LOADBMP_FLAG_NONE       0x00000000

#define GUI_RGB_ORDER_RGB   0
#define GUI_RGB_ORDER_BGR   1

typedef struct T_GUI_MyBitmap
{
    T_WORD depth;
    T_WORD w, h;
    T_WORD size;
    T_WORD pitch;
    T_WORD frames;
    T_WORD flow;
    T_WORD rgb_order;
    T_WORD transparent;    /* palette index of transparent pixel. */
    T_BYTE* bits;
    T_DWORD flags;
} T_GUI_MyBitmap;
typedef T_GUI_MyBitmap* T_GUI_pMyBitmap;

#define GUI_ERR_BMP_ATHEAD			1	/* added by qq for gif shown 2002.9.29 */
#define GUI_ERR_BMP_OK              0
#define GUI_ERR_BMP_IMAGE_TYPE      -1
#define GUI_ERR_BMP_UNKNOWN_TYPE    -2
#define GUI_ERR_BMP_CANT_READ       -3
#define GUI_ERR_BMP_CANT_SAVE       -4
#define GUI_ERR_BMP_NOT_SUPPORTED   -5
#define GUI_ERR_BMP_MEM             -6
#define GUI_ERR_BMP_LOAD            -7
#define GUI_ERR_BMP_FILEIO          -8
#define GUI_ERR_BMP_OTHER           -9

#ifdef GUI_FILESUPPORT
T_WORD fnGUI_LoadMyBitmapFromBmpFile(T_WORD fp, T_GUI_MyBitmap* bmp, T_GUI_Rgb* pal);
T_WORD fnGUI_LoadBitmapFromBmpFile(T_GUI_HDC hDc,T_GUI_pBitmap pBitmap,T_UBYTE	*spFileName);
T_WORD fnGUI_SaveBmpFileFromMyBitmap(T_WORD fp, T_GUI_MyBitmap* bmp, T_GUI_Rgb* pal);
T_WORD fnGUI_SaveBmpFileFromBitmap(T_GUI_HDC hDc,T_GUI_pBitmap pBitmap,T_UBYTE  *spFileName);
#endif /* GUI_FILESUPPORT */

#ifdef GUI_MEMORYSUPPORT
T_WORD fnGUI_LoadMyBitmapFromBmpMemory(T_CONST T_UBYTE* pData, T_GUI_MyBitmap* bmp, T_GUI_Rgb* pal);
T_WORD fnGUI_LoadBitmapFromBmpMemory(T_GUI_HDC hDc,T_GUI_pBitmap pBitmap,T_CONST T_UBYTE *pData);
T_WORD fnGUI_SaveBmpMemoryFromMyBitmap(T_GUI_pBmpBuffer pBuffer,T_GUI_MyBitmap* bmp,T_GUI_Rgb* pal);
T_WORD fnGUI_SaveBmpMemoryFromBitmap(T_GUI_HDC hDc,T_GUI_pBitmap pBitmap,T_GUI_pBmpBuffer pBuffer);
#endif /* GUI_MEMORYSUPPORT */

T_VOID fnGUI_UnLoadBitmap (T_GUI_pBitmap pBitmap);

T_WORD fnGUI_ExpandMyBitmap( T_GUI_HDC hDc, T_CONST T_GUI_MyBitmap *pMyBitmap, T_CONST T_GUI_Rgb *pal, T_GUI_pBitmap pBitmap);

T_VOID fnGUI_ExpandMonoBitmap (T_GUI_HDC hdc, T_WORD w, T_WORD h, T_CONST T_BYTE* bits, T_WORD bits_flow, T_WORD pitch,
                             T_BYTE* bitmap, T_WORD bg, T_WORD fg);
T_VOID fnGUI_Expand4CBitmap (T_GUI_HDC hdc, T_WORD w, T_WORD h, T_CONST T_BYTE* bits, T_WORD bits_flow, T_WORD pitch,
                            T_BYTE* bitmap, T_CONST T_GUI_Rgb* pal);
T_VOID fnGUI_Expand16CBitmap (T_GUI_HDC hdc, T_WORD w, T_WORD h, T_CONST T_BYTE* bits, T_WORD bits_flow, T_WORD pitch,
                            T_BYTE* bitmap, T_CONST T_GUI_Rgb* pal);
T_VOID fnGUI_Expand256CBitmap (T_GUI_HDC hdc, T_WORD w, T_WORD h, T_CONST T_BYTE* bits, T_WORD bits_flow, T_WORD pitch,
                             T_BYTE* bitmap, T_CONST T_GUI_Rgb* pal);
T_VOID fnGUI_CompileRGBBitmap (T_GUI_HDC hdc, T_WORD w, T_WORD h, T_CONST T_BYTE* bits, T_WORD bits_flow, T_WORD pitch,
                             T_BYTE* bitmap, T_WORD rgb_order);

T_VOID fnGUI_ReplaceBitmapColor (T_GUI_HDC hdc, T_GUI_pBitmap pBitmap, T_WORD iOColor, T_WORD iNColor);



/*************************************** GIF adn JPG support*****************************************/
#define ERR_IMG_OK		0
#define ERR_IMG_FAILED	-1

T_WORD fnGUI_LoadMyBitmapFromJpgMemory(T_GUI_pBmpBuffer pBuffer, T_GUI_MyBitmap* Bmp, T_GUI_Rgb* Pal);

#ifdef GUI_FILESUPPORT
T_WORD fnGUI_LoadMyBitmapFromGifFile(T_WORD fp, T_GUI_MyBitmap* bmp, T_GUI_Rgb* pal);
T_WORD fnGUI_LoadBitmapFromGifFile(T_GUI_HDC hDc,T_GUI_pBitmap pBitmap,T_UBYTE	*spFileName);
T_WORD fnGUI_ShowDynamicGifFile(T_GUI_HDC hDc,T_WORD x,T_WORD y,T_WORD w,T_WORD h,T_UBYTE *spNameFile,T_WORD WaitTime);
T_WORD fnGUI_LoadBitmapFromJpgFile(T_GUI_HDC hDc,T_GUI_pBitmap pBitmap,T_UBYTE	*spFileName);
#endif /* GUI_FILESUPPORT */

#ifdef GUI_MEMORYSUPPORT
T_WORD fnGUI_LoadMyBitmapFromGifMemory(T_CONST T_UBYTE* pArray, T_GUI_MyBitmap* Bmp, T_GUI_Rgb* Pal);
T_WORD fnGUI_LoadBitmapFromGifMemory(T_GUI_HDC hDc,T_GUI_pBitmap pBitmap,T_CONST T_UBYTE *pData);
T_WORD fnGUI_ShowDynamicGifMemory(T_GUI_HDC hDc,T_WORD x,T_WORD y,T_WORD w,T_WORD h,T_CONST T_UBYTE *pData,T_WORD WaitTime);
T_WORD fnGUI_LoadBitmapFromJpgMemory(T_GUI_HDC hDc,T_GUI_pBitmap pBitmap,T_GUI_pBmpBuffer pBuffer);
#endif /* GUI_MEMORYSUPPORT */

#ifdef __cplusplus
}
#endif  /* __cplusplus */

#endif  /* _GUIGDI_H */


⌨️ 快捷键说明

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