千家信息网

VxWorks如何实现2D图形绘制

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,小编给大家分享一下VxWorks如何实现2D图形绘制,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!VxWorks的Wind
千家信息网最后更新 2025年02月04日VxWorks如何实现2D图形绘制

小编给大家分享一下VxWorks如何实现2D图形绘制,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

VxWorks的WindML除了支持最基本的2D图形绘制,还封装了三种控件:Window、Menu、Button。跑一个最简单的例子,祝大家春节快乐

源码如下


#include
UGL_LOCAL UGL_STATUS cbDraw ( WIN_ID winId, /* window ID */ WIN_MSG *pMsg, /* message (always MSG_DRAW) */ void *pData, /* copy of data passed to winCreate() */ void *pParam /* parameter passed to winCbAdd() */ ) { /* 使用浅蓝色填充window */ uglBackgroundColorSet(pMsg->data.draw.gcId, WIN_LIGHTBLUE); uglLineWidthSet(pMsg->data.draw.gcId, 0); uglRectangle(pMsg->data.draw.gcId, pMsg->data.draw.rect.left, pMsg->data.draw.rect.top, pMsg->data.draw.rect.right, pMsg->data.draw.rect.bottom);
/* 在window内绘制白色文本 */ uglForegroundColorSet(pMsg->data.draw.gcId, WIN_WHITE); uglFontSet(pMsg->data.draw.gcId, WIN_FONT_SMALL); uglTextDrawW(pMsg->data.draw.gcId, 10, 10, -1, "春节快乐");
/* return UGL_STATUS_FINISHED because default handling not needed */ return UGL_STATUS_FINISHED; }
void testWin() { WIN_APP_ID appId; WIN_ID winId;
/* 创建一个application context */ appId = winAppCreate("New Year", 0, 0, 0, UGL_NULL);
/* 创建一个带边框的可见window */ winId = winCreate(appId, UGL_NULL_ID, WIN_ATTRIB_FRAMED | WIN_ATTRIB_VISIBLE, 100, 100, 200, 150, UGL_NULL, 0, UGL_NULL);
/* 添加MSG_DRAW的回调,当window被绘制时调用 */ winCbAdd(winId, MSG_DRAW, 0, cbDraw, UGL_NULL);
/* 把window贴到屏幕上 */ winAttach(winId, UGL_NULL_ID, UGL_NULL_ID); }

以上是"VxWorks如何实现2D图形绘制"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0