主頁  |  産品  | 我們的客戶 | 技術支持 | 下載 | 購買  | 關于UCanCode  

同UCanCode一起釋放Visual C++的巨大能量!
 


028-85354645

購買與價格
免費評估版
E-Form++圖形源碼庫企業版本
100%C++, VB, C#源碼
 産品特點 
  HMI &SCADA源碼
 PLC組态編程源碼
 CAD控件源碼
 HMI 報表源碼
GIS制圖源碼
電力系統源碼
條碼賬單源碼
工作流程源碼
煤炭行業源碼
儀器儀表源碼
報表打印源碼
圖形建模源碼
電子表單源碼
Visio制圖源碼
工業控制源碼
BPM業務流程源碼
工業監控源碼
流程圖控制流源碼
組織關系圖源碼
圖形編輯器源碼
 Win CE組态源碼
UML編輯器源碼
地圖演示源碼
建築平面制圖源碼
價格與購買
 價格與購買
技術支持
  軟件注冊
  在線升級
  在線文檔
  開發課程
  開發範例
  開發知識庫
  軟件Bug報告
  改進建議
 關于UCanCode
  與我們聯系
友情連接
VC++ Source Code
VC++ Tutorial
   

工業監控,OPC,組态,仿真,  建模, 源程序,儀表,HMI組态,SCADA軟件源代碼,自動化管理,控件,VC++源代碼組件庫2019!

使用E-Form++可視化企業版本,構建屬于自己的專業工控、仿真、組态平台!

-- 100%源碼 (全部采用Visual C++/MFC編寫)徹底開放組态平台!

工業監控OPC,自動化管理方面的應用屬于一個大類,E-Form++完全采用C++而開發的高性能組件平台庫,内置對這些方面應用的全套解決方案,其設計模式與運行模式的直接内置,以及可直接通過C++對任何操作進行完全定制和擴展所達到的性能,是任何單獨使用腳本做不到的,将為您節省大量的開發時間,此解決方案已經在煤炭,礦山,電力,軍工,能源,航空,城市管理等廣泛領域得到廣泛的應用。解決方案模塊安全、穩定、可靠

下載此解決方案


我們提供的這些解決方案并不意味着E-Form++可視化圖形組件庫隻能開發這些方面的應用,事實上E-Form++同任何其他第三方C++組件庫一樣,包含數百項可以分開獨立使用的功能。同QT, MFC等一樣,您可以獨立決定是否需要E-Form++中的某項功能,一般來講,隻要您需要圖形顯示、需要流程圖、控制圖、打印功能、排版功能、仿真、電子地圖、電力接線圖、表單等等功能,您就可以使用E-Form++組件庫,當然有的時候也許您隻希望使用E-Form++提供的下拉顔色等控件而不需要繪圖功能,那也沒問題!

動态圖形與實時系統解決方案示例, 如下圖:

下面的示例程序是一個非常典型的使用E-Form++可視化圖形組件庫構建高性能的監控的應用案例,下面是使用E-Form++産品開發該應用的步驟:

一、準備監控所需的各種元件:

使用E-Form++提供的高品質複合圖形設計程序ShapeDesigner設計需要的監控元件,您可以使用E-Form++本身提供大量基礎圖形來完成複雜元件的設計,如下圖:

在右邊畫布中設計好的各種監控複合圖形元件可以直接通過鼠标複制粘貼的方式放置到左邊的工具盒中,以後再使用的時候直接拖拉出來即可。

二、設計監控畫面:

通過附随E-Form++産品提供的DiagramEditor,可以為指定的監控設計相應的畫面,DiagramEditor提供了非常完善而強大的功能,保證能夠正确高效的完成各種高品質的 監控畫面的設計,在設計畫面的時候,我們隻需要通過鼠标拖拉的方式将步驟一中設計好的現成元件拖入畫布中搭建即可,如下圖:

