📄 guigdi.h
字号:
T_WORD bytes_per_char;
T_WORD bytes_maxlen_char;
T_CONST T_BYTE* name;
T_BYTE def_char [MAX_LEN_MCHAR];
T_WORD (*len_first_char) (T_CONST T_UBYTE* mstr, T_WORD mstrlen);
T_WORD (*char_offset) (T_CONST T_UBYTE* mchar);
T_WORD (*nr_chars_in_str) (T_CONST T_UBYTE* mstr, T_WORD mstrlen);
T_BOOL (*is_this_charset) (T_CONST T_UBYTE* charset);
T_WORD (*len_first_substr) (T_CONST T_UBYTE* mstr, T_WORD mstrlen);
T_CONST T_UBYTE* (*get_next_word) (T_CONST T_UBYTE* mstr,
T_WORD strlen, T_GUI_WordInfo* word_info);
T_WORD (*pos_first_char) (T_CONST T_UBYTE* mstr, T_WORD mstrlen);
} T_GUI_CharsetOps;
typedef struct T_GUI_FontOps
{
T_WORD (*get_char_width) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
T_CONST T_UBYTE* mchar, T_WORD len);
T_WORD (*get_str_width) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
T_CONST T_UBYTE* mstr, T_WORD n, T_WORD cExtra);
T_WORD (*get_ave_width) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
T_WORD (*get_max_width) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
T_WORD (*get_font_height) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
T_WORD (*get_font_size) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont, T_WORD expect);
T_WORD (*get_font_ascent) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
T_WORD (*get_font_descent) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
T_GUI_SIZE (*char_bitmap_size) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
T_CONST T_UBYTE* mchar, T_WORD len);
T_GUI_SIZE (*max_bitmap_size) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
T_CONST T_VOID* (*get_char_bitmap) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
T_CONST T_UBYTE* mchar, T_WORD len);
T_CONST T_VOID* (*get_char_pixmap) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
T_CONST T_UBYTE* mchar, T_WORD len, T_WORD* pitch);
/* Can be NULL */
T_VOID (*start_str_output) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont);
/* Can be NULL */
T_WORD (*get_char_bbox) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
T_CONST T_UBYTE* mchar, T_WORD len,
T_WORD* px, T_WORD* py, T_WORD* pwidth, T_WORD* pheight);
/* Can be NULL */
T_VOID (*get_char_advance) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
T_WORD* px, T_WORD* py);
/* Can be NULL */
T_GUI_DevFont* (*new_instance) (T_GUI_LogFont* logfont, T_GUI_DevFont* devfont,
T_BOOL need_sbc_font);
/* Can be NULL */
T_VOID (*delete_instance) (T_GUI_DevFont* devfont);
/* Can be NULL */
} T_GUI_FontOps;
struct T_GUI_DevFont
{
T_BYTE name [LEN_DEVFONT_NAME + 1];
T_DWORD style;
T_GUI_FontOps* font_ops;
T_GUI_CharsetOps* charset_ops;
struct T_GUI_DevFont* sbc_next;
struct T_GUI_DevFont* mbc_next;
T_VOID* data;
};
#define fnGUI_SBC_DEVFONT_INFO(logfont) (logfont.sbc_devfont)
#define fnGUI_MBC_DEVFONT_INFO(logfont) (logfont.mbc_devfont)
#define fnGUI_SBC_DEVFONT_INFO_P(logfont) (logfont->sbc_devfont)
#define fnGUI_MBC_DEVFONT_INFO_P(logfont) (logfont->mbc_devfont)
/****** Color support *******************************************************/
/* System pixel definition */
T_GUI_PIXEL fnGUI_GetSysPixelIndex(T_WORD id);
#define PIXEL_INVALID -1
#define PIXEL_TRANSPARENT fnGUI_GetSysPixelIndex(0)
#define PIXEL_DARKBLUE fnGUI_GetSysPixelIndex(1)
#define PIXEL_DARKGREEN fnGUI_GetSysPixelIndex(2)
#define PIXEL_DARKCYAN fnGUI_GetSysPixelIndex(3)
#define PIXEL_DARKRED fnGUI_GetSysPixelIndex(4)
#define PIXEL_DARKMAGENTA fnGUI_GetSysPixelIndex(5)
#define PIXEL_DARKYELLOW fnGUI_GetSysPixelIndex(6)
#define PIXEL_DARKGRAY fnGUI_GetSysPixelIndex(7)
#define PIXEL_LIGHTGRAY fnGUI_GetSysPixelIndex(8)
#define PIXEL_BLUE fnGUI_GetSysPixelIndex(9)
#define PIXEL_GREEN fnGUI_GetSysPixelIndex(10)
#define PIXEL_CYAN fnGUI_GetSysPixelIndex(11)
#define PIXEL_RED fnGUI_GetSysPixelIndex(12)
#define PIXEL_MAGENTA fnGUI_GetSysPixelIndex(13)
#define PIXEL_YELLOW fnGUI_GetSysPixelIndex(14)
#define PIXEL_LIGHTWHITE fnGUI_GetSysPixelIndex(15)
#define PIXEL_BLACK fnGUI_GetSysPixelIndex(16)
/* Compatiblity definitions */
#define COLOR_INVALID PIXEL_INVALID
#define COLOR_TRANSPARENT PIXEL_TRANSPARENT
#define COLOR_DARKRED PIXEL_DARKRED
#define COLOR_DARKGREEN PIXEL_DARKGREEN
#define COLOR_DARKYELLOW PIXEL_DARKYELLOW
#define COLOR_DARKBLUE PIXEL_DARKBULE
#define COLOR_DARKMAGENTA PIXEL_DARKMAGENTA
#define COLOR_DARKCYAN PIXEL_DARKCYAN
#define COLOR_LIGHTGRAY PIXEL_LIGHTGRAY
#define COLOR_DARKGRAY PIXEL_DARKGRAY
#define COLOR_RED PIXEL_RED
#define COLOR_GREEN PIXEL_GREEN
#define COLOR_YELLOW PIXEL_YELLOW
#define COLOR_BLUE PIXEL_BLUE
#define COLOR_MAGENTA PIXEL_MAGENTA
#define COLOR_CYAN PIXEL_CYAN
#define COLOR_LIGHTWHITE PIXEL_LIGHTWHITE
#define COLOR_BLACK PIXEL_BLACK
#define SCREENHDC 0
#define HDC_SCREEN SCREENHDC
#define HDC_INVALID 0
#define GDCAP_COLORNUM 0
#define GDCAP_HPIXEL 1
#define GDCAP_VPIXEL 2
#define GDCAP_MAXX 3
#define GDCAP_MAXY 4
#define GDCAP_DEPTH 5
#define GDCAP_BPP 6
/****** DC support *******************************************************/
T_WORD fnGUI_GetGDCapability (T_GUI_HDC hdc, T_WORD index);
T_GUI_HDC fnGUI_GetDC(T_GUI_HWND hwnd);
T_GUI_HDC fnGUI_GetClientDC (T_GUI_HWND hwnd);
T_VOID fnGUI_ReleaseDC (T_GUI_HDC hdc);
T_GUI_HDC fnGUI_CreateCompatibleDC (T_GUI_HDC hdc);
T_VOID fnGUI_DeleteCompatibleDC (T_GUI_HDC hdc);
T_GUI_HDC fnGUI_CreatePrivateDC (T_GUI_HWND hwnd);
T_GUI_HDC fnGUI_CreatePrivateClientDC (T_GUI_HWND hwnd);
T_GUI_HDC fnGUI_GetPrivateClientDC (T_GUI_HWND hwnd);
T_VOID fnGUI_DeletePrivateDC (T_GUI_HDC hdc);
/****** General drawing attributes support *******************************************************/
#define BM_TRANSPARENT 1
#define BM_OPAQUE 0
T_GUI_PIXEL fnGUI_GetBkColor (T_GUI_HDC hdc);
T_WORD fnGUI_GetBkMode (T_GUI_HDC hdc);
T_GUI_PIXEL fnGUI_GetTextColor (T_GUI_HDC hdc);
T_GUI_PIXEL fnGUI_SetBkColor (T_GUI_HDC hdc, T_GUI_PIXEL color);
T_WORD fnGUI_SetBkMode (T_GUI_HDC hdc, T_WORD mode);
T_GUI_PIXEL fnGUI_SetTextColor (T_GUI_HDC hdc, T_GUI_PIXEL color);
T_WORD fnGUI_GetTabStop (T_GUI_HDC hdc);
T_WORD fnGUI_SetTabStop (T_GUI_HDC hdc, T_WORD new_value);
/* Pen and brush support */
#define PT_SOLID 0
#define BT_SOLID 0
T_GUI_PIXEL fnGUI_GetPenColor (T_GUI_HDC hdc);
T_GUI_PIXEL fnGUI_GetBrushColor (T_GUI_HDC hdc);
T_WORD fnGUI_GetPenType (T_GUI_HDC hdc);
T_WORD fnGUI_GetBrushType (T_GUI_HDC hdc);
T_GUI_PIXEL fnGUI_SetPenColor (T_GUI_HDC hdc, T_GUI_PIXEL color);
T_GUI_PIXEL fnGUI_SetBrushColor (T_GUI_HDC hdc, T_GUI_PIXEL color);
T_WORD fnGUI_SetPenType (T_GUI_HDC hdc, T_WORD type);
T_WORD fnGUI_SetBrushType (T_GUI_HDC hdc, T_WORD type);
/****** General drawing support *******************************************************/
T_VOID fnGUI_SetPixel (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_GUI_PIXEL color);
T_VOID fnGUI_SetPixelRGB (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD r, T_WORD g, T_WORD b);
T_GUI_PIXEL fnGUI_GetPixel (T_GUI_HDC hdc, T_WORD x, T_WORD y);
T_VOID fnGUI_GetPixelRGB (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD* r, T_WORD* g, T_WORD* b);
T_GUI_PIXEL fnGUI_RGB2Pixel (T_GUI_HDC hdc, T_WORD r, T_WORD g, T_WORD b);
#define fnGUI_RGB2Index fnGUI_RGB2Pixel
T_VOID fnGUI_LineTo (T_GUI_HDC hdc, T_WORD x, T_WORD y);
T_VOID fnGUI_MoveTo (T_GUI_HDC hdc, T_WORD x, T_WORD y);
T_VOID fnGUI_Polyline(T_GUI_HDC hdc, T_GUI_Point* points, T_WORD point_sum);
T_VOID fnGUI_Circle (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD r);
T_VOID fnGUI_Rectangle (T_GUI_HDC hdc, T_WORD x0, T_WORD y0, T_WORD x1, T_WORD y1);
#if 0
T_VOID fnGUI_Ellipse(T_GUI_HDC hdc,T_WORD x,T_WORD y,T_WORD w,T_WORD h);
T_VOID fnGUI_Arc(T_GUI_HDC hdc,T_WORD x,T_WORD y,T_WORD w,T_WORD h,T_WORD alfa,T_WORD beta);
#else
T_VOID fnGUI_Ellipse(T_GUI_HDC hdc,T_WORD x,T_WORD y,T_WORD rx,T_WORD ry, T_WORD startAngle, T_WORD arcAngle, T_BOOL bFill);
T_VOID fnGUI_Arc(T_GUI_HDC hdc,T_WORD x,T_WORD y,T_WORD ang1,T_WORD ang2,T_WORD r);
T_VOID fnGUI_DrawRoundRect(T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD width, T_WORD height, T_WORD arcWidth, T_WORD arcHeight, T_BOOL bFill);
#endif
T_VOID fnGUI_FocusRect (T_GUI_HDC hdc, T_WORD x0, T_WORD y0, T_WORD x1, T_WORD y1);
/****** mapping support *****************************************************************/
#define MM_TEXT 0
#define MM_ANISOTROPIC 1
T_WORD fnGUI_GetMapMode (T_GUI_HDC hdc);
T_VOID fnGUI_GetViewportExt (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_GetViewportOrg (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_GetWindowExt (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_GetWindowOrg (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_SetMapMode (T_GUI_HDC hdc, T_WORD mode);
T_VOID fnGUI_SetViewportExt (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_SetViewportOrg (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_SetWindowExt (T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_SetWindowOrg (T_GUI_HDC hdc, T_GUI_Point* pPt);
/****** Coordinate system transfer support *******************************************************/
T_VOID fnGUI_SPtoLP(T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_LPtoSP(T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_DPtoLP(T_GUI_HDC hdc, T_GUI_Point* pPt);
T_VOID fnGUI_LPtoDP(T_GUI_HDC hdc, T_GUI_Point* pPt);
/****** Clipping support *******************************************************/
T_VOID fnGUI_ExcludeClipRect (T_GUI_HDC hdc, T_WORD left, T_WORD top,
T_WORD right, T_WORD bottom);
T_VOID fnGUI_IncludeClipRect (T_GUI_HDC hdc, T_WORD left, T_WORD top,
T_WORD right, T_WORD bottom);
T_VOID fnGUI_ClipRectIntersect (T_GUI_HDC hdc, T_CONST T_GUI_Rect* pRect);
T_VOID fnGUI_SelectClipRect (T_GUI_HDC hdc, T_CONST T_GUI_Rect* pRect);
T_VOID fnGUI_SelectClipRegion (T_GUI_HDC hdc, T_CONST T_GUI_ClipRgn* pRgn);
T_VOID fnGUI_GetBoundsRect (T_GUI_HDC hdc, T_GUI_Rect* pRect);
T_BOOL fnGUI_PtVisible (T_GUI_HDC hdc, T_CONST T_GUI_Point* pPt);
T_BOOL fnGUI_RectVisible (T_GUI_HDC hdc, T_CONST T_GUI_Rect* pRect);
/****** bitmap support *******************************************************/
T_VOID fnGUI_SaveScreenBox (T_WORD x, T_WORD y, T_WORD w, T_WORD h, T_VOID* pBuffer);
T_VOID* fnGUI_SaveCoveredScreenBox (T_WORD x, T_WORD y, T_WORD w, T_WORD h);
T_VOID fnGUI_PutSavedBoxOnScreen (T_WORD x, T_WORD y, T_WORD w, T_WORD h, T_VOID* pBuffer);
T_VOID fnGUI_PutSavedBoxOnDC (T_GUI_HDC hdc, T_WORD x, T_WORD y, T_WORD w, T_WORD h, T_VOID* pBuffer);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -