|
类似emWin的GUI_DispStringAt函数,不仅可以在桌面显示,也可以在各种窗口/控件的回调函数WM_PAINT消息里面绘制。
GUIX的绘制是在窗口的Drawing Function里面实现即可,实现方法和教程的第13章2D图形在窗口任意绘制是一样的。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429
非控件类字符的任意绘制实现方法如下,此方法已经应用到教程第20章汉字全字库的实现。
- /*
- *********************************************************************************************************
- * 函 数 名: _cbWindow0
- * 功能说明: 窗口回调函数
- * 形 参: widget 窗口句柄
- * 返 回 值: 无
- *********************************************************************************************************
- */
- VOID _cbWindow0(GX_WINDOW *widget)
- {
- GX_RECTANGLE drawto;
- GX_CANVAS *mycanvas;
-
- /* 默认的窗口绘制回调函数,即默认界面效果绘制 */
- gx_window_draw(widget);
- /* 定义一个矩形框,后续的2D绘制函数都是在这个矩形范围内绘制的 */
- gx_utility_rectangle_define(&drawto,
- 10,
- 100,
- 400,
- 265);
-
- /* 返回窗口对应的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(0xff000000);
- /* 设置笔刷填充的颜色值 */
- gx_context_raw_fill_color_set(0xff00ff00);
- gx_context_font_set(GX_FONT_ID_NOTOSERIFSC);
- gx_canvas_text_draw(10, 130, "故人西辞黄鹤楼,烟花三月下扬州Ab", -1);
- gx_canvas_text_draw(10, 160, "孤帆远影碧空尽,唯见长江天际流Cd", -1);
-
- /* 用于强制立即绘制,注意,务必和gx_canvas_drawing_initiate成对调用 */
- gx_canvas_drawing_complete(mycanvas, GX_TRUE);
- }
复制代码
效果:

|
评分
-
查看全部评分
|