當我們在采集數據的時候,我們往往需要刷新畫布上的各種圖元的狀态,在DiagramEditor特别為每個元件提供了5個關鍵字,通過任何一個關鍵字即可查詢到指定元件。如下圖的設定:

該設定中我們将最上面的元件的Key Value 1設定為K2。

三、搭建需要的監控程序:

通過E-Form++提供的AppWizard (應用程序創建向導),可以自動産生基于VC++的監控應用程序框架,要裝載任何監控畫面,隻需要先将上面設計好的XDG監控界面文件導入到應用程序中形成XDGRES資源文件,然後調用如下函數即可:

LoadXdgFromResource(IDR_MAIN, _T("XdgRes"), FALSE);

當然,如果是需要裝載新的監控界面,也同樣可以調用這個函數。

四、實時數據的采集:

可以通過View類的定時器功能,定時采集數據,如果需要更新畫面的元件,調用控件本身的UpdateControl即可,當需要同時更新一系列元件的時候,可直接加入到CFODrawShapeList列表中,然後調用UpdateShapes即可。示範代碼如下:


void CAutoDemoView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if(nIDEvent == ID_TIMER_ID)
	{
		CFODrawShapeList lstUpdate;
		int xx0 = rand() % 20;
		int xx1 = rand() % 18;
		int xx2 = rand() % 25;
		int xx3 = rand() % 16;
		int xx4 = rand() % 12;
		int xx5 = rand() % 21;
		if(pK1 != NULL)
		{
			CString strText;
			strText.Format(_T("%u mcA"), xx0 * xx1);
			pK1->SetLabelText(strText);
			lstUpdate.AddTail(pK1);

		}
		if(pK2 != NULL)
		{
			CString strText;
			strText.Format(_T("%u C"), xx0 * xx2);
			pK2->SetLabelText(strText);
			lstUpdate.AddTail(pK2);
		}

		if(pK3 != NULL)
		{
			CString strText;
			strText.Format(_T("%u Nm/h"), xx0 * xx3);
			pK3->SetLabelText(strText);
			lstUpdate.AddTail(pK3);
		}


		if(pX1 != NULL)
		{
			CString strText;
			strText.Format(_T("%u"), xx0 * xx4);
			pX1->SetLabelText(strText);
			lstUpdate.AddTail(pX1);

			int nValue = xx0 * xx4;
			if(nValue > 200)
			{
				pX1->SetBkColor(RGB(255,0,0));
			}
			else if(nValue > 100)
			{
				pX1->SetBkColor(RGB(255,255,0));
			}
			else
			{
				pX1->SetBkColor(RGB(0,0,0));
			}
		}

		if(pX2 != NULL)
		{
			CString strText;
			strText.Format(_T("%u"), xx0 * xx5);
			pX2->SetLabelText(strText);
			lstUpdate.AddTail(pX2);

			int nValue = xx0 * xx5;
			if(nValue > 200)
			{
				pX2->SetBkColor(RGB(255,0,0));
			}
			else if(nValue > 100)
			{
				pX2->SetBkColor(RGB(255,255,0));
			}
			else
			{
				pX2->SetBkColor(RGB(0,0,0));
			}
		}

		if(pX3 != NULL)
		{
			CString strText;
			strText.Format(_T("-%u"), xx1 * xx5);
			pX3->SetLabelText(strText);
			lstUpdate.AddTail(pX3);

			int nValue = xx1 * xx5;
			if(nValue > 200)
			{
				pX3->SetBkColor(RGB(255,0,0));
			}
			else if(nValue > 100)
			{
				pX3->SetBkColor(RGB(255,255,0));
			}
			else
			{
				pX3->SetBkColor(RGB(0,0,0));
			}
		}

		if(pX4 != NULL)
		{
			CString strText;
			strText.Format(_T("%u"), xx2 * xx3);
			pX4->SetLabelText(strText);
			lstUpdate.AddTail(pX4);

			int nValue = xx2 * xx3;
			if(nValue > 200)
			{
				pX4->SetBkColor(RGB(255,0,0));
			}
			else if(nValue > 100)
			{
				pX4->SetBkColor(RGB(255,255,0));
			}
			else
			{
				pX4->SetBkColor(RGB(0,0,0));
			}
		}


		if(pX5 != NULL)
		{
			CString strText;
			strText.Format(_T("%u"), xx2 * xx4);
			pX5->SetLabelText(strText);
			lstUpdate.AddTail(pX5);

			int nValue = xx2 * xx4;
			if(nValue > 200)
			{
				pX5->SetBkColor(RGB(255,0,0));
			}
			else if(nValue > 100)
			{
				pX5->SetBkColor(RGB(255,255,0));
			}
			else
			{
				pX5->SetBkColor(RGB(0,0,0));
			}
		}

		
		if(pX6 != NULL)
		{
			CString strText;
			strText.Format(_T("%u"), xx3 * xx5);
			pX6->SetLabelText(strText);
			lstUpdate.AddTail(pX6);

			int nValue = xx3 * xx5;
			if(nValue > 200)
			{
				pX6->SetBkColor(RGB(255,0,0));
			}
			else if(nValue > 100)
			{
				pX6->SetBkColor(RGB(255,255,0));
			}
			else
			{
				pX5->SetBkColor(RGB(0,0,0));
			}
		}

		if(pChartShape != NULL)
		{
			pChartShape->UpdateData(xx0 * xx1, xx0 * xx2, xx0 * xx3);
			lstUpdate.AddTail(pChartShape);
		}

		if(lstUpdate.GetCount() > 0)
		{
			UpdateShapes(&lstUpdate);
		}
	}
	else
	{
		CFODrawView::OnTimer(nIDEvent);
	}
}

