關於<graphics.h>的標頭檔案
阿新 • • 發佈:2020-12-26
關於<graphics.h>的標頭檔案如下
/******************************************************
* EasyX Library for C++ (Ver:20200902)
* https://easyx.cn
*
* graphics.h
* Based on easyx.h and retaining several old API.
******************************************************/
#pragma once
#include <easyx.h>
// 相容 initgraph 繪圖模式的巨集定義(無實際意義)
#define DETECT 0
#define VGA 0
#define VGALO 0
#define VGAMED 0
#define VGAHI 0
#define CGA 0
#define CGAC0 0
#define CGAC1 0
#define CGAC2 0
#define CGAC3 0
#define CGAHI 0
#define EGA 0
#define EGALO 0
#define EGAHI 0
// 繪圖視窗初始化引數(已廢棄,請使用新的巨集定義)
#define SHOWCONSOLE 1 // 建立圖形視窗時,保留控制檯的顯示
#define NOCLOSE 2 // 沒有關閉功能
#define NOMINIMIZE 4 // 沒有最小化功能
// BGI 格式的初始化圖形裝置,預設 640 x 480
HWND initgraph(int* gdriver, int* gmode, char* path);
void bar(int left, int top, int right, int bottom); // 畫無邊框填充矩形
void bar3d(int left, int top, int right, int bottom, int depth, bool topflag) ; // 畫有邊框三維填充矩形
void drawpoly(int numpoints, const int *polypoints); // 畫多邊形
void fillpoly(int numpoints, const int *polypoints); // 畫填充的多邊形
int getmaxx(); // 獲取最大的寬度值
int getmaxy(); // 獲取最大的高度值
COLORREF getcolor(); // 獲取當前繪圖前景色
void setcolor(COLORREF color); // 設定當前繪圖前景色
void setwritemode(int mode); // 設定前景的二元光柵操作模式
///
// 以下函式僅為相容早期 EasyX 的介面,不建議使用。請使用相關新函式替換。
//
#if _MSC_VER > 1200
#define _EASYX_DEPRECATE(_NewFunc) __declspec(deprecated("This function is deprecated. Instead, use this new function: " #_NewFunc ". See https://docs.easyx.cn/#" #_NewFunc " for details."))
#define _EASYX_DEPRECATE_OVERLOAD(_Func) __declspec(deprecated("This overload is deprecated. See https://docs.easyx.cn/#" #_Func " for details."))
#else
#define _EASYX_DEPRECATE(_NewFunc)
#define _EASYX_DEPRECATE_OVERLOAD(_Func)
#endif
// 設定當前字型樣式(該函式已不再使用,請使用 settextstyle 代替)
// nHeight: 字元的平均高度;
// nWidth: 字元的平均寬度(0 表示自適應);
// lpszFace: 字型名稱;
// nEscapement: 字串的書寫角度(單位 0.1 度);
// nOrientation: 每個字元的書寫角度(單位 0.1 度);
// nWeight: 字元的筆畫粗細(0 表示預設粗細);
// bItalic: 是否斜體;
// bUnderline: 是否下劃線;
// bStrikeOut: 是否刪除線;
// fbCharSet: 指定字符集;
// fbOutPrecision: 指定文字的輸出精度;
// fbClipPrecision: 指定文字的剪輯精度;
// fbQuality: 指定文字的輸出質量;
// fbPitchAndFamily: 指定以常規方式描述字型的字體系列。
_EASYX_DEPRECATE(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace);
_EASYX_DEPRECATE(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut);
_EASYX_DEPRECATE(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily);
_EASYX_DEPRECATE(settextstyle) void setfont(const LOGFONT *font); // 設定當前字型樣式
_EASYX_DEPRECATE(gettextstyle) void getfont(LOGFONT *font); // 獲取當前字型樣式
// 以下填充樣式不再使用,新的填充樣式請參見幫助檔案
#define NULL_FILL BS_NULL
#define EMPTY_FILL BS_NULL
#define SOLID_FILL BS_SOLID
// 普通一組
#define BDIAGONAL_FILL BS_HATCHED, HS_BDIAGONAL // /// 填充 (對應 BGI 的 LTSLASH_FILL)
#define CROSS_FILL BS_HATCHED, HS_CROSS // +++ 填充
#define DIAGCROSS_FILL BS_HATCHED, HS_DIAGCROSS // xxx 填充 (heavy cross hatch fill) (對應 BGI 的 XHTACH_FILL)
#define DOT_FILL (BYTE*)"\x80\x00\x08\x00\x80\x00\x08\x00" // xxx 填充 (對應 BGI 的 WIDE_DOT_FILL)
#define FDIAGONAL_FILL BS_HATCHED, HS_FDIAGONAL // \\\ 填充
#define HORIZONTAL_FILL BS_HATCHED, HS_HORIZONTAL // === 填充
#define VERTICAL_FILL BS_HATCHED, HS_VERTICAL // ||| 填充
// 密集一組
#define BDIAGONAL2_FILL (BYTE*)"\x44\x88\x11\x22\x44\x88\x11\x22"
#define CROSS2_FILL (BYTE*)"\xff\x11\x11\x11\xff\x11\x11\x11" // (對應 BGI 的 fill HATCH_FILL)
#define DIAGCROSS2_FILL (BYTE*)"\x55\x88\x55\x22\x55\x88\x55\x22"
#define DOT2_FILL (BYTE*)"\x88\x00\x22\x00\x88\x00\x22\x00" // (對應 BGI 的 CLOSE_DOT_FILL)
#define FDIAGONAL2_FILL (BYTE*)"\x22\x11\x88\x44\x22\x11\x88\x44"
#define HORIZONTAL2_FILL (BYTE*)"\x00\x00\xff\x00\x00\x00\xff\x00"
#define VERTICAL2_FILL (BYTE*)"\x11\x11\x11\x11\x11\x11\x11\x11"
// 粗線一組
#define BDIAGONAL3_FILL (BYTE*)"\xe0\xc1\x83\x07\x0e\x1c\x38\x70" // (對應 BGI 的 SLASH_FILL)
#define CROSS3_FILL (BYTE*)"\x30\x30\x30\x30\x30\x30\xff\xff"
#define DIAGCROSS3_FILL (BYTE*)"\xc7\x83\xc7\xee\x7c\x38\x7c\xee"
#define DOT3_FILL (BYTE*)"\xc0\xc0\x0c\x0c\xc0\xc0\x0c\x0c"
#define FDIAGONAL3_FILL (BYTE*)"\x07\x83\xc1\xe0\x70\x38\x1c\x0e"
#define HORIZONTAL3_FILL (BYTE*)"\xff\xff\x00\x00\xff\xff\x00\x00" // (對應 BGI 的 LINE_FILL)
#define VERTICAL3_FILL (BYTE*)"\x33\x33\x33\x33\x33\x33\x33\x33"
// 其它
#define INTERLEAVE_FILL (BYTE*)"\xcc\x33\xcc\x33\xcc\x33\xcc\x33" // (對應 BGI 的 INTERLEAVE_FILL)
測試可用