浮云绘图编辑器源码定制之文字、图片基础图元操作及接口定义,用于文本描述及拓扑图、平面布局图开发

浮云绘图包含绘图编辑器+绘图组件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使用示例如下:

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定义及其示例,希望可以帮到大家基于浮云绘图快速开发绘图项目源码。如果更特殊的需求,我们可以驻场定制开发。

posted @ 2022-06-08 21:37  浮云绘图  阅读(155)  评论(0编辑  收藏  举报