[C] 纯文本查看 复制代码 VOID _cbWindow0(GX_WINDOW *widget)
{
GX_RECTANGLE drawto;
GX_RECTANGLE tempdraw;
GX_CANVAS *mycanvas;
GX_POINT my_polygon[3] = { { 150, 210 }, { 250, 210 }, { 200, 260 } };
/* 默认的窗口绘制回调函数,即默认界面效果绘制 */
gx_window_draw(widget);
/* 定义一个矩形框,后续的2D绘制函数都是在这个矩形范围内绘制的 */
gx_utility_rectangle_define(&drawto,
10, /* x0 */
100, /* y0 */
400, /* x1 */
265); /* y1 */
/* 返回窗口对应的canvas画布 */
gx_widget_canvas_get(widget, &mycanvas);
/*
在指定的画布上启动绘图。此功能在内部被延迟绘图算法调用,GUIX在需要画布时自动执行更新。
但是允许应用程序绕过延期绘图算法并立即执行。
首先调用gx_canvas_drawing_inititate在画布上绘画。
然后调用所需的绘图函数,最后然后调用gx_canvas_drawing_complete即可。
*/
gx_canvas_drawing_initiate(mycanvas, widget, &drawto);
/* 设置笔刷画线的颜色值 */
gx_context_raw_line_color_set(0xffff0000);
/* 设置笔刷填充的颜色值 */
gx_context_raw_fill_color_set(0xff00ffff);
/* 通过GX_BRUSH_SOLID_FILL使能圆圈,矩形,多边形等绘制为填充效果 */
gx_context_brush_style_set(GX_BRUSH_SOLID_FILL);
/* 设置笔刷线宽 */
gx_context_brush_width_set(1);
/* 绘制直线 */
gx_canvas_line_draw(10, 100, 400, 100);
gx_canvas_line_draw(10, 100, 10, 265);
gx_canvas_line_draw(10, 265, 400, 265);
gx_canvas_line_draw(400, 100, 400, 265);
/* 绘制圆圈 */
gx_canvas_circle_draw(120, 150, 50);//xcenter:圆心的 X 坐标 ycenter:圆心的 Y 坐标 r:圆半径
/* 绘制直线 */
gx_canvas_line_draw(10, 100, 50, 150);
/* 绘制椭圆 */
gx_canvas_ellipse_draw(290, 153, 30, 25);//xcenter:椭圆形中心的 X 坐标 ycenter:椭圆形中心的 Y 坐标 a:半长轴的长度 b:半短轴的长度
/* 绘制多边形 */
gx_canvas_polygon_draw(my_polygon, 3);
// /* 绘制矩形 */
tempdraw.gx_rectangle_left = 30;
tempdraw.gx_rectangle_top = 210;
tempdraw.gx_rectangle_right = 100;
tempdraw.gx_rectangle_bottom = 260;
gx_canvas_rectangle_draw(&tempdraw);
/* 用于强制立即绘制,注意,务必和gx_canvas_drawing_initiate成对调用 */
gx_canvas_drawing_complete(mycanvas, GX_TRUE);
}
|