画布控件

继承基础控件。

用户画像素点

/**   
 *  @brief 用户画像素点   
 *  
 *  @param [in] stPt1 点坐标(x,y),相对于画布左上角的偏移(x,y)  
 *  @param [in] iColor 点颜色RGB值            
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawPixel(POINT stPt1,UINT32 iColor = COLOR_RED);
例如:在画布坐标(50,50)画蓝色点
POINT pt={50,50};
DrawPixel(pt,COLOR_BLUE);

用户画线

/**   
 *  @brief 用户画线   
 *  
 *  @param [in] stPt1 点坐标(x,y),相对于画布左上角的偏移(x,y)  
 *  @param [in] stPt2 点坐标(x,y),相对于画布左上角的偏移(x,y) 
 *  @param [in] iColor 线颜色RGB值     
 *  @param [in] iWidth 线的宽度(Unit:pixel)          
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawLine(POINT stPt1, POINT stPt2, UINT32 iColor = COLOR_RED, UINT8 iWidth = 1);
例如:在画布坐标(50,50),(100,100)画蓝色线
POINT pt1={50,50};
POINT pt2={100,100};
DrawPixel(pt1,pt2,COLOR_BLUE);

用户画矩形

/**   
 *  @brief 用户画矩形   
 *  
 *  @param [in] stRect 矩形坐标(x,y,w,h),相对于画布左上角的偏移(x,y)  
 *  @param [in] iColor 矩形线颜色RGB值     
 *  @param [in] iWidth 矩形线的宽度(Unit:pixel)          
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawRect(RECT stRect, DWORD iColor = COLOR_RED ,UINT8 iWidth = 1);
例如:在画布坐标(50,50)画宽100高100的蓝色矩形
RECT stRect={50,50,100,100};
DrawRect(stRect,COLOR_BLUE);

用户画三角形

/**   
 *  @brief 用户画三角形  
 *  
 *  @param [in] stPt1 点坐标(x,y),相对于画布左上角的偏移(x,y)  
 *  @param [in] stPt2 点坐标(x,y),相对于画布左上角的偏移(x,y)  
 *  @param [in] stPt3 点坐标(x,y),相对于画布左上角的偏移(x,y)  
 *  @param [in] iColor 矩形线颜色RGB值     
 *  @param [in] iWidth 矩形线的宽度(Unit:pixel)          
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawTrigon(POINT stPt1, POINT stPt2, POINT stPt3, DWORD iColor= COLOR_RED,UINT8 iWidth = 1);
例如:在画布坐标1(50,50),坐标2(25,100),坐标3(75,100)画蓝色三角形 POINT pt1={50,50};
POINT pt2={25,100};
POINT pt3={75,100};
DrawTrigon(stPt1,stPt2,stPt3,COLOR_BLUE);

用户画曲线

/**   
 *  @brief 用户画曲线  
 *  
 *  @param [in] vX 曲线X顶点数组  
 *  @param [in] vY 曲线Y顶点数组  
 *  @param [in] iCnt 曲线顶点个数  
 *  @param [in] iColor 曲线颜色RGB值     
 *  @param [in] iWidth 曲线的宽度(Unit:pixel)   
 *  @param [in] iStep 曲线点插值点数         
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawCurve(DOUBLE *vX, DOUBLE *vY, INT iCnt, DWORD iColor= COLOR_RED,UINT8 iWidth = 1, INT iStep = 4);
例如:在画布坐标1(50,50),坐标2(25,100),坐标3(75,100)画蓝色曲线 DOUBLE vX[]={50,25,75};
DOUBLE vY[]={50,100,100};
DrawCurve(vX,vY,3,COLOR_BLUE);

用户画多边形

/**   
 *  @brief 用户画多边形  
 *  
 *  @param [in] vX 曲线X顶点数组  
 *  @param [in] vY 曲线Y顶点数组  
 *  @param [in] iCnt 曲线顶点个数  
 *  @param [in] iColor 曲线颜色RGB值     
 *  @param [in] iWidth 曲线的宽度(Unit:pixel)          
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawPolygon(SINT16 *vX, SINT16 *vY, INT iCnt, DWORD iColor = COLOR_RED,UINT8 iWidth = 1);
例如:在画布坐标1(50,50),坐标2(25,100),坐标3(75,100),坐标4(100,50),画蓝色多边形 DOUBLE vX[]={50,25,75,100};
DOUBLE vY[]={50,100,100,50};
DrawPolygon(vX,vY,4,COLOR_BLUE);

用户画圆弧

/**   
 *  @brief 用户画圆弧  
 *  
 *  @param [in] iCx 圆弧中心点X坐标值  
 *  @param [in] iCy 圆弧中心点Y坐标值  
 *  @param [in] iRadius 圆弧半径长度  
 *  @param [in] iSAngle 圆弧起始角度
 *  @param [in] iEAngle 圆弧结束角度
 *  @param [in] iColor 圆弧颜色RGB值     
 *  @param [in] iWidth 圆弧的宽度(Unit:pixel)          
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawArc(INT iCx, INT iCy,INT iRadius, INT iSAngle, INT iEAngle, DWORD iColor = COLOR_RED ,UINT8 iWidth = 1);
例如:在画布中心点坐标(100,100),画半径为50且开始角为0,结束角为30的蓝色圆弧
DrawArc(100,100,50,0,30,COLOR_BLUE);

用户画圆

/**   
 *  @brief 用户画圆  
 *  
 *  @param [in] iCx 圆中心点X坐标值  
 *  @param [in] iCy 圆中心点Y坐标值  
 *  @param [in] iRadius 圆半径长度  
 *  @param [in] iColor 圆颜色RGB值     
 *  @param [in] iWidth 圆的宽度(Unit:pixel)          
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawCircle(INT iCx, INT iCy, INT iRadius ,DWORD iColor= COLOR_RED ,UINT8 iWidth = 1);
例如:在画布中心点坐标(100,100),画半径为50的蓝色圆
DrawCircle(100,100,50,COLOR_BLUE);

用户画圆饼

/**   
 *  @brief 用户画圆饼  
 *  
 *  @param [in] iCx 圆饼中心点X坐标值  
 *  @param [in] iCy 圆饼中心点Y坐标值  
 *  @param [in] iRadius 圆饼半径长度  
 *  @param [in] iSAngle 圆弧起始角度
 *  @param [in] iEAngle 圆弧结束角度
 *  @param [in] iColor 圆饼颜色RGB值     
 *  @param [in] iWidth 圆饼的宽度(Unit:pixel)          
 *  @return 无返回值   
 *  
 *  @details More details   
 */   

