浮云绘图包含绘图编辑器+绘图组件DLL+API Demo+说明文档,基于浮云绘图可以快速定制开发各类状态图、电路图、拓扑图、平面布局图等。其基础图元包括文字、图片,本文详细介绍此2类基础图元的详细绘图操作步骤,以及浮云绘图SDK开发接口定义和使用实例(浮云绘图功能已相当丰富,可以满足诸多绘图项目快速开发,如有还要特殊需求,我们可以驻场开发)。
先看看浮云绘图的几个应用场景如下所示,支持动态控制各线条、区域、文字、图片的颜色、虚实、大小、状态等属性。
1. 浮云绘图编辑器之文本图元使用与开发
文本,用于名称、解释、说明等。属性包括:内容、是否隐藏、对齐方式、字体类型、字体颜色、字号。
1.1 文本图元使用操作
文本图元绘制操作:点击左侧工具栏文本图标按钮 -> 鼠标移动到绘图区 -> 按下鼠标左键,移动鼠标,然后松开鼠标左键(完成文本图元初始绘制) -> 双击文本图元,弹出文本对话框,修改文本内容,及字体等属性,即完成文本绘制。
1.2 文本图元API和实例
有关文本图元API定义如下(以VC版为例)(完整浮云绘图SDK下载)
extern "C" __declspec(dllimport) void SetShapeText(CECanvas* canvas, CShapeElement* shape, const char* text);
extern "C" __declspec(dllimport) void GetShapeText(CShapeElement* shape, wchar_t* text);
extern "C" __declspec(dllimport) void SetTextVisible(CECanvas* canvas, CShapeElement* shape, BOOL isShow);
extern "C" __declspec(dllimport) int GetTextVisible(CShapeElement* shape);
extern "C" __declspec(dllimport) void SetFontColor(CECanvas* canvas, CShapeElement* shape, int color);
extern "C" __declspec(dllimport) int GetFontColor(CShapeElement* shape);
extern "C" __declspec(dllimport) void SetFontType(CECanvas* canvas, CShapeElement* shape, const char* fntype);
extern "C" __declspec(dllimport) void GetFontType(CShapeElement* shape, wchar_t* fntype);
extern "C" __declspec(dllimport) void SetFontSize(CECanvas* canvas, CShapeElement* shape, int size);
extern "C" __declspec(dllimport) int GetFontSize(CShapeElement* shape);
文本图元API使用示例如下:
// 作者:浮云绘图,专业军工、工控等领域绘图编辑器、曲线控件、报表等定制开发
// QQ:316868127
void CFYEDrawDemoVCView::OnPropText()
{
// TODO: 在此添加命令处理程序代码
CTextPropDlg dlg;
CShapeElement* shape = GetShapeAt(m_shapeCanvas, m_iShapeSeqNum);
if (shape != NULL)
{
dlg.m_bShow = GetTextVisible(shape);
wchar_t* sT = new wchar_t[200];
GetShapeText(shape, sT);
dlg.m_sContent = CString(sT);
delete []sT;
if (dlg.DoModal() == IDOK)
{
m_iShapeSeqNum = dlg.m_iShapeID;
CShapeElement* shape2 = GetShapeAt(m_shapeCanvas, m_iShapeSeqNum);
if (shape2 != NULL)
{
SetTextVisible(m_shapeCanvas, shape2, dlg.m_bShow);
SetShapeText(m_shapeCanvas, shape2, dlg.m_sContent);
}
}
}
}
void CFYEDrawDemoVCView::OnPropFont()
{
// TODO: 在此添加命令处理程序代码
CFontPropDlg dlg;
CShapeElement* shape = GetShapeAt(m_shapeCanvas, m_iShapeSeqNum);
if (shape != NULL)
{
wchar_t* sT = new wchar_t[200];
GetFontType(shape, sT);
dlg.m_sFontType = CString(sT);
delete[]sT;
dlg.m_iFontColor = GetFontColor(shape);
dlg.m_iFontSize = GetFontSize(shape);
if (dlg.DoModal() == IDOK)
{
m_iShapeSeqNum = dlg.m_iShapeID;
CShapeElement* shape2 = GetShapeAt(m_shapeCanvas, m_iShapeSeqNum);
if (shape2 != NULL)
{
SetFontType(m_shapeCanvas, shape2, dlg.m_sFontType);
SetFontColor(m_shapeCanvas, shape2, dlg.m_iFontColor);
SetFontSize(m_shapeCanvas, shape2, dlg.m_iFontSize);
}
}
}
}
2. 浮云绘图编辑器之图片图元使用与开发
图片图元,是浮云绘图的基础图元之一,支持各种平面布局图和实体关系图。现实中个各种物体照片、漫画、手绘等都可以成本图片图元的展示,应用场景如机柜、采集盒、动物、房间、沙发、背景墙等等,并且浮云绘图的图片支持3态,比如用计算机显示器表示一个客户端,绿色表示在线、红色表示断开、灰色表示未知状态。
2.1 图片图元使用操作
图片图元绘制操作流程:点中左侧工具栏图片按钮 -> 鼠标移动到绘图区,按下鼠标左键,接着移动鼠标,然后松开鼠标(即得到一个空图的图片图元) -> 双加该图片图元,在弹出属性框中,设置1~3张图片(即完成)。可通过修改图片状态值,切换图片。
2.2 图片图元API和实例
有关图片图元API定义如下(以VC版为例)(完整浮云绘图SDK下载)
extern "C" __declspec(dllimport) int GetImageStatus(CShapeElement* shape);
extern "C" __declspec(dllimport) void SetImageStatus(CECanvas* canvas, CShapeElement* shape, int status);
图片图元API使用示例如下:
void CFYEDrawDemoVCView::OnPropImg()
{
// TODO: 在此添加命令处理程序代码
CImgPropDlg dlg;
CShapeElement* shape = GetShapeAt(m_shapeCanvas, m_iShapeSeqNum);
wchar_t* sT = new wchar_t[200];
GetShapeType(shape, sT);
CString sType = CString(sT);
delete[]sT;
if (sType != "image")
{
CString msg;
msg.Format("当前第%d个图元不是图片图元", m_iShapeSeqNum+1);
AfxMessageBox(msg);
return;
}
if (shape != NULL)
{
dlg.m_iShapeID = m_iShapeSeqNum;
dlg.m_iImgStatus = GetImageStatus(shape);
if (dlg.DoModal() == IDOK)
{
m_iShapeSeqNum = dlg.m_iShapeID;
CShapeElement* shape2 = GetShapeAt(m_shapeCanvas, m_iShapeSeqNum);
if (shape2 != NULL)
{
SetImageStatus(m_shapeCanvas, shape2, dlg.m_iImgStatus);
}
}
}
}
文字和图片是绘图的基础,本文通过结束这2中基础图元的绘制和展示效果,以及API定义及其示例,希望可以帮到大家基于浮云绘图快速开发绘图项目源码。如果更特殊的需求,我们可以驻场定制开发。