pro essential dll win32简单演示

接下来介绍如何创建你的第一个VC加proessential的实现。内容包括安装,加入proesstial到工程,编写最初的几行代码,然后结果展示。

为了简化起见,这不是一个mfc的例子。如果感兴趣,可以查阅官方关于mfc开发的文档或第七版的例程工程。这和我们现在的例子是一样的。文件FileView.cpp里包含了绘图的相关代码。

 

为了查找dll的相关信息,可以查看官方的帮助文档。下面我们开始:

1,首先是安装或者说加载。File->New。

拷贝pegrp32c.dll到system32目录下。

2。创建新的工程。创建一个win32的hello world工程。

3。添加pegrp32c.lib和pegrpapi.h到工程中。

4。添加头文件声明和pe的句柄变量。

 

// petest.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "resource.h"
#include "Pegrpapi.h"
#define MAX_LOADSTRING 100

// Global Variables:
HWND hPE;

//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hPE=NULL;


5。然后窗口过程函数中添加一些变量的声明和消息处理代码。

	RECT r;
	int s,p;
	float f;


 

		case WM_DESTROY:
			if (hPE)
				
			{
				
				PEdestroy(hPE);
				
				hPE = 0;
				
			}
			
			
			PostQuitMessage(0);
			break;
		case WM_SIZE:
			if (hPE)
				
			{
				
				GetClientRect(hWnd, &r);
				
				MoveWindow(hPE, 0, 0, r.right, r.bottom, FALSE);
				
			}
			break;
		case WM_CREATE:
			GetClientRect(hWnd, &r);
			
			hPE = PEcreate(PECONTROL_GRAPH, 0, &r, hWnd, 1000);
			
			PEnset(hPE, PEP_bPREPAREIMAGES, TRUE);
			
			PEnset(hPE, PEP_nSUBSETS, 2);
			
			PEnset(hPE, PEP_nPOINTS, 10);
			
			for (s=0; s<2; s++)
				
			{
				
				for (p=0; p<10; p++)
					
				{   f = (rand() % 10) + (rand() % 100) / 100.0F;
				
				PEvsetcellEx(hPE, PEP_faYDATA, s, p, &f); 
				
				}
				
			}
			
			PEszset(hPE, PEP_szMAINTITLE, TEXT("My Title"));
			
			PEszset(hPE, PEP_szSUBTITLE, TEXT(""));
			
			PEszset(hPE, PEP_szYAXISLABEL, TEXT("My Data"));
			
			PEszset(hPE, PEP_szXAXISLABEL, TEXT(""));
			
			PEvsetcell(hPE, PEP_szaSUBSETLABELS, 0, TEXT("Hello"));
			
			PEvsetcell(hPE, PEP_szaSUBSETLABELS, 1, TEXT("World"));
			
			PEnset(hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
			
			PEnset(hPE, PEP_nQUICKSTYLE, PEQS_LIGHT_INSET);
			
			PEnset(hPE, PEP_bFIXEDFONTS, TRUE);
			
			PEnset(hPE, PEP_nLEGENDSTYLE, PELS_1_LINE_INSIDE_AXIS);
			
			PEreinitialize(hPE);
			
			PEresetimage(hPE, 0, 0);
			
			
			break;
		case WM_ERASEBKGND://prevent flashing
			break;


 

这里作下说明pecreate类似于windows的创建窗体的函数。如果调用成功,返回一个句柄并存储在hPE中。

penset是pe的一个函数,用于设置32位类型的属性如整形、布尔形或句柄。

然后通过一个嵌套的循环通过pevsetcellex把数据传给属性ydata。注意到变量f为float型。这一点很重要因为pevsetcellex是通过访问一个void指针指向来完成工作的。内存中的数据类型必须是预期的。

然后,peszset是用来设置文本属性的。注意,调用peszseta或peszsetw是分别用于设置short char形或wide char形数据的。

pevsetcell是用来设置子集图例文本的。

然后penset的调用是来控制各种视图。

pereinitialize和peresetimage用来告诉pe你已完成了所有的设置工作。

wm_size消息处理的代码用于始终显示图表。

wm_erasebkgnd的代码用于防止重绘时的闪烁。

wm_destroy的代码用于销毁pe控件并释放资源。

 

最后让我们看一下结果吧:)

还不错。这个例子很简单。你还可以通过摸索设置其他的属性诸如pointlabels,subsetlinetypes,subsetcolors,plottingmethod等等。从字面意思都很好理解,这里不再赘述。

enjoy ^    ^

参考资料:http://gigasoft.com/netchart/controlcomponentslibrary.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值