HiEasyX  Ver 0.3.0
EasyX 全面扩展库
HiEasyX::Canvas类 参考

画布 更多...

#include <HiCanvas.h>

类 HiEasyX::Canvas 继承关系图:

Public 成员函数

 Canvas ()
 
 Canvas (int w, int h, COLORREF cBk=BLACK)
 
 Canvas (IMAGE *pImg)
 复制图像内容(绑定图像指针请调用 BindToImage) 更多...
 
 Canvas (IMAGE img)
 
Canvasoperator= (IMAGE *pImg)
 复制图像内容(绑定图像指针请调用 BindToImage) 更多...
 
Canvasoperator= (IMAGE img)
 
void UpdateSizeInfo ()
 
void Resize (int w, int h) override
 重设画布大小(若绑定了窗口,则不建议调用) 更多...
 
CanvasBindToImage (IMAGE *pImg)
 
IMAGE * GetImagePointer ()
 
IMAGE * Pt ()
 等价于 GetImagePointer() 更多...
 
DWORD * GetBuffer () const
 获取图像缓冲区指针 更多...
 
int GetBufferSize () const
 获取图像缓冲区大小,即图像面积(宽 * 高) 更多...
 
HDC GetHDC ()
 获取画布的 HDC 更多...
 
int getwidth () const
 
int getheight () const
 
int GetWidth () const
 
int GetHeight () const
 
void EnableAutoMarkFlushWindow (bool enable)
 
bool IsEnableAutoMarkFlushWindow () const
 
void BeginBatchDrawing ()
 
void EndBatchDrawing ()
 
bool IsValidPoint (int x, int y, int *pIndex=nullptr)
 判断某点是否位于图像中 更多...
 
void Clear (bool isSetColor=false, COLORREF bkcolor=BLACK)
 
void Clear_Alpha (bool isSetColor=false, COLORREF bkcolor=BLACK, bool ignore_alpha=false)
 用背景色清空画布(区别于 Clear 函数,此函数默认保留背景色中的透明度) 更多...
 
LINESTYLE GetLineStyle ()
 
void SetLineStyle (LINESTYLE style)
 
void SetLineStyle (int style, int thickness=1, const DWORD *puserstyle=nullptr, DWORD userstylecount=0)
 
void SetLineThickness (int thickness)
 
int GetLineThickness ()
 
FILLSTYLE GetFillStyle ()
 
void SetFillStyle (FILLSTYLE style)
 
void SetFillStyle (int style, long hatch=0, IMAGE *ppattern=nullptr)
 
void SetFillStyle (BYTE *ppattern8x8)
 
int GetRop2 ()
 
void SetRop2 (int mode)
 
int GetPolyFillMode ()
 
void SetPolyFillMode (int mode)
 
COLORREF GetLineColor ()
 
void SetLineColor (COLORREF color)
 
COLORREF GetTextColor ()
 
void SetTextColor (COLORREF color)
 
COLORREF GetFillColor ()
 
void SetFillColor (COLORREF color)
 
COLORREF GetBkColor ()
 
void SetBkColor (COLORREF color)
 
int GetBkMode ()
 
void SetBkMode (int mode)
 
void SetDefault ()
 设置绘图状态为原始状态 更多...
 
COLORREF GetPixel (int x, int y)
 
void PutPixel (int x, int y, COLORREF c)
 
COLORREF GetPixel_Direct (int x, int y)
 直接操作显存获取点 更多...
 
void PutPixel_Direct (int x, int y, COLORREF c)
 直接操作显存绘制点 更多...
 
void PutPixel_Direct_Alpha (int x, int y, COLORREF c)
 直接操作显存绘制带有透明度的点(使用 COLORREF 中的透明度) 更多...
 
void Line (int x1, int y1, int x2, int y2, bool isSetColor=false, COLORREF c=0)
 
void Line (POINT pt1, POINT pt2, bool isSetColor=false, COLORREF c=0)
 
void Rectangle (int left, int top, int right, int bottom, bool isSetColor=false, COLORREF c=0)
 
void Rectangle (RECT rct, bool isSetColor=false, COLORREF c=0)
 