VOID DrawPie(INT iCx, INT iCy,INT iRadius, INT iSAngle, INT iEAngle,DWORD iColor= COLOR_RED,UINT8 iWidth = 1);
例如:在画布中心点坐标(100,100),画半径为50且开始角为0,结束角为30的蓝色圆饼
DrawPie(100,100,50,0,30,COLOR_BLUE);

用户画图片

/**   
 *  @brief 用户画图片  
 *  
 *  @param [in] strImage 图片的路径  
 *  @param [in] stOffPt1 图片显示偏移坐标(x,y)  
 *  @param [in] iImgAlign 图片的对齐方式  
 *  @param [in] iBlendMode 图片的混合模式,使用默认值即可       
 *  @return 返回值真:TRUE, 返回值假:FALSE    
 *  
 *  @details More details   
 */   

BOOL DrawImage( STRING strImage, POINT stOffPt1 = {0,0}, INT iImgAlign = ALIGN_HVCENTER, INT iBlendMode = RD_BLENDMODE_BLEND);
例如:在画布坐标(20,20)画资源图片ID_IMG_GOLD_6
POINT ptoff={20,20}; DrawImage(mpActivity->GetResById(ID_IMG_GOLD_6),ptoff);

初始化画布待旋转/缩放的图片资源

/**   
 *  @brief 初始化画布待旋转/缩放图片  
 *  
 *  @param [in] strImage 图片资源Path        
 *  @return 返回值真:TRUE, 返回值假:FALSE    
 *  
 *  @details More details   
 */   

BOOL InitalRotoZoomImage(STRING strImage);
例如:初始化mpCanvas1画布的旋转/缩放图片资源(时钟分针图片ID_IMG_POINTER_M)
mpCanvas1->InitalRotoZoomImage(mpActivity->GetResById(ID_IMG_POINTER_M));

旋转/缩放处理画布图片(参考初始化画布待旋转/缩放的图片资源)

/**   
 *  @brief 旋转/缩放处理画布图片(布图片需要使用InitalRotoZoomImage初始化)
 *  
 *  @param [in] stCasCPt 画布旋转中心点  
 *  @param [in] stImgRPt 图片旋转点  
 *  @param [in] fRotoAngle 图片的旋转角度  
 *  @param [in] fZoom 图片缩放倍数  
 *  @param [in] iSmooth 图片的抗锯齿模式开关,使用默认值即可  
 *  @param [in] iBlendMode 图片的混合模式       
 *  @return 返回值真:TRUE, 返回值假:FALSE    
 *  
 *  @details More details   
 */   

BOOL RotoZoomCanvas(POINT stCasCPt,POINT stImgRPt,DOUBLE fRotoAngle, DOUBLE fZoom = 1.0f, INT iSmooth = RD_SMOOTHING_ON, INT iImgInitAngle = -90);
例如:旋转mpCanvas1画布30度,画布旋转中心点为(200,200),图片旋转点为(6,168);
mpCanvas1->RotoZoomCanvas({200, 200}, {6, 168}, (DOUBLE)30);

释放画布的旋转/缩放图片资源

/**   
 *  @brief 释放画布的旋转/缩放图片资源   
 *  
 *  @param [in] VOID        
 *  @return 返回值真:TRUE, 返回值假:FALSE    
 *  
 *  @details More details   
 */   

BOOL ReleaseRotoZoomImage();
例如:释放mpCanvas1画布的旋转/缩放图片资源
mpCanvas1->ReleaseRotoZoomImage();

Copyright © 2021 深圳合一智联科技有限公司 all right reserved,powered by Gitbook最后修改时间: 2022-04-12 12:16:06

results matching ""

    No results matching ""