該示範應用程序最終運行界面如下:

當然,E-Form++可視化圖形組件庫提供了兩種風格的畫布,一種是基于View,另外一種是基于CWnd,這有助于您構建不同風格的應用(例如運行時隐藏滾動條等)。 E-Form++高品質的可視化組件庫完全采用VC++開發而成,具有極佳的運行性能和效率,已經在包括應用阿爾斯通在能衆多全球頂級客戶所驗證。

如下這個示例展示了如何使用E-Form++可視化圖形組件庫創建複雜的控制流程圖,簡單而快捷,畫布上的圖形可以根據需要增加自定義屬性數據或者同數據庫連接,如下圖:

1. 支持複雜的漸變色填充,圖像填充等填充模式,為創建各種仿真、工業監控、組态圖形提供了最便捷的手段。

2. 所有圖形均内置定時器功能,可随時啟動,随意控制運動頻率。

3. 可将任何圖形通過粘貼複制的方式放入左邊的工具盒窗口中,可直接通過拖拉方式将圖形放入畫布。

4. 内置設計模式與運行模式,在設計模式下隻允許進行圖形的編輯,而在運行模式下,隻能讓圖形處理運動功能或者交互事件,您也可以同時開發兩個程序,一個隻工作在設計模式下,另一個隻工作在運行模式下。

5. 提供專業的XML處理類,方便同信息發布或者數據的交換。

6. 畫布大小自由定義。

7. 系統内置完善的打印控制功能,不用編寫任何一行代碼即可選擇打印機,設定打印紙張,控制打印方向,設置頁面邊界等等。

8. 支持多圖層顯示。

9. 支持繪圖輔助線。

10. 每個圖形均設定了單獨的鍵盤和鼠标控制虛函數,可處理任何鼠标單擊、雙擊、移動等交互事件.

11. 支持任意角度旋轉文本,以及文本的所見即所得錄入。

12. 采用共享GDI設備,将性能擴展到極緻,可在同一畫布中容納上萬個圖元同時完成編輯。