void FillRectangle (int left, int top, int right, int bottom, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void FillRectangle (RECT rct, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void SolidRectangle (int left, int top, int right, int bottom, bool isSetColor=false, COLORREF c=0)
 
void SolidRectangle (RECT rct, bool isSetColor=false, COLORREF c=0)
 
void ClearRectangle (int left, int top, int right, int bottom)
 
void ClearRectangle (RECT rct)
 
void Circle (int x, int y, int radius, bool isSetColor=false, COLORREF c=0)
 
void FillCircle (int x, int y, int radius, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void SolidCircle (int x, int y, int radius, bool isSetColor=false, COLORREF c=0)
 
void ClearCircle (int x, int y, int radius)
 
void Ellipse (int left, int top, int right, int bottom, bool isSetColor=false, COLORREF c=0)
 
void Ellipse (RECT rct, bool isSetColor=false, COLORREF c=0)
 
void FillEllipse (int left, int top, int right, int bottom, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void FillEllipse (RECT rct, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void SolidEllipse (int left, int top, int right, int bottom, bool isSetColor=false, COLORREF c=0)
 
void SolidEllipse (RECT rct, bool isSetColor=false, COLORREF c=0)
 
void ClearEllipse (int left, int top, int right, int bottom)
 
void ClearEllipse (RECT rct)
 
void RoundRect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF c=0)
 
void RoundRect (RECT rct, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF c=0)
 
void FillRoundRect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void FillRoundRect (RECT rct, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void SolidRoundRect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF c=0)
 
void SolidRoundRect (RECT rct, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF c=0)
 
void ClearRoundRect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight)
 
void ClearRoundRect (RECT rct, int ellipsewidth, int ellipseheight)
 
void Arc (int left, int top, int right, int bottom, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
 
void Arc (RECT rct, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
 
void Pie (int left, int top, int right, int bottom, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
 
void Pie (RECT rct, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
 
void FillPie (int left, int top, int right, int bottom, double stangle, double endangle, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void FillPie (RECT rct, double stangle, double endangle, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void SolidPie (int left, int top, int right, int bottom, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
 
void SolidPie (RECT rct, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
 
void ClearPie (int left, int top, int right, int bottom, double stangle, double endangle)
 
void ClearPie (RECT rct, double stangle, double endangle)
 
void Polyline (const POINT *points, int num, bool isSetColor=false, COLORREF c=0)
 
void Polygon (const POINT *points, int num, bool isSetColor=false, COLORREF c=0)
 
void FillPolygon (const POINT *points, int num, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
 
void SolidPolygon (const POINT *points, int num, bool isSetColor=false, COLORREF c=0)
 
void ClearPolygon (const POINT *points, int num)
 
void PolyBezier (const POINT *points, int num, bool isSetColor=false, COLORREF c=0)
 
void FloodFill (int x, int y, COLORREF color, int filltype=FLOODFILLBORDER, bool isSetColor=false, COLORREF cFill=0)
 填充某区域 更多...
 
int OutTextXY (int x, int y, LPCTSTR lpszText, bool isSetColor=false, COLORREF c=0)
 在指定位置输出文本 更多...
 
int OutTextXY (int x, int y, TCHAR ch, bool isSetColor=false, COLORREF c=0)
 
int OutTextXY_Format (int x, int y, int _Size, LPCTSTR _Format,...)
 在指定位置输出格式化文本 更多...
 
int TextWidth (LPCTSTR lpszText)
 获取文本像素宽度 更多...
 
int TextWidth (TCHAR c)
 
int TextHeight (LPCTSTR lpszText)
 
int TextHeight (TCHAR c)
 
int Draw_Text (LPCTSTR str, RECT *pRect, UINT uFormat, bool isSetColor=false, COLORREF c=0)
 
int Draw_Text (TCHAR ch, RECT *pRect, UINT uFormat, bool isSetColor=false, COLORREF c=0)
 
void CenterText (LPCTSTR lpszText, RECT rct={ -1 }, bool isSetColor=false, COLORREF c=0)
 在某区域居中输出文字 更多...
 
void CenterText_Format (int _Size, LPCTSTR _Format,...)
 居中输出格式化文本 更多...
 
LOGFONT GetTextStyle ()
 
void SetTextStyle (int nHeight, int nWidth, LPCTSTR lpszFace)
 
void SetTextStyle (int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut)
 
void SetTextStyle (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)
 
void SetTextStyle (LOGFONT font)
 
void SetFont (int nHeight, int nWidth=0)
 设置字体大小 更多...
 
void SetTypeface (LPCTSTR lpsz)
 设置使用字体的名称 更多...
 
void SetTextEscapement (LONG lfEscapement)
 设置字符串的书写角度(单位 0.1 度) 更多...
 
void SetTextOrientation (LONG lfOrientation)
 设置每个字符的书写角度(单位 0.1 度) 更多...
 
void SetTextWeight (LONG lfWeight)
 设置字符的笔画粗细(范围 默认 0 ~ 1000 最粗) 更多...
 
void SetTextItalic (bool lfItalic)
 设置字体是否为斜体 更多...
 
void SetTextUnderline (bool lfUnderline)
 设置字体是否有下划线 更多...
 
void SetTextStrikeOut (bool lfStrikeOut)
 设置字体是否有删除线 更多...
 
COLORREF GetColor ()
 获取前景色 更多...
 
void SetColor (COLORREF color)
 设置前景色 更多...
 
int GetX ()
 
int GetY ()
 
void MoveTo (int x, int y)
 
void MoveRel (int dx, int dy)
 
void LineTo (int x, int y, bool isSetColor=false, COLORREF c=0)
 
void LineRel (int dx, int dy, bool isSetColor=false, COLORREF c=0)
 
void OutText (LPCTSTR lpszText, bool isSetColor=false, COLORREF c=0)
 
void OutText (TCHAR ch, bool isSetColor=false, COLORREF c=0)
 
int OutText_Format (int _Size, LPCTSTR _Format,...)
 输出格式化文本 更多...
 
IMAGE Load_Image_Alpha (LPCTSTR lpszImgFile, int x=0, int y=0, bool bResize=true, int nWidth=0, int nHeight=0, BYTE alpha=255, bool bUseSrcAlpha=false)
 
void PutImageIn_Alpha (int x, int y, IMAGE *pImg, RECT crop={ 0 }, BYTE alpha=255, bool bUseSrcAlpha=false, bool isCalculated=false)
 绘制图像到该画布 更多...
 
void RenderTo (int x, int y, IMAGE *pImg=nullptr, RECT crop={ 0 }, BYTE alpha=255, bool bUseSrcAlpha=false, bool isCalculated=false)
 将该画布的图像绘制到另一画布中 更多...
 
void RotateImage (double radian, COLORREF bkcolor=BLACK, bool autosize=false, bool highquality=true)
 EasyX 原生旋转函数 更多...
 
void RotateImage_Alpha (double radian, COLORREF bkcolor=BLACK)
 旋转图像(保留 Alpha 信息) 更多...
 
void ZoomImage_Rough_Alpha (int nW, int nH=0)
 缩放图像(粗糙的、即不插值的缩放,保留透明度信息) 更多...
 
void ZoomImage_Alpha (int nW, int nH=0)
 缩放图像(双线性插值,保留透明度信息) 更多...
 
void ZoomImage_Win32_Alpha (int nW, int nH=0)
 缩放图像(基于 Win32 API,比较快,保留透明度信息) 更多...
 
void GP_SetLineColor (COLORREF color)
 
void GP_SetFillColor (COLORREF color)
 
void GP_SetLineWidth (float width)
 
COLORREF GP_GetLineColor () const
 
COLORREF GP_GetFillColor () const
 
float GP_GetLineWidth () const
 
void GP_EnableAlpha (bool enable)
 设置 GDI+ 绘制时是否使用透明度 更多...
 
void GP_EnableAA (bool enable)
 设置 GDI+ 绘制时是否抗锯齿 更多...
 
bool GP_IsEnbaleAlpha () const
 
bool GP_IsEnbaleAA () const
 
void GP_Line (float x1, float y1, float x2, float y2, bool isSetColor=false, COLORREF linecolor=0)
 
void GP_Polygon (int points_num, POINT *points, bool isSetColor=false, COLORREF linecolor=0)
 
void GP_SolidPolygon (int points_num, POINT *points, bool isSetColor=false, COLORREF fillcolor=0)
 
void GP_FillPolygon (int points_num, POINT *points, bool isSetColor=false, COLORREF linecolor=0, COLORREF fillcolor=0)
 
void GP_Rectangle (float x, float y, float w, float h, bool isSetColor=false, COLORREF linecolor=0)
 
void GP_SolidRectangle (float x, float y, float w, float h, bool isSetColor=false, COLORREF fillcolor=0)
 
void GP_FillRectangle (float x, float y, float w, float h, bool isSetColor=false, COLORREF linecolor=0, COLORREF fillcolor=0)
 
void GP_Ellipse (float x, float y, float w, float h, bool isSetColor=false, COLORREF linecolor=0)
 
void GP_SolidEllipse (float x, float y, float w, float h, bool isSetColor=false, COLORREF fillcolor=0)
 
void GP_FillEllipse (float x, float y, float w, float h, bool isSetColor=false, COLORREF linecolor=0, COLORREF fillcolor=0)
 
void GP_Pie (float x, float y, float w, float h, float stangle, float endangle, bool isSetColor=false, COLORREF linecolor=0)
 
void GP_SolidPie (float x, float y, float w, float h, float stangle, float endangle, bool isSetColor=false, COLORREF fillcolor=0)
 
void GP_FillPie (float x, float y, float w, float h, float stangle, float endangle, bool isSetColor=false, COLORREF linecolor=0, COLORREF fillcolor=0)
 
void GP_Arc (float x, float y, float w, float h, float stangle, float endangle, bool isSetColor=false, COLORREF linecolor=0)
 

Protected 成员函数

void CleanUpSettings ()
 清空大部分设置 更多...
 
bool BeginWindowTask ()
 单独启动 HiWindow 的窗口任务(如果绑定了窗口) 更多...
 
void EndWindowTask ()
 结束 HiWindow 的窗口任务 更多...
 
bool BeginDrawing ()
 
void EndDrawing ()
 调用 EasyX 绘图函数完毕,恢复先前的绘图状态 更多...
 
CanvasBindToWindow (HWND hWnd, IMAGE *pImg)
 

Protected 属性

DrawingProperty m_property
 保存外界绘图属性(用于保存旧的绘图对象指针) 更多...
 
DWORD * m_pBuf = nullptr
 图像内存指针 更多...
 
int m_nWidth
 
int m_nHeight
 图像宽高 更多...
 
int m_nBufSize
 图像面积 更多...
 
bool m_bBindToImgPointer
 该画布是否绑定到图像指针 更多...
 
IMAGE * m_pImg
 画布绑定的图像指针(若画布绑定到指针) 更多...
 
bool m_bBatchDraw
 是否启用了批量绘制 更多...
 
COLORREF m_cGPLineColor = WHITE
 GDI+ 绘图时使用的线条颜色 更多...
 
COLORREF m_cGPFillColor = WHITE
 GDI+ 绘图时使用的填充颜色 更多...
 
float m_fGPLineWidth = 1.f
 GDI+ 绘图时的线条宽度 更多...
 
bool m_bGPAlpha = false
 GDI+ 绘图时是否启用透明度 更多...
 
bool m_bGPAA = true
 GDI+ 绘图时是否抗锯齿 更多...
 
HWND m_hBindWindow
 绑定到的窗口 更多...
 
bool m_bAutoMarkFlushWindow = true
 绑定到窗口时,标记是否在绘制后自动设置需要更新双缓冲 更多...
 

友元

void BindWindowCanvas (Canvas *, HWND)
 

详细描述

画布

在文件 HiCanvas.h117 行定义.

构造及析构函数说明

◆ Canvas() [1/4]

HiEasyX::Canvas::Canvas ( )

在文件 HiCanvas.cpp301 行定义.

302  {
303  CleanUpSettings();
304  UpdateSizeInfo();
305  }

◆ Canvas() [2/4]

HiEasyX::Canvas::Canvas ( int  w,
int  h,
COLORREF  cBk = BLACK 
)

在文件 HiCanvas.cpp307 行定义.

308  {
309  CleanUpSettings();
310  Resize(w, h);
311  SetBkColor(cBk);
312  Clear();
313  }

◆ Canvas() [3/4]

HiEasyX::Canvas::Canvas ( IMAGE *  pImg)

复制图像内容(绑定图像指针请调用 BindToImage)

参数
[in]pImg原图像

在文件 HiCanvas.cpp315 行定义.

316  {
317  operator=(pImg);
318  }

◆ Canvas() [4/4]

HiEasyX::Canvas::Canvas ( IMAGE  img)

在文件 HiCanvas.cpp320 行定义.

321  {
322  operator=(img);
323  }

成员函数说明

◆ Arc() [1/2]

void HiEasyX::Canvas::Arc ( int  left,
int  top,
int  right,
int  bottom,
double  stangle,
double  endangle,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1012 行定义.

1013  {
1014  if (BeginDrawing())
1015  {
1016  if (isSetColor) setlinecolor(c);
1017  arc(left, top, right, bottom, stangle, endangle);
1018  EndDrawing();
1019  }
1020  }

◆ Arc() [2/2]

void HiEasyX::Canvas::Arc ( RECT  rct,
double  stangle,
double  endangle,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1022 行定义.

1023  {
1024  Arc(rct.left, rct.top, rct.right, rct.bottom, stangle, endangle, isSetColor, c);
1025  }

◆ BeginBatchDrawing()

void HiEasyX::Canvas::BeginBatchDrawing ( )
    开始大批量绘制(该函数并非用于开启双缓冲)
 备注:
    调用该函数后,当前绘图目标将转移到该画布,此后每次绘制不会恢复绘图目标

在文件 HiCanvas.cpp410 行定义.

411  {
412  if (BeginDrawing())
413  {
414  m_bBatchDraw = true;
415  }
416  }

◆ BeginDrawing()

bool HiEasyX::Canvas::BeginDrawing ( )
protected
    调用 EasyX 绘图函数前,设置该画布为目标绘图画布
 备注:
    若绑定了窗口,则自动启动窗口任务
返回
是否设置成功

在文件 HiCanvas.cpp275 行定义.

276  {
277  IMAGE* p = GetImagePointer();
278  if (GetWorkingImage() != p)
279  {
281  SetWorkingImage(p);
282  }
283  return BeginWindowTask();
284  }

◆ BeginWindowTask()

bool HiEasyX::Canvas::BeginWindowTask ( )
protected

单独启动 HiWindow 的窗口任务(如果绑定了窗口)

返回
是否启动成功

在文件 HiCanvas.cpp247 行定义.

248  {
249  if (m_hBindWindow)
250  {
252  {
253  if (HiEasyX::BeginTask())
254  {
255  return true;
256  }
257  }
258  return false;
259  }
260  else
261  {
262  // 内部总是调用此函数,故未绑定窗口时直接返回 true
263  return true;
264  }
265  }

◆ BindToImage()

Canvas & HiEasyX::Canvas::BindToImage ( IMAGE *  pImg)
    绑定到图像指针
 注意:
    绑定到图像指针后,如果在外部调整了图像大小,则需要调用 UpdateSizeInfo 重新加载图像信息
参数
[in]pImg目标图像指针
返回
此画布

在文件 HiCanvas.cpp389 行定义.

390  {
391  CleanUpSettings();
392  m_bBindToImgPointer = true;
393  m_pImg = pImg;
394  UpdateSizeInfo();
395  return *this;
396  }

◆ BindToWindow()

Canvas & HiEasyX::Canvas::BindToWindow ( HWND  hWnd,
IMAGE *  pImg 
)
protected
    将画布绑定到窗口(画布大小随窗口自动调整)
 备注:
    此函数只应该被 BindWindowCanvas 函数调用
参数
[in]hWnd目标窗口
[in]pImg窗口图像缓冲区
返回
此画布

在文件 HiCanvas.cpp398 行定义.

399  {
400  BindToImage(pImg);
401  m_hBindWindow = hWnd;
402  return *this;
403  }

◆ CenterText()

void HiEasyX::Canvas::CenterText ( LPCTSTR  lpszText,
RECT  rct = { -1 },
bool  isSetColor = false,
COLORREF  c = 0 
)

在某区域居中输出文字

参数
[in]lpszText文本
[in]rct输出区域,默认为画布区域
[in]isSetColor是否设置颜色
[in]c文本颜色

在文件 HiCanvas.cpp1277 行定义.

1278  {
1279  if (rct.left < 0) rct = { 0,0,m_nWidth,m_nHeight };
1280  Draw_Text(lpszText, &rct, DT_CENTER | DT_VCENTER | DT_SINGLELINE, isSetColor, c);
1281  }

◆ CenterText_Format()

void HiEasyX::Canvas::CenterText_Format ( int  _Size,
LPCTSTR  _Format,
  ... 
)

居中输出格式化文本

参数
[in]_Size格式化文本最大长度
[in]_Format格式化字符串
[in]不定参数

在文件 HiCanvas.cpp1283 行定义.

1284  {
1285  va_list list;
1286  va_start(list, _Format);
1287  wchar_t* buf = new wchar_t[_Size];
1288  vswprintf_s(buf, _Size, _Format, list);
1289  va_end(list);
1290 
1291  CenterText(buf);
1292  delete[] buf;
1293  }

◆ Circle()

void HiEasyX::Canvas::Circle ( int  x,
int  y,
int  radius,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp843 行定义.

844  {
845  if (BeginDrawing())
846  {
847  if (isSetColor) setlinecolor(c);
848  circle(x, y, radius);
849  EndDrawing();
850  }
851  }

◆ CleanUpSettings()

void HiEasyX::Canvas::CleanUpSettings ( )
protected

清空大部分设置

在文件 HiCanvas.cpp234 行定义.

235  {
236  m_property = {};
237  m_pBuf = nullptr;
238  m_nWidth = 0;
239  m_nHeight = 0;
240  m_nBufSize = 0;
241  m_bBindToImgPointer = false;
242  m_pImg = nullptr;
243  m_bBatchDraw = false;
244  m_hBindWindow = nullptr;
245  }

◆ Clear()

void HiEasyX::Canvas::Clear ( bool  isSetColor = false,
COLORREF  bkcolor = BLACK 
)
    用背景色清空画布
 备注:
    此函数将忽略背景色的透明度,并直接对画布填入 255 的透明度(即不透明)。

在文件 HiCanvas.cpp465 行定义.

466  {
467  Clear_Alpha(isSetColor, bkcolor, true);
468  }

◆ Clear_Alpha()

void HiEasyX::Canvas::Clear_Alpha ( bool  isSetColor = false,
COLORREF  bkcolor = BLACK,
bool  ignore_alpha = false 
)

用背景色清空画布(区别于 Clear 函数,此函数默认保留背景色中的透明度)

在文件 HiCanvas.cpp470 行定义.

471  {
472  if (BeginDrawing())
473  {
474  if (isSetColor) setbkcolor(bkcolor);
475  DWORD bk_bgr = BGR(getbkcolor());
476 
477  if (ignore_alpha) // 设置背景透明度为 255(不透明)
478  bk_bgr |= 0xFF000000;
479 
480  for (int i = 0; i < m_nBufSize; i++)
481  m_pBuf[i] = bk_bgr;
482 
483  EndDrawing();
484  }
485  }

◆ ClearCircle()

void HiEasyX::Canvas::ClearCircle ( int  x,
int  y,
int  radius 
)

在文件 HiCanvas.cpp877 行定义.

878  {
879  if (BeginDrawing())
880  {
881  clearcircle(x, y, radius);
882  EndDrawing();
883  }
884  }

◆ ClearEllipse() [1/2]

void HiEasyX::Canvas::ClearEllipse ( int  left,
int  top,
int  right,
int  bottom 
)

在文件 HiCanvas.cpp935 行定义.

936  {
937  if (BeginDrawing())
938  {
939  clearellipse(left, top, right, bottom);
940  EndDrawing();
941  }
942  }

◆ ClearEllipse() [2/2]

void HiEasyX::Canvas::ClearEllipse ( RECT  rct)

在文件 HiCanvas.cpp944 行定义.

945  {
946  ClearEllipse(rct.left, rct.top, rct.right, rct.bottom);
947  }

◆ ClearPie() [1/2]

void HiEasyX::Canvas::ClearPie ( int  left,
int  top,
int  right,
int  bottom,
double  stangle,
double  endangle 
)

在文件 HiCanvas.cpp1076 行定义.

1077  {
1078  if (BeginDrawing())
1079  {
1080  clearpie(left, top, right, bottom, stangle, endangle);
1081  EndDrawing();
1082  }
1083  }

◆ ClearPie() [2/2]

void HiEasyX::Canvas::ClearPie ( RECT  rct,
double  stangle,
double  endangle 
)

在文件 HiCanvas.cpp1085 行定义.

1086  {
1087  ClearPie(rct.left, rct.top, rct.right, rct.bottom, stangle, endangle);
1088  }

◆ ClearPolygon()

void HiEasyX::Canvas::ClearPolygon ( const POINT *  points,
int  num 
)

在文件 HiCanvas.cpp1134 行定义.

1135  {
1136  if (BeginDrawing())
1137  {
1138  clearpolygon(points, num);
1139  EndDrawing();
1140  }
1141  }

◆ ClearRectangle() [1/2]

void HiEasyX::Canvas::ClearRectangle ( int  left,
int  top,
int  right,
int  bottom 
)

在文件 HiCanvas.cpp829 行定义.

830  {
831  if (BeginDrawing())
832  {
833  clearrectangle(left, top, right, bottom);
834  EndDrawing();
835  }
836  }

◆ ClearRectangle() [2/2]

void HiEasyX::Canvas::ClearRectangle ( RECT  rct)

在文件 HiCanvas.cpp838 行定义.

839  {
840  ClearRectangle(rct.left, rct.top, rct.right, rct.bottom);
841  }

◆ ClearRoundRect() [1/2]

void HiEasyX::Canvas::ClearRoundRect ( int  left,
int  top,
int  right,
int  bottom,
int  ellipsewidth,
int  ellipseheight 
)

在文件 HiCanvas.cpp998 行定义.

999  {
1000  if (BeginDrawing())
1001  {
1002  clearroundrect(left, top, right, bottom, ellipsewidth, ellipseheight);
1003  EndDrawing();
1004  }
1005  }

◆ ClearRoundRect() [2/2]

void HiEasyX::Canvas::ClearRoundRect ( RECT  rct,
int  ellipsewidth,
int  ellipseheight 
)

在文件 HiCanvas.cpp1007 行定义.

1008  {
1009  ClearRoundRect(rct.left, rct.top, rct.right, rct.bottom, ellipsewidth, ellipseheight);
1010  }

◆ Draw_Text() [1/2]

int HiEasyX::Canvas::Draw_Text ( LPCTSTR  str,
RECT *  pRect,
UINT  uFormat,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1253 行定义.

1254  {
1255  if (BeginDrawing())
1256  {
1257  if (isSetColor) settextcolor(c);
1258  int width = drawtext(str, pRect, uFormat);
1259  EndDrawing();
1260  return width;
1261  }
1262  return 0;
1263  }

◆ Draw_Text() [2/2]

int HiEasyX::Canvas::Draw_Text ( TCHAR  ch,
RECT *  pRect,
UINT  uFormat,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1265 行定义.

1266  {
1267  if (BeginDrawing())
1268  {
1269  if (isSetColor) settextcolor(c);
1270  int width = drawtext(ch, pRect, uFormat);
1271  EndDrawing();
1272  return width;
1273  }
1274  return 0;
1275  }

◆ Ellipse() [1/2]

void HiEasyX::Canvas::Ellipse ( int  left,
int  top,
int  right,
int  bottom,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp886 行定义.

887  {
888  if (BeginDrawing())
889  {
890  if (isSetColor) setlinecolor(c);
891  ellipse(left, top, right, bottom);
892  EndDrawing();
893  }
894  }

◆ Ellipse() [2/2]

void HiEasyX::Canvas::Ellipse ( RECT  rct,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp896 行定义.

897  {
898  Ellipse(rct.left, rct.top, rct.right, rct.bottom, isSetColor, c);
899  }

◆ EnableAutoMarkFlushWindow()

void HiEasyX::Canvas::EnableAutoMarkFlushWindow ( bool  enable)
    绑定到窗口时,设置是否在每次绘制后都自动标记刷新窗口双缓冲
 备注:
    标记刷新窗口双缓冲并不意味着即时刷新。
    标记后,窗口将会在下一次接受到绘制消息时更新双缓冲。

在文件 HiCanvas.cpp405 行定义.

406  {
407  m_bAutoMarkFlushWindow = enable;
408  }

◆ EndBatchDrawing()

void HiEasyX::Canvas::EndBatchDrawing ( )
    结束批量绘制
 备注:
    绘图目标将恢复到批量绘制前的状态

在文件 HiCanvas.cpp418 行定义.

419  {
420  if (m_bBatchDraw)
421  {
422  m_bBatchDraw = false;
423  EndDrawing();
424  }
425  }

◆ EndDrawing()

void HiEasyX::Canvas::EndDrawing ( )
protected

调用 EasyX 绘图函数完毕,恢复先前的绘图状态

在文件 HiCanvas.cpp286 行定义.

287  {
288  // 批量绘制模式下,不退出绘图目标
289  if (!m_bBatchDraw)
290  {
291  if (m_property.IsSaved())
292  {
294  m_property.Reset();
295  }
296 
297  EndWindowTask();
298  }
299  }

◆ EndWindowTask()

void HiEasyX::Canvas::EndWindowTask ( )
protected

结束 HiWindow 的窗口任务

在文件 HiCanvas.cpp267 行定义.

268  {
269  if (m_hBindWindow)
270  {
272  }
273  }

◆ FillCircle()

void HiEasyX::Canvas::FillCircle ( int  x,
int  y,
int  radius,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp853 行定义.

854  {
855  if (BeginDrawing())
856  {
857  if (isSetColor)
858  {
859  setlinecolor(cLine);
860  setfillcolor(cFill);
861  }
862  fillcircle(x, y, radius);
863  EndDrawing();
864  }
865  }

◆ FillEllipse() [1/2]

void HiEasyX::Canvas::FillEllipse ( int  left,
int  top,
int  right,
int  bottom,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp901 行定义.

902  {
903  if (BeginDrawing())
904  {
905  if (isSetColor)
906  {
907  setlinecolor(cLine);
908  setfillcolor(cFill);
909  }
910  fillellipse(left, top, right, bottom);
911  EndDrawing();
912  }
913  }

◆ FillEllipse() [2/2]

void HiEasyX::Canvas::FillEllipse ( RECT  rct,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp915 行定义.

916  {
917  FillEllipse(rct.left, rct.top, rct.right, rct.bottom, isSetColor, cLine, cFill);
918  }

◆ FillPie() [1/2]

void HiEasyX::Canvas::FillPie ( int  left,
int  top,
int  right,
int  bottom,
double  stangle,
double  endangle,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp1042 行定义.

1043  {
1044  if (BeginDrawing())
1045  {
1046  if (isSetColor)
1047  {
1048  setlinecolor(cLine);
1049  setfillcolor(cFill);
1050  }
1051  fillpie(left, top, right, bottom, stangle, endangle);
1052  EndDrawing();
1053  }
1054  }

◆ FillPie() [2/2]

void HiEasyX::Canvas::FillPie ( RECT  rct,
double  stangle,
double  endangle,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp1056 行定义.

1057  {
1058  FillPie(rct.left, rct.top, rct.right, rct.bottom, stangle, endangle, isSetColor, cLine, cFill);
1059  }

◆ FillPolygon()

void HiEasyX::Canvas::FillPolygon ( const POINT *  points,
int  num,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp1110 行定义.

1111  {
1112  if (BeginDrawing())
1113  {
1114  if (isSetColor)
1115  {
1116  setlinecolor(cLine);
1117  setfillcolor(cFill);
1118  }
1119  fillpolygon(points, num);
1120  EndDrawing();
1121  }
1122  }

◆ FillRectangle() [1/2]

void HiEasyX::Canvas::FillRectangle ( int  left,
int  top,
int  right,
int  bottom,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp794 行定义.

795  {
796  if (BeginDrawing())
797  {
798  if (isSetColor)
799  {
800  setlinecolor(cLine);
801  setfillcolor(cFill);
802  }
803 
804  fillrectangle(left, top, right, bottom);
805  EndDrawing();
806  }
807  }

◆ FillRectangle() [2/2]

void HiEasyX::Canvas::FillRectangle ( RECT  rct,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp809 行定义.

810  {
811  FillRectangle(rct.left, rct.top, rct.right, rct.bottom, isSetColor, cLine, cFill);
812  }

◆ FillRoundRect() [1/2]

void HiEasyX::Canvas::FillRoundRect ( int  left,
int  top,
int  right,
int  bottom,
int  ellipsewidth,
int  ellipseheight,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp964 行定义.

965  {
966  if (BeginDrawing())
967  {
968  if (isSetColor)
969  {
970  setlinecolor(cLine);
971  setfillcolor(cFill);
972  }
973  fillroundrect(left, top, right, bottom, ellipsewidth, ellipseheight);
974  EndDrawing();
975  }
976  }

◆ FillRoundRect() [2/2]

void HiEasyX::Canvas::FillRoundRect ( RECT  rct,
int  ellipsewidth,
int  ellipseheight,
bool  isSetColor = false,
COLORREF  cLine = 0,
COLORREF  cFill = 0 
)

在文件 HiCanvas.cpp978 行定义.

979  {
980  FillRoundRect(rct.left, rct.top, rct.right, rct.bottom, ellipsewidth, ellipseheight, cLine, cFill, isSetColor);
981  }

◆ FloodFill()

void HiEasyX::Canvas::FloodFill ( int  x,
int  y,
COLORREF  color,
int  filltype = FLOODFILLBORDER,
bool  isSetColor = false,
COLORREF  cFill = 0 
)

填充某区域

参数
[in]x填充起始位置
[in]y填充起始位置
[in]color填充颜色
[in]filltype
    填充模式,有以下两种选择:
    FLOODFILLBORDER     指定 color 为填充边界颜色,即遇到此颜色后停止填充
    FLOODFILLSURFACE    指定 color 为填充表面颜色,即只填充此颜色
[in]isSetColor是否设置填充颜色
[in]cFill填充颜色

在文件 HiCanvas.cpp1153 行定义.

1154  {
1155  if (BeginDrawing())
1156  {
1157  if (isSetColor) setfillcolor(cFill);
1158  floodfill(x, y, color, filltype);
1159  EndDrawing();
1160  }
1161  }

◆ GetBkColor()

COLORREF HiEasyX::Canvas::GetBkColor ( )

在文件 HiCanvas.cpp665 行定义.

666  {
667  if (BeginDrawing())
668  {
669  COLORREF r = getbkcolor();
670  EndDrawing();
671  return r;
672  }
673  return 0;
674  }

◆ GetBkMode()

int HiEasyX::Canvas::GetBkMode ( )

在文件 HiCanvas.cpp685 行定义.

686  {
687  if (BeginDrawing())
688  {
689  COLORREF r = getbkmode();
690  EndDrawing();
691  return r;
692  }
693  return 0;
694  }

◆ GetBuffer()

DWORD* HiEasyX::Canvas::GetBuffer ( ) const
inline

获取图像缓冲区指针

在文件 HiCanvas.h267 行定义.

267 { return m_pBuf; }

◆ GetBufferSize()

int HiEasyX::Canvas::GetBufferSize ( ) const
inline

获取图像缓冲区大小,即图像面积(宽 * 高)

在文件 HiCanvas.h272 行定义.

272 { return m_nBufSize; }

◆ GetColor()

COLORREF HiEasyX::Canvas::GetColor ( )

获取前景色

在文件 HiCanvas.cpp1440 行定义.

1441  {
1442  if (BeginDrawing())
1443  {
1444  int r = getcolor();
1445  EndDrawing();
1446  return r;
1447  }
1448  return 0;
1449  }

◆ GetFillColor()

COLORREF HiEasyX::Canvas::GetFillColor ( )

在文件 HiCanvas.cpp645 行定义.

646  {
647  if (BeginDrawing())
648  {
649  COLORREF r = getfillcolor();
650  EndDrawing();
651  return r;
652  }
653  return 0;
654  }

◆ GetFillStyle()

FILLSTYLE HiEasyX::Canvas::GetFillStyle ( )

在文件 HiCanvas.cpp517 行定义.

518  {
519  if (BeginDrawing())
520  {
521  FILLSTYLE s;
522  getfillstyle(&s);
523  EndDrawing();
524  return s;
525  }
526  return {};
527  }

◆ GetHDC()

HDC HiEasyX::Canvas::GetHDC ( )
inline

获取画布的 HDC

在文件 HiCanvas.h277 行定义.

277 { return GetImageHDC(GetImagePointer()); }

◆ getheight()

int HiEasyX::Canvas::getheight ( ) const
inline

在文件 HiCanvas.h280 行定义.

280 { return m_nHeight; }

◆ GetHeight()

int HiEasyX::Canvas::GetHeight ( ) const
inline

在文件 HiCanvas.h282 行定义.

282 { return m_nHeight; }

◆ GetImagePointer()

IMAGE* HiEasyX::Canvas::GetImagePointer ( )
inline
    获取画布 IMAGE 指针
 注意:
    有的时候画布绑定了别的 IMAGE,所以绘图时不能直接使用 this,必须调用此函数。

在文件 HiCanvas.h257 行定义.

257 { return m_bBindToImgPointer ? m_pImg : this; }

◆ GetLineColor()

COLORREF HiEasyX::Canvas::GetLineColor ( )

在文件 HiCanvas.cpp605 行定义.

606  {
607  if (BeginDrawing())
608  {
609  COLORREF r = getlinecolor();
610  EndDrawing();
611  return r;
612  }
613  return 0;
614  }

◆ GetLineStyle()

LINESTYLE HiEasyX::Canvas::GetLineStyle ( )

在文件 HiCanvas.cpp453 行定义.

454  {
455  if (BeginDrawing())
456  {
457  LINESTYLE s;
458  getlinestyle(&s);
459  EndDrawing();
460  return s;
461  }
462  return {};
463  }

◆ GetLineThickness()

int HiEasyX::Canvas::GetLineThickness ( )

在文件 HiCanvas.cpp512 行定义.

513  {
514  return GetLineStyle().thickness;
515  }

◆ GetPixel()

COLORREF HiEasyX::Canvas::GetPixel ( int  x,
int  y 
)

在文件 HiCanvas.cpp705 行定义.

706  {
707  if (BeginDrawing())
708  {
709  COLORREF c = getpixel(x, y);
710  EndDrawing();
711  return c;
712  }
713  return 0;
714  }

◆ GetPixel_Direct()

COLORREF HiEasyX::Canvas::GetPixel_Direct ( int  x,
int  y 
)

直接操作显存获取点

在文件 HiCanvas.cpp725 行定义.

726  {
727  if (BeginWindowTask())
728  {
729  COLORREF c = BGR(m_pBuf[y * m_nWidth + x]);
730  EndWindowTask();
731  return c;
732  }
733  return 0;
734  }

◆ GetPolyFillMode()

int HiEasyX::Canvas::GetPolyFillMode ( )

在文件 HiCanvas.cpp576 行定义.

577  {
578  if (BeginDrawing())
579  {
580  int r = getpolyfillmode();
581  EndDrawing();
582  return r;
583  }
584  return 0;
585  }

◆ GetRop2()

int HiEasyX::Canvas::GetRop2 ( )

在文件 HiCanvas.cpp556 行定义.

557  {
558  if (BeginDrawing())
559  {
560  int r = getrop2();
561  EndDrawing();
562  return r;
563  }
564  return 0;
565  }

◆ GetTextColor()

COLORREF HiEasyX::Canvas::GetTextColor ( )

在文件 HiCanvas.cpp625 行定义.

626  {
627  if (BeginDrawing())
628  {
629  COLORREF r = gettextcolor();
630  EndDrawing();
631  return r;
632  }
633  return 0;
634  }

◆ GetTextStyle()

LOGFONT HiEasyX::Canvas::GetTextStyle ( )

在文件 HiCanvas.cpp1295 行定义.

1296  {
1297  if (BeginDrawing())
1298  {
1299  LOGFONT font;
1300  gettextstyle(&font);
1301  EndDrawing();
1302  return font;
1303  }
1304  return {};
1305  }

◆ getwidth()

int HiEasyX::Canvas::getwidth ( ) const
inline

在文件 HiCanvas.h279 行定义.

279 { return m_nWidth; }

◆ GetWidth()

int HiEasyX::Canvas::GetWidth ( ) const
inline

在文件 HiCanvas.h281 行定义.

281 { return m_nWidth; }

◆ GetX()

int HiEasyX::Canvas::GetX ( )

在文件 HiCanvas.cpp1460 行定义.

1461  {
1462  if (BeginDrawing())
1463  {
1464  int r = getx();
1465  EndDrawing();
1466  return r;
1467  }
1468  return 0;
1469  }

◆ GetY()

int HiEasyX::Canvas::GetY ( )

在文件 HiCanvas.cpp1471 行定义.

1472  {
1473  if (BeginDrawing())
1474  {
1475  int r = gety();
1476  EndDrawing();
1477  return r;
1478  }
1479  return 0;
1480  }

◆ GP_Arc()

void HiEasyX::Canvas::GP_Arc ( float  x,
float  y,
float  w,
float  h,
float  stangle,
float  endangle,
bool  isSetColor = false,
COLORREF  linecolor = 0 
)

在文件 HiCanvas.cpp1833 行定义.

1834  {
1835  if (BeginWindowTask())
1836  {
1837  if (isSetColor) GP_SetLineColor(linecolor);
1838  EasyX_Gdiplus_Arc(x, y, w, h, stangle, endangle, m_cGPLineColor, m_fGPLineWidth, m_bGPAlpha, m_bGPAA, Pt());
1839  EndWindowTask();
1840  }
1841  }

◆ GP_Ellipse()

void HiEasyX::Canvas::GP_Ellipse ( float  x,
float  y,
float  w,
float  h,
bool  isSetColor = false,
COLORREF  linecolor = 0 
)

在文件 HiCanvas.cpp1765 行定义.

1766  {
1767  if (BeginWindowTask())
1768  {
1769  if (isSetColor) GP_SetLineColor(linecolor);
1771  EndWindowTask();
1772  }
1773  }

◆ GP_EnableAA()

void HiEasyX::Canvas::GP_EnableAA ( bool  enable)

设置 GDI+ 绘制时是否抗锯齿

在文件 HiCanvas.cpp1682 行定义.

1683  {
1684  m_bGPAA = enable;
1685  }

◆ GP_EnableAlpha()

void HiEasyX::Canvas::GP_EnableAlpha ( bool  enable)

设置 GDI+ 绘制时是否使用透明度

在文件 HiCanvas.cpp1677 行定义.

1678  {
1679  m_bGPAlpha = enable;
1680  }

◆ GP_FillEllipse()

void HiEasyX::Canvas::GP_FillEllipse ( float  x,
float  y,
float  w,
float  h,
bool  isSetColor = false,
COLORREF  linecolor = 0,
COLORREF  fillcolor = 0 
)

在文件 HiCanvas.cpp1785 行定义.

1786  {
1787  if (BeginWindowTask())
1788  {
1789  if (isSetColor)
1790  {
1791  GP_SetLineColor(linecolor);
1792  GP_SetFillColor(fillcolor);
1793  }
1795  EndWindowTask();
1796  }
1797  }

◆ GP_FillPie()

void HiEasyX::Canvas::GP_FillPie ( float  x,
float  y,
float  w,
float  h,
float  stangle,
float  endangle,
bool  isSetColor = false,
COLORREF  linecolor = 0,
COLORREF  fillcolor = 0 
)

在文件 HiCanvas.cpp1819 行定义.

1820  {
1821  if (BeginWindowTask())
1822  {
1823  if (isSetColor)
1824  {
1825  GP_SetLineColor(linecolor);
1826  GP_SetFillColor(fillcolor);
1827  }
1829  EndWindowTask();
1830  }
1831  }

◆ GP_FillPolygon()

void HiEasyX::Canvas::GP_FillPolygon ( int  points_num,
POINT *  points,
bool  isSetColor = false,
COLORREF  linecolor = 0,
COLORREF  fillcolor = 0 
)

在文件 HiCanvas.cpp1717 行定义.

1718  {
1719  if (BeginWindowTask())
1720  {
1721  if (isSetColor)
1722  {
1723  GP_SetLineColor(linecolor);
1724  GP_SetFillColor(fillcolor);
1725  }
1727  EndWindowTask();
1728  }
1729  }

◆ GP_FillRectangle()

void HiEasyX::Canvas::GP_FillRectangle ( float  x,
float  y,
float  w,
float  h,
bool  isSetColor = false,
COLORREF  linecolor = 0,
COLORREF  fillcolor = 0 
)

在文件 HiCanvas.cpp1751 行定义.

1752  {
1753  if (BeginWindowTask())
1754  {
1755  if (isSetColor)
1756  {
1757  GP_SetLineColor(linecolor);
1758  GP_SetFillColor(fillcolor);
1759  }
1761  EndWindowTask();
1762  }
1763  }

◆ GP_GetFillColor()

COLORREF HiEasyX::Canvas::GP_GetFillColor ( ) const
inline

在文件 HiCanvas.h731 行定义.

731 { return m_cGPFillColor; }

◆ GP_GetLineColor()

COLORREF HiEasyX::Canvas::GP_GetLineColor ( ) const
inline

在文件 HiCanvas.h730 行定义.

730 { return m_cGPLineColor; }

◆ GP_GetLineWidth()

float HiEasyX::Canvas::GP_GetLineWidth ( ) const
inline

在文件 HiCanvas.h732 行定义.

732 { return m_fGPLineWidth; }

◆ GP_IsEnbaleAA()

bool HiEasyX::Canvas::GP_IsEnbaleAA ( ) const
inline

在文件 HiCanvas.h745 行定义.

745 { return m_bGPAA; }

◆ GP_IsEnbaleAlpha()

bool HiEasyX::Canvas::GP_IsEnbaleAlpha ( ) const
inline

在文件 HiCanvas.h744 行定义.

744 { return m_bGPAlpha; }

◆ GP_Line()

void HiEasyX::Canvas::GP_Line ( float  x1,
float  y1,
float  x2,
float  y2,
bool  isSetColor = false,
COLORREF  linecolor = 0 
)

在文件 HiCanvas.cpp1687 行定义.

1688  {
1689  if (BeginWindowTask())
1690  {
1691  if (isSetColor) GP_SetLineColor(linecolor);
1693  EndWindowTask();
1694  }
1695  }

◆ GP_Pie()

void HiEasyX::Canvas::GP_Pie ( float  x,
float  y,
float  w,
float  h,
float  stangle,
float  endangle,
bool  isSetColor = false,
COLORREF  linecolor = 0 
)

在文件 HiCanvas.cpp1799 行定义.

1800  {
1801  if (BeginWindowTask())
1802  {
1803  if (isSetColor) GP_SetLineColor(linecolor);
1804  EasyX_Gdiplus_Pie(x, y, w, h, stangle, endangle, m_cGPLineColor, m_fGPLineWidth, m_bGPAlpha, m_bGPAA, Pt());
1805  EndWindowTask();
1806  }
1807  }

◆ GP_Polygon()

void HiEasyX::Canvas::GP_Polygon ( int  points_num,
POINT *  points,
bool  isSetColor = false,
COLORREF  linecolor = 0 
)

在文件 HiCanvas.cpp1697 行定义.

1698  {
1699  if (BeginWindowTask())
1700  {
1701  if (isSetColor) GP_SetLineColor(linecolor);
1703  EndWindowTask();
1704  }
1705  }

◆ GP_Rectangle()

void HiEasyX::Canvas::GP_Rectangle ( float  x,
float  y,
float  w,
float  h,
bool  isSetColor = false,
COLORREF  linecolor = 0 
)

在文件 HiCanvas.cpp1731 行定义.

1732  {
1733  if (BeginWindowTask())
1734  {
1735  if (isSetColor) GP_SetLineColor(linecolor);
1737  EndWindowTask();
1738  }
1739  }

◆ GP_SetFillColor()

void HiEasyX::Canvas::GP_SetFillColor ( COLORREF  color)

在文件 HiCanvas.cpp1667 行定义.

1668  {
1669  m_cGPFillColor = color;
1670  }

◆ GP_SetLineColor()

void HiEasyX::Canvas::GP_SetLineColor ( COLORREF  color)

在文件 HiCanvas.cpp1662 行定义.

1663  {
1664  m_cGPLineColor = color;
1665  }

◆ GP_SetLineWidth()

void HiEasyX::Canvas::GP_SetLineWidth ( float  width)

在文件 HiCanvas.cpp1672 行定义.

1673  {
1674  m_fGPLineWidth = width;
1675  }

◆ GP_SolidEllipse()

void HiEasyX::Canvas::GP_SolidEllipse ( float  x,
float  y,
float  w,
float  h,
bool  isSetColor = false,
COLORREF  fillcolor = 0 
)

在文件 HiCanvas.cpp1775 行定义.

1776  {
1777  if (BeginWindowTask())
1778  {
1779  if (isSetColor) GP_SetFillColor(fillcolor);
1781  EndWindowTask();
1782  }
1783  }

◆ GP_SolidPie()

void HiEasyX::Canvas::GP_SolidPie ( float  x,
float  y,
float  w,
float  h,
float  stangle,
float  endangle,
bool  isSetColor = false,
COLORREF  fillcolor = 0 
)

在文件 HiCanvas.cpp1809 行定义.

1810  {
1811  if (BeginWindowTask())
1812  {
1813  if (isSetColor) GP_SetFillColor(fillcolor);
1814  EasyX_Gdiplus_SolidPie(x, y, w, h, stangle, endangle, m_cGPFillColor, m_bGPAlpha, m_bGPAA, Pt());
1815  EndWindowTask();
1816  }
1817  }

◆ GP_SolidPolygon()

void HiEasyX::Canvas::GP_SolidPolygon ( int  points_num,
POINT *  points,
bool  isSetColor = false,
COLORREF  fillcolor = 0 
)

在文件 HiCanvas.cpp1707 行定义.

1708  {
1709  if (BeginWindowTask())
1710  {
1711  if (isSetColor) GP_SetFillColor(fillcolor);
1713  EndWindowTask();
1714  }
1715  }

◆ GP_SolidRectangle()

void HiEasyX::Canvas::GP_SolidRectangle ( float  x,
float  y,
float  w,
float  h,
bool  isSetColor = false,
COLORREF  fillcolor = 0 
)

在文件 HiCanvas.cpp1741 行定义.

1742  {
1743  if (BeginWindowTask())
1744  {
1745  if (isSetColor) GP_SetFillColor(fillcolor);
1747  EndWindowTask();
1748  }
1749  }

◆ IsEnableAutoMarkFlushWindow()

bool HiEasyX::Canvas::IsEnableAutoMarkFlushWindow ( ) const
inline

在文件 HiCanvas.h294 行定义.

294 { return m_bAutoMarkFlushWindow; }

◆ IsValidPoint()

bool HiEasyX::Canvas::IsValidPoint ( int  x,
int  y,
int *  pIndex = nullptr 
)

判断某点是否位于图像中

参数
[in]x坐标
[in]y坐标
[out]pIndex返回该点数组索引
返回
是否位于图像中

在文件 HiCanvas.cpp427 行定义.

428  {
429  if (x < 0 || y < 0 || x >= m_nWidth || y >= m_nHeight)
430  return false;
431  if (pIndex) *pIndex = y * m_nWidth + x;
432  return true;
433  }

◆ Line() [1/2]

void HiEasyX::Canvas::Line ( int  x1,
int  y1,
int  x2,
int  y2,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp764 行定义.

765  {
766  if (BeginDrawing())
767  {
768  if (isSetColor) setlinecolor(c);
769  line(x1, y1, x2, y2);
770  EndDrawing();
771  }
772  }

◆ Line() [2/2]

void HiEasyX::Canvas::Line ( POINT  pt1,
POINT  pt2,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp774 行定义.

775  {
776  Line(pt1.x, pt1.y, pt2.x, pt2.y, isSetColor, c);
777  }

◆ LineRel()

void HiEasyX::Canvas::LineRel ( int  dx,
int  dy,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1510 行定义.

1511  {
1512  if (BeginDrawing())
1513  {
1514  if (isSetColor) setcolor(c);
1515  linerel(dx, dy);
1516  EndDrawing();
1517  }
1518  }

◆ LineTo()

void HiEasyX::Canvas::LineTo ( int  x,
int  y,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1500 行定义.

1501  {
1502  if (BeginDrawing())
1503  {
1504  if (isSetColor) setcolor(c);
1505  lineto(x, y);
1506  EndDrawing();
1507  }
1508  }

◆ Load_Image_Alpha()

IMAGE HiEasyX::Canvas::Load_Image_Alpha ( LPCTSTR  lpszImgFile,
int  x = 0,
int  y = 0,
bool  bResize = true,
int  nWidth = 0,
int  nHeight = 0,
BYTE  alpha = 255,
bool  bUseSrcAlpha = false 
)
    加载图片文件到画布
 备注:
    若开启透明通道,则复制到画布上的内容不会保留原图像的透明度信息
参数
[in]lpszImgFile图像文件路径
[in]x输出到画布的位置
[in]y输出到画布的位置
[in]bResize是否调整画布大小以正好容纳图像
[in]nWidth图像目标拉伸尺寸,为 0 表示不拉伸
[in]nHeight图像目标拉伸尺寸,为 0 表示不拉伸
[in]alpha叠加透明度
[in]bUseSrcAlpha是否使用原图的透明度信息进行混合(仅支持有透明度信息的 png 图像)
返回
读取到的 IMAGE 对象

在文件 HiCanvas.cpp1560 行定义.

1561  {
1562  if (!bResize && (x > m_nWidth || y > m_nHeight)) return {};
1563  IMAGE img;
1564  loadimage(&img, lpszImgFile, nWidth, nHeight, true);
1565  int w = img.getwidth(), h = img.getheight();
1566  if (x <= -w || y <= -h) return {};
1567  if (bResize)
1568  {
1569  int nw = x + w;
1570  int nh = y + h;
1571  Resize(m_nWidth < nw ? nw : m_nWidth, m_nHeight < nh ? nh : m_nHeight);
1572  }
1573  PutImageIn_Alpha(x, y, &img, { 0 }, alpha, bUseSrcAlpha);
1574  return img;
1575  }

◆ MoveRel()

void HiEasyX::Canvas::MoveRel ( int  dx,
int  dy 
)

在文件 HiCanvas.cpp1491 行定义.

1492  {
1493  if (BeginDrawing())
1494  {
1495  moverel(dx, dy);
1496  EndDrawing();
1497  }
1498  }

◆ MoveTo()

void HiEasyX::Canvas::MoveTo ( int  x,
int  y 
)

在文件 HiCanvas.cpp1482 行定义.

1483  {
1484  if (BeginDrawing())
1485  {
1486  moveto(x, y);
1487  EndDrawing();
1488  }
1489  }

◆ operator=() [1/2]

Canvas & HiEasyX::Canvas::operator= ( IMAGE *  pImg)

复制图像内容(绑定图像指针请调用 BindToImage)

参数
[in]pImg原图像

在文件 HiCanvas.cpp325 行定义.

326  {
327  CleanUpSettings();
328  int w, h;
329  GetImageSize(pImg, &w, &h);
330 
331  if (BeginWindowTask())
332  {
333  Resize(w, h);
334  UpdateSizeInfo();
335 
336  // 不使用 IMAGE::operator=,因为它不支持指针
337  memcpy(m_pBuf, GetImageBuffer(pImg), m_nBufSize * sizeof(COLORREF));
338  EndWindowTask();
339  }
340 
341  return *this;
342  }

◆ operator=() [2/2]

Canvas & HiEasyX::Canvas::operator= ( IMAGE  img)

在文件 HiCanvas.cpp344 行定义.

345  {
346  return operator=(&img);
347  }

◆ OutText() [1/2]

void HiEasyX::Canvas::OutText ( LPCTSTR  lpszText,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1520 行定义.

1521  {
1522  if (BeginDrawing())
1523  {
1524  if (isSetColor) setcolor(c);
1525  outtext(lpszText);
1526  EndDrawing();
1527  }
1528  }

◆ OutText() [2/2]

void HiEasyX::Canvas::OutText ( TCHAR  ch,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1530 行定义.

1531  {
1532  if (BeginDrawing())
1533  {
1534  if (isSetColor) setcolor(c);
1535  outtext(ch);
1536  EndDrawing();
1537  }
1538  }

◆ OutText_Format()

int HiEasyX::Canvas::OutText_Format ( int  _Size,
LPCTSTR  _Format,
  ... 
)

输出格式化文本

参数
[in]_Size格式化文本最大长度
[in]_Format格式化字符串
[in]不定参数
返回
文本像素宽度

在文件 HiCanvas.cpp1540 行定义.

1541  {
1542  if (BeginDrawing())
1543  {
1544  va_list list;
1545  va_start(list, _Format);
1546  wchar_t* buf = new wchar_t[_Size];
1547  vswprintf_s(buf, _Size, _Format, list);
1548  va_end(list);
1549 
1550  outtext(buf);
1551  int width = textwidth(buf);
1552  delete[] buf;
1553 
1554  EndDrawing();
1555  return width;
1556  }
1557  return 0;
1558  }

◆ OutTextXY() [1/2]

int HiEasyX::Canvas::OutTextXY ( int  x,
int  y,
LPCTSTR  lpszText,
bool  isSetColor = false,
COLORREF  c = 0 
)

在指定位置输出文本

参数
[in]x位置
[in]y位置
[in]lpszText文本
[in]isSetColor是否设置颜色
[in]c文本颜色
返回
文本像素宽度

在文件 HiCanvas.cpp1163 行定义.

1164  {
1165  if (BeginDrawing())
1166  {
1167  if (isSetColor) settextcolor(c);
1168  outtextxy(x, y, lpszText);
1169  int width = textwidth(lpszText);
1170  EndDrawing();
1171  return width;
1172  }
1173  return 0;
1174  }

◆ OutTextXY() [2/2]

int HiEasyX::Canvas::OutTextXY ( int  x,
int  y,
TCHAR  ch,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1176 行定义.

1177  {
1178  if (BeginDrawing())
1179  {
1180  if (isSetColor) settextcolor(c);
1181  outtextxy(x, y, ch);
1182  int width = textwidth(ch);
1183  EndDrawing();
1184  return width;
1185  }
1186  return 0;
1187  }

◆ OutTextXY_Format()

int HiEasyX::Canvas::OutTextXY_Format ( int  x,
int  y,
int  _Size,
LPCTSTR  _Format,
  ... 
)

在指定位置输出格式化文本

参数
[in]x位置
[in]y位置
[in]_Size格式化文本最大长度
[in]_Format格式化字符串
[in]不定参数
返回
文本像素宽度

在文件 HiCanvas.cpp1189 行定义.

1190  {
1191  if (BeginDrawing())
1192  {
1193  va_list list;
1194  va_start(list, _Format);
1195  wchar_t* buf = new wchar_t[_Size];
1196  vswprintf_s(buf, _Size, _Format, list);
1197  va_end(list);
1198 
1199  outtextxy(x, y, buf);
1200  int width = textwidth(buf);
1201  delete[] buf;
1202 
1203  EndDrawing();
1204  return width;
1205  }
1206  return 0;
1207  }

◆ Pie() [1/2]

void HiEasyX::Canvas::Pie ( int  left,
int  top,
int  right,
int  bottom,
double  stangle,
double  endangle,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1027 行定义.

1028  {
1029  if (BeginDrawing())
1030  {
1031  if (isSetColor) setlinecolor(c);
1032  pie(left, top, right, bottom, stangle, endangle);
1033  EndDrawing();
1034  }
1035  }

◆ Pie() [2/2]

void HiEasyX::Canvas::Pie ( RECT  rct,
double  stangle,
double  endangle,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1037 行定义.

1038  {
1039  Pie(rct.left, rct.top, rct.right, rct.bottom, stangle, endangle, isSetColor, c);
1040  }

◆ PolyBezier()

void HiEasyX::Canvas::PolyBezier ( const POINT *  points,
int  num,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1143 行定义.

1144  {
1145  if (BeginDrawing())
1146  {
1147  if (isSetColor) setlinecolor(c);
1148  polybezier(points, num);
1149  EndDrawing();
1150  }
1151  }

◆ Polygon()

void HiEasyX::Canvas::Polygon ( const POINT *  points,
int  num,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1100 行定义.

1101  {
1102  if (BeginDrawing())
1103  {
1104  if (isSetColor) setlinecolor(c);
1105  polygon(points, num);
1106  EndDrawing();
1107  }
1108  }

◆ Polyline()

void HiEasyX::Canvas::Polyline ( const POINT *  points,
int  num,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1090 行定义.

1091  {
1092  if (BeginDrawing())
1093  {
1094  if (isSetColor) setlinecolor(c);
1095  polyline(points, num);
1096  EndDrawing();
1097  }
1098  }

◆ Pt()

IMAGE* HiEasyX::Canvas::Pt ( )
inline

等价于 GetImagePointer()

在文件 HiCanvas.h262 行定义.

262 { return m_bBindToImgPointer ? m_pImg : this; }

◆ PutImageIn_Alpha()

void HiEasyX::Canvas::PutImageIn_Alpha ( int  x,
int  y,
IMAGE *  pImg,
RECT  crop = { 0 },
BYTE  alpha = 255,
bool  bUseSrcAlpha = false,
bool  isCalculated = false 
)

绘制图像到该画布

参数
[in]x图像输入位置
[in]y图像输入位置
[in]pImg待输入图像
[in]crop裁剪区域
[in]alpha叠加透明度
[in]bUseSrcAlpha是否使用原图透明度
[in]isCalculated原图是否已经混合透明度

在文件 HiCanvas.cpp1577 行定义.

1578  {
1579  int w, h; // 原图像尺寸
1580  GetImageSize(pImg, &w, &h);
1581  if (BeginWindowTask())
1582  {
1584  x, y,
1586  GetImageBuffer(pImg), w, h,
1587  crop,
1588  alpha, bUseSrcAlpha, isCalculated
1589  );
1590 
1591  EndWindowTask();
1592  }
1593  }

◆ PutPixel()

void HiEasyX::Canvas::PutPixel ( int  x,
int  y,
COLORREF  c 
)

在文件 HiCanvas.cpp716 行定义.

717  {
718  if (BeginDrawing())
719  {
720  putpixel(x, y, c);
721  EndDrawing();
722  }
723  }

◆ PutPixel_Direct()

void HiEasyX::Canvas::PutPixel_Direct ( int  x,
int  y,
COLORREF  c 
)

直接操作显存绘制点

在文件 HiCanvas.cpp736 行定义.

737  {
738  if (BeginWindowTask())
739  {
740  c = BGR(c);
741  int index = 0;
742  if (IsValidPoint(x, y, &index))
743  m_pBuf[index] = c;
744 
745  EndWindowTask();
746  }
747  }

◆ PutPixel_Direct_Alpha()

void HiEasyX::Canvas::PutPixel_Direct_Alpha ( int  x,
int  y,
COLORREF  c 
)

直接操作显存绘制带有透明度的点(使用 COLORREF 中的透明度)

在文件 HiCanvas.cpp749 行定义.

750  {
751  if (BeginWindowTask())
752  {
753  c = BGR(c);
754  int index = 0;
755  if (IsValidPoint(x, y, &index))
756  {
757  m_pBuf[index] = MixAlphaColor(m_pBuf[index], c, false);
758  }
759 
760  EndWindowTask();
761  }
762  }

◆ Rectangle() [1/2]

void HiEasyX::Canvas::Rectangle ( int  left,
int  top,
int  right,
int  bottom,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp779 行定义.

780  {
781  if (BeginDrawing())
782  {
783  if (isSetColor) setlinecolor(c);
784  rectangle(left, top, right, bottom);
785  EndDrawing();
786  }
787  }

◆ Rectangle() [2/2]

void HiEasyX::Canvas::Rectangle ( RECT  rct,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp789 行定义.

790  {
791  Rectangle(rct.left, rct.top, rct.right, rct.bottom, isSetColor, c);
792  }

◆ RenderTo()

void HiEasyX::Canvas::RenderTo ( int  x,
int  y,
IMAGE *  pImg = nullptr,
RECT  crop = { 0 },
BYTE  alpha = 255,
bool  bUseSrcAlpha = false,
bool  isCalculated = false 
)

将该画布的图像绘制到另一画布中

参数
[in]x绘制位置
[in]y绘制位置
[in]pImg目标绘制画布
[in]crop裁剪区域(默认不裁剪)
[in]alpha叠加透明度
[in]bUseSrcAlpha是否使用此画布透明度
[in]isCalculated画布像素是否已经透明混合

在文件 HiCanvas.cpp435 行定义.

436  {
437  int w, h; // 目标输出画布尺寸
438  GetImageSize(pImg, &w, &h);
439  if (BeginWindowTask())
440  {
442  x, y,
443  GetImageBuffer(pImg), w, h,
445  crop,
446  alpha, bUseSrcAlpha, isCalculated
447  );
448 
449  EndWindowTask();
450  }
451  }

◆ Resize()

void HiEasyX::Canvas::Resize ( int  w,
int  h 
)
override

重设画布大小(若绑定了窗口,则不建议调用)

参数
[in]w目标宽度
[in]h目标高度

在文件 HiCanvas.cpp366 行定义.

367  {
368  if (BeginWindowTask())
369  {
370  if (!(w * h))
371  {
372  w = h = 1;
373  }
374 
376  {
377  ::Resize(m_pImg, w, h);
378  }
379  else
380  {
381  IMAGE::Resize(w, h);
382  }
383 
384  EndWindowTask();
385  UpdateSizeInfo();
386  }
387  }

◆ RotateImage()

void HiEasyX::Canvas::RotateImage ( double  radian,
COLORREF  bkcolor = BLACK,
bool  autosize = false,
bool  highquality = true 
)

EasyX 原生旋转函数

参数
[in]radian旋转弧度
[in]bkcolor填充背景色
[in]autosize是否自适应旋转图像大小
[in]highquality高质量

在文件 HiCanvas.cpp1595 行定义.

1596  {
1597  if (BeginWindowTask())
1598  {
1599  IMAGE* p = GetImagePointer();
1600  rotateimage(p, p, radian, bkcolor, autosize, highquality);
1601  BeginWindowTask();
1602  }
1603  }

◆ RotateImage_Alpha()

void HiEasyX::Canvas::RotateImage_Alpha ( double  radian,
COLORREF  bkcolor = BLACK 
)

旋转图像(保留 Alpha 信息)

参数
[in]radian旋转弧度
[in]bkcolor填充背景色

在文件 HiCanvas.cpp1605 行定义.

1606  {
1608  }

◆ RoundRect() [1/2]

void HiEasyX::Canvas::RoundRect ( int  left,
int  top,
int  right,
int  bottom,
int  ellipsewidth,
int  ellipseheight,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp949 行定义.

950  {
951  if (BeginDrawing())
952  {
953  if (isSetColor) setlinecolor(c);
954  roundrect(left, top, right, bottom, ellipsewidth, ellipseheight);
955  EndDrawing();
956  }
957  }

◆ RoundRect() [2/2]

void HiEasyX::Canvas::RoundRect ( RECT  rct,
int  ellipsewidth,
int  ellipseheight,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp959 行定义.

960  {
961  RoundRect(rct.left, rct.top, rct.right, rct.bottom, ellipsewidth, ellipseheight, c, isSetColor);
962  }

◆ SetBkColor()

void HiEasyX::Canvas::SetBkColor ( COLORREF  color)

在文件 HiCanvas.cpp676 行定义.

677  {
678  if (BeginDrawing())
679  {
680  setbkcolor(color);
681  EndDrawing();
682  }
683  }

◆ SetBkMode()

void HiEasyX::Canvas::SetBkMode ( int  mode)

在文件 HiCanvas.cpp696 行定义.

697  {
698  if (BeginDrawing())
699  {
700  setbkmode(mode);
701  EndDrawing();
702  }
703  }

◆ SetColor()

void HiEasyX::Canvas::SetColor ( COLORREF  color)

设置前景色

参数
[in]color前景色

在文件 HiCanvas.cpp1451 行定义.

1452  {
1453  if (BeginDrawing())
1454  {
1455  setcolor(color);
1456  EndDrawing();
1457  }
1458  }

◆ SetDefault()

void HiEasyX::Canvas::SetDefault ( )

设置绘图状态为原始状态

在文件 HiCanvas.cpp596 行定义.

597  {
598  if (BeginDrawing())
599  {
600  graphdefaults();
601  EndDrawing();
602  }
603  }

◆ SetFillColor()

void HiEasyX::Canvas::SetFillColor ( COLORREF  color)

在文件 HiCanvas.cpp656 行定义.

657  {
658  if (BeginDrawing())
659  {
660  setfillcolor(color);
661  EndDrawing();
662  }
663  }

◆ SetFillStyle() [1/3]

void HiEasyX::Canvas::SetFillStyle ( BYTE *  ppattern8x8)

在文件 HiCanvas.cpp547 行定义.

548  {
549  if (BeginDrawing())
550  {
551  setfillstyle(ppattern8x8);
552  EndDrawing();
553  }
554  }

◆ SetFillStyle() [2/3]

void HiEasyX::Canvas::SetFillStyle ( FILLSTYLE  style)

在文件 HiCanvas.cpp529 行定义.

530  {
531  if (BeginDrawing())
532  {
533  setfillstyle(&style);
534  EndDrawing();
535  }
536  }

◆ SetFillStyle() [3/3]

void HiEasyX::Canvas::SetFillStyle ( int  style,
long  hatch = 0,
IMAGE *  ppattern = nullptr 
)

在文件 HiCanvas.cpp538 行定义.

539  {
540  if (BeginDrawing())
541  {
542  setfillstyle(style, hatch, ppattern);
543  EndDrawing();
544  }
545  }

◆ SetFont()

void HiEasyX::Canvas::SetFont ( int  nHeight,
int  nWidth = 0 
)

设置字体大小

参数
[in]nHeight高度
[in]nWidth宽度(为 0 时,自动与高度匹配)

在文件 HiCanvas.cpp1343 行定义.

1344  {
1345  if (BeginDrawing())
1346  {
1347  LOGFONT font;
1348  gettextstyle(&font);
1349  font.lfHeight = nHeight;
1350  font.lfWidth = nWidth;
1351  settextstyle(&font);
1352  EndDrawing();
1353  }
1354  }

◆ SetLineColor()

void HiEasyX::Canvas::SetLineColor ( COLORREF  color)

在文件 HiCanvas.cpp616 行定义.

617  {
618  if (BeginDrawing())
619  {
620  setlinecolor(color);
621  EndDrawing();
622  }
623  }

◆ SetLineStyle() [1/2]

void HiEasyX::Canvas::SetLineStyle ( int  style,
int  thickness = 1,
const DWORD *  puserstyle = nullptr,
DWORD  userstylecount = 0 
)

在文件 HiCanvas.cpp496 行定义.

497  {
498  if (BeginDrawing())
499  {
500  setlinestyle(style, thickness, puserstyle, userstylecount);
501  EndDrawing();
502  }
503  }

◆ SetLineStyle() [2/2]

void HiEasyX::Canvas::SetLineStyle ( LINESTYLE  style)

在文件 HiCanvas.cpp487 行定义.

488  {
489  if (BeginDrawing())
490  {
491  setlinestyle(&style);
492  EndDrawing();
493  }
494  }

◆ SetLineThickness()

void HiEasyX::Canvas::SetLineThickness ( int  thickness)

在文件 HiCanvas.cpp505 行定义.

506  {
507  LINESTYLE s = GetLineStyle();
508  s.thickness = thickness;
509  SetLineStyle(s);
510  }

◆ SetPolyFillMode()

void HiEasyX::Canvas::SetPolyFillMode ( int  mode)

在文件 HiCanvas.cpp587 行定义.

588  {
589  if (BeginDrawing())
590  {
591  setpolyfillmode(mode);
592  EndDrawing();
593  }
594  }

◆ SetRop2()

void HiEasyX::Canvas::SetRop2 ( int  mode)

在文件 HiCanvas.cpp567 行定义.

568  {
569  if (BeginDrawing())
570  {
571  setrop2(mode);
572  EndDrawing();
573  }
574  }

◆ SetTextColor()

void HiEasyX::Canvas::SetTextColor ( COLORREF  color)

在文件 HiCanvas.cpp636 行定义.

637  {
638  if (BeginDrawing())
639  {
640  settextcolor(color);
641  EndDrawing();
642  }
643  }

◆ SetTextEscapement()

void HiEasyX::Canvas::SetTextEscapement ( LONG  lfEscapement)

设置字符串的书写角度(单位 0.1 度)

参数
[in]lfEscapement角度

在文件 HiCanvas.cpp1368 行定义.

1369  {
1370  if (BeginDrawing())
1371  {
1372  LOGFONT font;
1373  gettextstyle(&font);
1374  font.lfEscapement = lfEscapement;
1375  settextstyle(&font);
1376  EndDrawing();
1377  }
1378  }

◆ SetTextItalic()

void HiEasyX::Canvas::SetTextItalic ( bool  lfItalic)

设置字体是否为斜体

参数
[in]lfItalic是否使用斜体

在文件 HiCanvas.cpp1404 行定义.

1405  {
1406  if (BeginDrawing())
1407  {
1408  LOGFONT font;
1409  gettextstyle(&font);
1410  font.lfItalic = lfItalic;
1411  settextstyle(&font);
1412  EndDrawing();
1413  }
1414  }

◆ SetTextOrientation()

void HiEasyX::Canvas::SetTextOrientation ( LONG  lfOrientation)

设置每个字符的书写角度(单位 0.1 度)

参数
[in]lfOrientation角度

在文件 HiCanvas.cpp1380 行定义.

1381  {
1382  if (BeginDrawing())
1383  {
1384  LOGFONT font;
1385  gettextstyle(&font);
1386  font.lfOrientation = lfOrientation;
1387  settextstyle(&font);
1388  EndDrawing();
1389  }
1390  }

◆ SetTextStrikeOut()

void HiEasyX::Canvas::SetTextStrikeOut ( bool  lfStrikeOut)

设置字体是否有删除线

参数
[in]lfStrikeOut是否使用删除线

在文件 HiCanvas.cpp1428 行定义.

1429  {
1430  if (BeginDrawing())
1431  {
1432  LOGFONT font;
1433  gettextstyle(&font);
1434  font.lfStrikeOut = lfStrikeOut;
1435  settextstyle(&font);
1436  EndDrawing();
1437  }
1438  }

◆ SetTextStyle() [1/4]

void HiEasyX::Canvas::SetTextStyle ( int  nHeight,
int  nWidth,
LPCTSTR  lpszFace 
)

在文件 HiCanvas.cpp1307 行定义.

1308  {
1309  if (BeginDrawing())
1310  {
1311  settextstyle(nHeight, nWidth, lpszFace);
1312  EndDrawing();
1313  }
1314  }

◆ SetTextStyle() [2/4]

void HiEasyX::Canvas::SetTextStyle ( int  nHeight,
int  nWidth,
LPCTSTR  lpszFace,
int  nEscapement,
int  nOrientation,
int  nWeight,
bool  bItalic,
bool  bUnderline,
bool  bStrikeOut 
)

在文件 HiCanvas.cpp1316 行定义.

1317  {
1318  if (BeginDrawing())
1319  {
1320  settextstyle(nHeight, nWidth, lpszFace, nEscapement, nOrientation, nWeight, bItalic, bUnderline, bStrikeOut);
1321  EndDrawing();
1322  }
1323  }

◆ SetTextStyle() [3/4]

void HiEasyX::Canvas::SetTextStyle ( 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 
)

在文件 HiCanvas.cpp1325 行定义.

1326  {
1327  if (BeginDrawing())
1328  {
1329  settextstyle(nHeight, nWidth, lpszFace, nEscapement, nOrientation, nWeight, bItalic, bUnderline, bStrikeOut, fbCharSet, fbOutPrecision, fbClipPrecision, fbQuality, fbPitchAndFamily);
1330  EndDrawing();
1331  }
1332  }

◆ SetTextStyle() [4/4]

void HiEasyX::Canvas::SetTextStyle ( LOGFONT  font)

在文件 HiCanvas.cpp1334 行定义.

1335  {
1336  if (BeginDrawing())
1337  {
1338  settextstyle(&font);
1339  EndDrawing();
1340  }
1341  }

◆ SetTextUnderline()

void HiEasyX::Canvas::SetTextUnderline ( bool  lfUnderline)

设置字体是否有下划线

参数
[in]lfUnderline是否使用下划线

在文件 HiCanvas.cpp1416 行定义.

1417  {
1418  if (BeginDrawing())
1419  {
1420  LOGFONT font;
1421  gettextstyle(&font);
1422  font.lfUnderline = lfUnderline;
1423  settextstyle(&font);
1424  EndDrawing();
1425  }
1426  }

◆ SetTextWeight()

void HiEasyX::Canvas::SetTextWeight ( LONG  lfWeight)

设置字符的笔画粗细(范围 默认 0 ~ 1000 最粗)

参数
[in]lfWeight粗细

在文件 HiCanvas.cpp1392 行定义.

1393  {
1394  if (BeginDrawing())
1395  {
1396  LOGFONT font;
1397  gettextstyle(&font);
1398  font.lfWeight = lfWeight;
1399  settextstyle(&font);
1400  EndDrawing();
1401  }
1402  }

◆ SetTypeface()

void HiEasyX::Canvas::SetTypeface ( LPCTSTR  lpsz)

设置使用字体的名称

参数
[in]lpsz字体名称

在文件 HiCanvas.cpp1356 行定义.

1357  {
1358  if (BeginDrawing())
1359  {
1360  LOGFONT font;
1361  gettextstyle(&font);
1362  lstrcpy(font.lfFaceName, lpsz);
1363  settextstyle(&font);
1364  EndDrawing();
1365  }
1366  }

◆ SolidCircle()

void HiEasyX::Canvas::SolidCircle ( int  x,
int  y,
int  radius,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp867 行定义.

868  {
869  if (BeginDrawing())
870  {
871  if (isSetColor) setfillcolor(c);
872  solidcircle(x, y, radius);
873  EndDrawing();
874  }
875  }

◆ SolidEllipse() [1/2]

void HiEasyX::Canvas::SolidEllipse ( int  left,
int  top,
int  right,
int  bottom,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp920 行定义.

921  {
922  if (BeginDrawing())
923  {
924  if (isSetColor) setfillcolor(c);
925  solidellipse(left, top, right, bottom);
926  EndDrawing();
927  }
928  }

◆ SolidEllipse() [2/2]

void HiEasyX::Canvas::SolidEllipse ( RECT  rct,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp930 行定义.

931  {
932  SolidEllipse(rct.left, rct.top, rct.right, rct.bottom, isSetColor, c);
933  }

◆ SolidPie() [1/2]

void HiEasyX::Canvas::SolidPie ( int  left,
int  top,
int  right,
int  bottom,
double  stangle,
double  endangle,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1061 行定义.

1062  {
1063  if (BeginDrawing())
1064  {
1065  if (isSetColor) setfillcolor(c);
1066  solidpie(left, top, right, bottom, stangle, endangle);
1067  EndDrawing();
1068  }
1069  }

◆ SolidPie() [2/2]

void HiEasyX::Canvas::SolidPie ( RECT  rct,
double  stangle,
double  endangle,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1071 行定义.

1072  {
1073  SolidPie(rct.left, rct.top, rct.right, rct.bottom, stangle, endangle, isSetColor, c);
1074  }

◆ SolidPolygon()

void HiEasyX::Canvas::SolidPolygon ( const POINT *  points,
int  num,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp1124 行定义.

1125  {
1126  if (BeginDrawing())
1127  {
1128  if (isSetColor) setfillcolor(c);
1129  solidpolygon(points, num);
1130  EndDrawing();
1131  }
1132  }

◆ SolidRectangle() [1/2]

void HiEasyX::Canvas::SolidRectangle ( int  left,
int  top,
int  right,
int  bottom,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp814 行定义.

815  {
816  if (BeginDrawing())
817  {
818  if (isSetColor) setfillcolor(c);
819  solidrectangle(left, top, right, bottom);
820  EndDrawing();
821  }
822  }

◆ SolidRectangle() [2/2]

void HiEasyX::Canvas::SolidRectangle ( RECT  rct,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp824 行定义.

825  {
826  SolidRectangle(rct.left, rct.top, rct.right, rct.bottom, isSetColor, c);
827  }

◆ SolidRoundRect() [1/2]

void HiEasyX::Canvas::SolidRoundRect ( int  left,
int  top,
int  right,
int  bottom,
int  ellipsewidth,
int  ellipseheight,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp983 行定义.

984  {
985  if (BeginDrawing())
986  {
987  if (isSetColor) setfillcolor(c);
988  solidroundrect(left, top, right, bottom, ellipsewidth, ellipseheight);
989  EndDrawing();
990  }
991  }

◆ SolidRoundRect() [2/2]

void HiEasyX::Canvas::SolidRoundRect ( RECT  rct,
int  ellipsewidth,
int  ellipseheight,
bool  isSetColor = false,
COLORREF  c = 0 
)

在文件 HiCanvas.cpp993 行定义.

994  {
995  SolidRoundRect(rct.left, rct.top, rct.right, rct.bottom, ellipsewidth, ellipseheight, c, isSetColor);
996  }

◆ TextHeight() [1/2]

int HiEasyX::Canvas::TextHeight ( LPCTSTR  lpszText)

在文件 HiCanvas.cpp1231 行定义.

1232  {
1233  if (BeginDrawing())
1234  {
1235  int width = textheight(lpszText);
1236  EndDrawing();
1237  return width;
1238  }
1239  return 0;
1240  }

◆ TextHeight() [2/2]

int HiEasyX::Canvas::TextHeight ( TCHAR  c)

在文件 HiCanvas.cpp1242 行定义.

1243  {
1244  if (BeginDrawing())
1245  {
1246  int width = textheight(c);
1247  EndDrawing();
1248  return width;
1249  }
1250  return 0;
1251  }

◆ TextWidth() [1/2]

int HiEasyX::Canvas::TextWidth ( LPCTSTR  lpszText)

获取文本像素宽度

参数
[in]lpszText文本
返回
获取文本像素宽度

在文件 HiCanvas.cpp1209 行定义.

1210  {
1211  if (BeginDrawing())
1212  {
1213  int width = textwidth(lpszText);
1214  EndDrawing();
1215  return width;
1216  }
1217  return 0;
1218  }

◆ TextWidth() [2/2]

int HiEasyX::Canvas::TextWidth ( TCHAR  c)

在文件 HiCanvas.cpp1220 行定义.

1221  {
1222  if (BeginDrawing())
1223  {
1224  int width = textwidth(c);
1225  EndDrawing();
1226  return width;
1227  }
1228  return 0;
1229  }

◆ UpdateSizeInfo()

void HiEasyX::Canvas::UpdateSizeInfo ( )
    重新加载图像尺寸信息
备注:
    若绑定了图像指针,当外部调整图像大小后,须调用此函数

在文件 HiCanvas.cpp349 行定义.

350  {
351  m_pBuf = GetImageBuffer(GetImagePointer());
352 
354  {
356  }
357  else
358  {
359  m_nWidth = IMAGE::getwidth();
360  m_nHeight = IMAGE::getheight();
361  }
362 
364  }

◆ ZoomImage_Alpha()

void HiEasyX::Canvas::ZoomImage_Alpha ( int  nW,
int  nH = 0 
)

缩放图像(双线性插值,保留透明度信息)

参数
[in]nW目标宽度
[in]nH目标高度(为 0 则根据宽度按比例缩放)

在文件 HiCanvas.cpp1628 行定义.

1629  {
1630  if (m_bBindToImgPointer)
1631  {
1632  if (BeginWindowTask())
1633  {
1635  UpdateSizeInfo();
1636 
1637  EndWindowTask();
1638  }
1639  }
1640  else
1641  {
1642  operator=(HiEasyX::ZoomImage_Alpha(this, nW, nH));
1643  }
1644  }

◆ ZoomImage_Rough_Alpha()

void HiEasyX::Canvas::ZoomImage_Rough_Alpha ( int  nW,
int  nH = 0 
)

缩放图像(粗糙的、即不插值的缩放,保留透明度信息)

参数
[in]nW目标宽度
[in]nH目标高度(为 0 则根据宽度按比例缩放)

在文件 HiCanvas.cpp1610 行定义.

1611  {
1612  if (m_bBindToImgPointer)
1613  {
1614  if (BeginWindowTask())
1615  {
1617  UpdateSizeInfo();
1618 
1619  EndWindowTask();
1620  }
1621  }
1622  else
1623  {
1625  }
1626  }

◆ ZoomImage_Win32_Alpha()

void HiEasyX::Canvas::ZoomImage_Win32_Alpha ( int  nW,
int  nH = 0 
)

缩放图像(基于 Win32 API,比较快,保留透明度信息)

参数
[in]nW目标宽度
[in]nH目标高度(为 0 则根据宽度按比例缩放)

在文件 HiCanvas.cpp1646 行定义.

1647  {
1648  if (m_bBindToImgPointer)
1649  {
1650  if (BeginWindowTask())
1651  {
1653  UpdateSizeInfo();
1654  }
1655  }
1656  else
1657  {
1659  }
1660  }

友元及相关函数文档

◆ BindWindowCanvas

void BindWindowCanvas ( Canvas ,
HWND   
)
friend
    绑定窗口画布指针
 备注:
    绑定后,使用画布绘图时将自动开启任务,无需用户开启,但不会自动刷新屏幕
参数
[in]pCanvas画布指针
[in]hWnd窗口句柄(为空表示当前活动窗口)

在文件 HiWindow.cpp301 行定义.

302  {
303  int index = GetWindowIndex(hWnd);
304  if (IsAliveWindow(index))
305  {
306  g_vecWindows[index].pBufferImgCanvas = pCanvas;
307  pCanvas->BindToWindow(g_vecWindows[index].hWnd, g_vecWindows[index].pBufferImg);
308  }
309  }

类成员变量说明

◆ m_bAutoMarkFlushWindow

bool HiEasyX::Canvas::m_bAutoMarkFlushWindow = true
protected

绑定到窗口时,标记是否在绘制后自动设置需要更新双缓冲

在文件 HiCanvas.h146 行定义.

◆ m_bBatchDraw

bool HiEasyX::Canvas::m_bBatchDraw
protected

是否启用了批量绘制

在文件 HiCanvas.h137 行定义.

◆ m_bBindToImgPointer

bool HiEasyX::Canvas::m_bBindToImgPointer
protected

该画布是否绑定到图像指针

在文件 HiCanvas.h134 行定义.

◆ m_bGPAA

bool HiEasyX::Canvas::m_bGPAA = true
protected

GDI+ 绘图时是否抗锯齿

在文件 HiCanvas.h143 行定义.

◆ m_bGPAlpha

bool HiEasyX::Canvas::m_bGPAlpha = false
protected

GDI+ 绘图时是否启用透明度

在文件 HiCanvas.h142 行定义.

◆ m_cGPFillColor

COLORREF HiEasyX::Canvas::m_cGPFillColor = WHITE
protected

GDI+ 绘图时使用的填充颜色

在文件 HiCanvas.h140 行定义.

◆ m_cGPLineColor

COLORREF HiEasyX::Canvas::m_cGPLineColor = WHITE
protected

GDI+ 绘图时使用的线条颜色

在文件 HiCanvas.h139 行定义.

◆ m_fGPLineWidth

float HiEasyX::Canvas::m_fGPLineWidth = 1.f
protected

GDI+ 绘图时的线条宽度

在文件 HiCanvas.h141 行定义.

◆ m_hBindWindow

HWND HiEasyX::Canvas::m_hBindWindow
protected

绑定到的窗口

在文件 HiCanvas.h145 行定义.

◆ m_nBufSize

int HiEasyX::Canvas::m_nBufSize
protected

图像面积

在文件 HiCanvas.h132 行定义.

◆ m_nHeight

int HiEasyX::Canvas::m_nHeight
protected

图像宽高

在文件 HiCanvas.h131 行定义.

◆ m_nWidth

int HiEasyX::Canvas::m_nWidth
protected

在文件 HiCanvas.h131 行定义.

◆ m_pBuf

DWORD* HiEasyX::Canvas::m_pBuf = nullptr
protected

图像内存指针

在文件 HiCanvas.h130 行定义.

◆ m_pImg

IMAGE* HiEasyX::Canvas::m_pImg
protected

画布绑定的图像指针(若画布绑定到指针)

在文件 HiCanvas.h135 行定义.

◆ m_property

DrawingProperty HiEasyX::Canvas::m_property
protected

保存外界绘图属性(用于保存旧的绘图对象指针)

在文件 HiCanvas.h128 行定义.


该类的文档由以下文件生成:
HiEasyX::Canvas::Rectangle
void Rectangle(int left, int top, int right, int bottom, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:779
HiEasyX::Canvas::GP_SetFillColor
void GP_SetFillColor(COLORREF color)
Definition: HiCanvas.cpp:1667
HiEasyX::RotateImage_Alpha
IMAGE RotateImage_Alpha(IMAGE *pImg, double radian, COLORREF bkcolor)
旋转图像(保留透明信息,自适应大小)
Definition: HiCanvas.cpp:84
HiEasyX::EasyX_Gdiplus_FillEllipse
void EasyX_Gdiplus_FillEllipse(float x, float y, float w, float h, COLORREF linecolor, COLORREF fillcolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画有边框填充椭圆
Definition: HiGdiplus.cpp:429
HiEasyX::Canvas::EndWindowTask
void EndWindowTask()
结束 HiWindow 的窗口任务
Definition: HiCanvas.cpp:267
HiEasyX::Canvas::m_pBuf
DWORD * m_pBuf
图像内存指针
Definition: HiCanvas.h:130
HiEasyX::Canvas::Resize
void Resize(int w, int h) override
重设画布大小(若绑定了窗口,则不建议调用)
Definition: HiCanvas.cpp:366
HiEasyX::Canvas::Clear_Alpha
void Clear_Alpha(bool isSetColor=false, COLORREF bkcolor=BLACK, bool ignore_alpha=false)
用背景色清空画布(区别于 Clear 函数,此函数默认保留背景色中的透明度)
Definition: HiCanvas.cpp:470
HiEasyX::ZoomImage_Win32_Alpha
IMAGE ZoomImage_Win32_Alpha(IMAGE *srcimg, int width, int height)
图像缩放(基于 Win32 API,比较快,保留透明度信息)
Definition: HiCanvas.cpp:214
HiEasyX::EasyX_Gdiplus_Arc
void EasyX_Gdiplus_Arc(float x, float y, float w, float h, float stangle, float endangle, COLORREF linecolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画圆弧(传入逆时针角度)
Definition: HiGdiplus.cpp:509
HiEasyX::Canvas::Line
void Line(int x1, int y1, int x2, int y2, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:764
HiEasyX::Canvas::m_property
DrawingProperty m_property
保存外界绘图属性(用于保存旧的绘图对象指针)
Definition: HiCanvas.h:128
HiEasyX::Canvas::m_bBatchDraw
bool m_bBatchDraw
是否启用了批量绘制
Definition: HiCanvas.h:137
HiEasyX::Canvas::m_fGPLineWidth
float m_fGPLineWidth
GDI+ 绘图时的线条宽度
Definition: HiCanvas.h:141
HiEasyX::DrawingProperty::SaveWorkingImageOnly
void SaveWorkingImageOnly()
只保存当前绘图对象
Definition: HiDrawingProperty.cpp:23
HiEasyX::EasyX_Gdiplus_SolidRectangle
void EasyX_Gdiplus_SolidRectangle(float x, float y, float w, float h, COLORREF fillcolor, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画无边框填充矩形
Definition: HiGdiplus.cpp:353
HiEasyX::EndTask
void EndTask(bool flush)
终止当前窗口任务
Definition: HiWindow.cpp:541
HiEasyX::Canvas::UpdateSizeInfo
void UpdateSizeInfo()
Definition: HiCanvas.cpp:349
HiEasyX::ZoomImage_Rough_Alpha
IMAGE ZoomImage_Rough_Alpha(IMAGE *srcimg, int width, int height)
缩放图像(粗糙的、即不插值的缩放,保留透明度信息)
Definition: HiCanvas.cpp:132
HiEasyX::Canvas::GetImagePointer
IMAGE * GetImagePointer()
Definition: HiCanvas.h:257
HiEasyX::Canvas::ClearRectangle
void ClearRectangle(int left, int top, int right, int bottom)
Definition: HiCanvas.cpp:829
HiEasyX::Canvas::RoundRect
void RoundRect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:949
HiEasyX::MixAlphaColor
COLORREF MixAlphaColor(COLORREF cDst, COLORREF cSrc, bool isCalculated, BYTE alpha)
根据透明度混合颜色
Definition: HiCanvas.cpp:9
HiEasyX::EasyX_Gdiplus_Rectangle
void EasyX_Gdiplus_Rectangle(float x, float y, float w, float h, COLORREF linecolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画矩形
Definition: HiGdiplus.cpp:332
HiEasyX::Canvas::Ellipse
void Ellipse(int left, int top, int right, int bottom, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:886
HiEasyX::Canvas::m_bGPAlpha
bool m_bGPAlpha
GDI+ 绘图时是否启用透明度
Definition: HiCanvas.h:142
HiEasyX::Canvas::Pt
IMAGE * Pt()
等价于 GetImagePointer()
Definition: HiCanvas.h:262
HiEasyX::Canvas::BindToImage
Canvas & BindToImage(IMAGE *pImg)
Definition: HiCanvas.cpp:389
HiEasyX::Canvas::operator=
Canvas & operator=(IMAGE *pImg)
复制图像内容(绑定图像指针请调用 BindToImage)
Definition: HiCanvas.cpp:325
HiEasyX::CopyImage_Alpha
void CopyImage_Alpha(int x, int y, DWORD *pDst, int wDst, int hDst, DWORD *pSrc, int wSrc, int hSrc, RECT crop, BYTE alpha, bool bUseSrcAlpha, bool isCalculated)
Definition: HiCanvas.cpp:37
HiEasyX::Canvas::Draw_Text
int Draw_Text(LPCTSTR str, RECT *pRect, UINT uFormat, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:1253
HiEasyX::Canvas::SolidEllipse
void SolidEllipse(int left, int top, int right, int bottom, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:920
HiEasyX::EasyX_Gdiplus_FillPie
void EasyX_Gdiplus_FillPie(float x, float y, float w, float h, float stangle, float endangle, COLORREF linecolor, COLORREF fillcolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画有边框填充饼状图(传入逆时针角度)
Definition: HiGdiplus.cpp:490
HiEasyX::Canvas::m_nHeight
int m_nHeight
图像宽高
Definition: HiCanvas.h:131
HiEasyX::EasyX_Gdiplus_SolidEllipse
void EasyX_Gdiplus_SolidEllipse(float x, float y, float w, float h, COLORREF fillcolor, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画无边框填充椭圆
Definition: HiGdiplus.cpp:410
HiEasyX::Canvas::Clear
void Clear(bool isSetColor=false, COLORREF bkcolor=BLACK)
Definition: HiCanvas.cpp:465
HiEasyX::EasyX_Gdiplus_FillRectangle
void EasyX_Gdiplus_FillRectangle(float x, float y, float w, float h, COLORREF linecolor, COLORREF fillcolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画有边框填充矩形
Definition: HiGdiplus.cpp:372
HiEasyX::ZoomImage_Alpha
IMAGE ZoomImage_Alpha(IMAGE *srcimg, int width, int height)
缩放图像(双线性插值,保留透明度信息)
Definition: HiCanvas.cpp:166
HiEasyX::Canvas::SolidRoundRect
void SolidRoundRect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:983
HiEasyX::EasyX_Gdiplus_Ellipse
void EasyX_Gdiplus_Ellipse(float x, float y, float w, float h, COLORREF linecolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画椭圆
Definition: HiGdiplus.cpp:389
HiEasyX::Canvas::m_bBindToImgPointer
bool m_bBindToImgPointer
该画布是否绑定到图像指针
Definition: HiCanvas.h:134
HiEasyX::Canvas::GetLineStyle
LINESTYLE GetLineStyle()
Definition: HiCanvas.cpp:453
HiEasyX::BeginTask
bool BeginTask()
Definition: HiWindow.cpp:530
HiEasyX::GetWindowIndex
int GetWindowIndex(HWND hWnd)
Definition: HiWindow.cpp:85
HiEasyX::EasyX_Gdiplus_FillPolygon
void EasyX_Gdiplus_FillPolygon(int points_num, POINT *points, COLORREF linecolor, COLORREF fillcolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画有边框填充多边形
Definition: HiGdiplus.cpp:317
HiEasyX::DrawingProperty::ApplyWorkingImageOnly
void ApplyWorkingImageOnly()
只恢复绘图对象
Definition: HiDrawingProperty.cpp:48
HiEasyX::Canvas::m_bAutoMarkFlushWindow
bool m_bAutoMarkFlushWindow
绑定到窗口时,标记是否在绘制后自动设置需要更新双缓冲
Definition: HiCanvas.h:146
HiEasyX::Canvas::SolidRectangle
void SolidRectangle(int left, int top, int right, int bottom, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:814
HiEasyX::Canvas::m_bGPAA
bool m_bGPAA
GDI+ 绘图时是否抗锯齿
Definition: HiCanvas.h:143
GetImageSize
void GetImageSize(IMAGE *pImg, int *width, int *height)
Definition: HiFunc.cpp:17
HiEasyX::Canvas::ClearPie
void ClearPie(int left, int top, int right, int bottom, double stangle, double endangle)
Definition: HiCanvas.cpp:1076
HiEasyX::Canvas::PutImageIn_Alpha
void PutImageIn_Alpha(int x, int y, IMAGE *pImg, RECT crop={ 0 }, BYTE alpha=255, bool bUseSrcAlpha=false, bool isCalculated=false)
绘制图像到该画布
Definition: HiCanvas.cpp:1577
HiEasyX::SetWorkingWindow
bool SetWorkingWindow(HWND hWnd)
等待当前任务完成并设置活动窗口
Definition: HiWindow.cpp:342
HiEasyX::Canvas::FillRectangle
void FillRectangle(int left, int top, int right, int bottom, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
Definition: HiCanvas.cpp:794
HiEasyX::Canvas::SolidPie
void SolidPie(int left, int top, int right, int bottom, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:1061
HiEasyX::Canvas::m_cGPLineColor
COLORREF m_cGPLineColor
GDI+ 绘图时使用的线条颜色
Definition: HiCanvas.h:139
HiEasyX::EasyX_Gdiplus_SolidPie
void EasyX_Gdiplus_SolidPie(float x, float y, float w, float h, float stangle, float endangle, COLORREF fillcolor, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画无边框填充饼状图(传入逆时针角度)
Definition: HiGdiplus.cpp:469
HiEasyX::EasyX_Gdiplus_Line
void EasyX_Gdiplus_Line(float x1, float y1, float x2, float y2, COLORREF linecolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画直线
Definition: HiGdiplus.cpp:238
HiEasyX::EasyX_Gdiplus_Polygon
void EasyX_Gdiplus_Polygon(int points_num, POINT *points, COLORREF linecolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画多边形
Definition: HiGdiplus.cpp:259
HiEasyX::EasyX_Gdiplus_Pie
void EasyX_Gdiplus_Pie(float x, float y, float w, float h, float stangle, float endangle, COLORREF linecolor, float linewidth, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画饼状图(传入逆时针角度)
Definition: HiGdiplus.cpp:446
HiEasyX::Canvas::SetBkColor
void SetBkColor(COLORREF color)
Definition: HiCanvas.cpp:676
HiEasyX::Canvas::FillEllipse
void FillEllipse(int left, int top, int right, int bottom, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
Definition: HiCanvas.cpp:901
HiEasyX::Canvas::SetLineStyle
void SetLineStyle(LINESTYLE style)
Definition: HiCanvas.cpp:487
HiEasyX::Canvas::CleanUpSettings
void CleanUpSettings()
清空大部分设置
Definition: HiCanvas.cpp:234
HiEasyX::Canvas::Pie
void Pie(int left, int top, int right, int bottom, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:1027
HiEasyX::Canvas::m_nWidth
int m_nWidth
Definition: HiCanvas.h:131
HiEasyX::Canvas::FillRoundRect
void FillRoundRect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
Definition: HiCanvas.cpp:964
HiEasyX::Canvas::BeginWindowTask
bool BeginWindowTask()
单独启动 HiWindow 的窗口任务(如果绑定了窗口)
Definition: HiCanvas.cpp:247
HiEasyX::DrawingProperty::Reset
void Reset()
重置保存状态
Definition: HiDrawingProperty.cpp:61
HiEasyX::Canvas::FillPie
void FillPie(int left, int top, int right, int bottom, double stangle, double endangle, bool isSetColor=false, COLORREF cLine=0, COLORREF cFill=0)
Definition: HiCanvas.cpp:1042
HiEasyX::IsAliveWindow
bool IsAliveWindow(HWND hWnd)
判断一窗口是否还存在(未被关闭)
Definition: HiWindow.cpp:111
HiEasyX::Canvas::m_nBufSize
int m_nBufSize
图像面积
Definition: HiCanvas.h:132
HiEasyX::Canvas::Arc
void Arc(int left, int top, int right, int bottom, double stangle, double endangle, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:1012
HiEasyX::Canvas::IsValidPoint
bool IsValidPoint(int x, int y, int *pIndex=nullptr)
判断某点是否位于图像中
Definition: HiCanvas.cpp:427
HiEasyX::Canvas::GP_SetLineColor
void GP_SetLineColor(COLORREF color)
Definition: HiCanvas.cpp:1662
HiEasyX::Canvas::m_cGPFillColor
COLORREF m_cGPFillColor
GDI+ 绘图时使用的填充颜色
Definition: HiCanvas.h:140
HiEasyX::Canvas::m_pImg
IMAGE * m_pImg
画布绑定的图像指针(若画布绑定到指针)
Definition: HiCanvas.h:135
HiEasyX::Canvas::ClearRoundRect
void ClearRoundRect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight)
Definition: HiCanvas.cpp:998
HiEasyX::EasyX_Gdiplus_SolidPolygon
void EasyX_Gdiplus_SolidPolygon(int points_num, POINT *points, COLORREF fillcolor, bool enable_alpha, bool enable_aa, IMAGE *pImg)
画无边框填充多边形
Definition: HiGdiplus.cpp:289
HiEasyX::Canvas::ClearEllipse
void ClearEllipse(int left, int top, int right, int bottom)
Definition: HiCanvas.cpp:935
HiEasyX::Canvas::EndDrawing
void EndDrawing()
调用 EasyX 绘图函数完毕,恢复先前的绘图状态
Definition: HiCanvas.cpp:286
HiEasyX::DrawingProperty::IsSaved
bool IsSaved()
判断是否保存了绘图属性
Definition: HiDrawingProperty.cpp:56
HiEasyX::Canvas::m_hBindWindow
HWND m_hBindWindow
绑定到的窗口
Definition: HiCanvas.h:145
HiEasyX::Canvas::CenterText
void CenterText(LPCTSTR lpszText, RECT rct={ -1 }, bool isSetColor=false, COLORREF c=0)
在某区域居中输出文字
Definition: HiCanvas.cpp:1277
HiEasyX::g_vecWindows
std::vector< EasyWindow > g_vecWindows
窗口表(管理多窗口)
Definition: HiWindow.cpp:28
HiEasyX::Canvas::BeginDrawing
bool BeginDrawing()
Definition: HiCanvas.cpp:275