13. 系統預設頁面跳轉、文件裝載、發送郵件、打開網頁等交互事件,通過覆蓋相應的虛函數,可輕松增加新的交互事件。

14. 全面支持複合圖形的創建,可将任何簡單圖形進行組合為複雜的複合圖形。

15. 支持任意複雜的多邊形運算,包括相交,想并,取餘,聯合等等操作。

16. 每個圖形系統内設5個額外參數控制點,通過這些額外控制點,可調節圖形的狀态參數。

17. 支持直線與弧線混合編輯,可直接操作某一段圖形,可将其在直線和弧線等自由轉換。

18. 全面支持Undo / Redo,可設定任何多級Undo / Redo操作。

19. 可為畫布上的任何圖形增加即插即用的新屬性值,并且新增加的屬性值在修改時自動支持UNDO / REDO.

20. 支持複合文本RTF的直接編輯和直接打印輸出。

21. 可對畫布上的任何圖形進行移動,旋轉,縮放,變形,扭曲,排布等等高級的操作。

22. 支持畫布大比例縮放。

23. 可通過鼠标平推畫布。

24. 支持厘米,毫米,英尺,英寸等多種刻度标尺。

25. 可直接導入bmp, wmf, emf, jpeg, gif, tga, pcx, png, mng等圖像文件。

26. 全面支持剪貼版,可自由複制,粘貼圖形。

27. 可自由調整畫布中圖形的排布層次。

28. 提供小圖預視功能,并可通過預視圖像的矩形框,調整當前畫布的顯示位置。

29. 提供功能一緻的ocx控件,方便 web部署或者其他語言平台開發人員進行同樣功能的調用。

30. 最重要的是我們将所有這些的經過嚴格測試的高品質VC++源代碼提供給您,此源代碼還包括ocx控件的設計源代碼。
d

全部超過50萬行精心設計并嚴格測試的源代碼提供無任何保留!
提供超過400個C++擴展類,50萬行有效VC++/MFC源代碼,70多個示例或者解決方案源代碼,完整的而細緻的用戶在線幫助系統和文檔,精心設計的輔助開發工具!

強大,靈活和易于使用的可視化圖型源碼庫。
功能強大,靈活地創建各種各樣的滿足您的需求的圖表。産品設計規範,很容易使用,在短短的幾天就能根據您的需求設計出産品。 我們提供完整的支持産品下載試用。

功能豐富。
超多功能,如自動布局,多層次,可折疊子圖,單元連接點中,XML,DXF, SHP, SVG等等,能夠協助您快速靈活的創建複雜的圖表。支持大量事件:如單擊,雙擊,懸停,選擇,橡皮筋選擇,複制,删除,調整大小和移動的支持。支持最複雜的操作:如拖和拖放,無限次的撤銷/重做和剪貼闆操作等等。


節省時間和金錢,獲得可靠性。
一張圖勝過千言萬語,E-Form++提供超過50萬行精心設計和良好測試的C++源代碼!開發耗時十年,全球上千家客戶驗證,能夠為您節省大量的開發時間和金錢!

現在就來試試!
不要光聽我們的說, 試試吧! 我們的免費試用版包括所有你需要你的應用程序原型。免費技術支持。

購買UCanCode 工控、仿真、組态解決方案全部源代碼!


聯系 UCanCode

購買源代碼或了解更多的簡單方法


  高級解決方案

 

 

 

[ 主頁 | 産品 | 新聞 | 下載 | 購買 | 技術支持 | 與我們聯系 ]


粵ICP備05040024

UCanCode Software中國.成都
地址:中國.成都高新區永豐路24号附1号 (郵編:610041)
電話: +86-28-85354645                   傳真:+86-28-85354645    
Copyright 1998-2019 UCanCode.Com Software, ©版權所有。
其他的産品和公司名稱或注冊的商标屬于其各公司版權所有。

任何問題或者建議請與我們聯系:webmaster@ucancode.net