深入浅出CChart 每日一课——快乐高四第十六课 老马识途,ChartCtrl控件在WTL中的使用

这几天有个朋友想在WTL下使用ChartCtrl控件,因此笨笨在这里也写一个简单的教程。

要使用WTL当然要先安装它。

笨笨在这里介绍两个例子,一个是WTL对话框界面,一个是WTL单文档SDI界面。

A16.1 WTL对话框界面

第一步,首先用AppWizard建立一个基于对话框的WTL程序LessonA16。

第二步,在主对话框资源IDD_MAINDLG上添加一个Custom Control控件,其ID设置为IDC_CHART,class设置为ChartCtrl。

第三步,拷贝库文件。

第四步,打开maindlg.h,在其头部加入头文件和导入库文件的引用。

第五步,在OnInitDialog函数里面,找到returnTRUE;这句话,在其前面添加代码如下。

HWND hWnd = GetDlgItem(IDC_CHART);
		CChart *chart = GetChart(hWnd);
		int i;
		for(i=-10; i<=10; i++)
		{
			chart->AddPoint2D(i, i*i);
		}


运行程序,结果如图。

A16.2 WTL单文档界面

第一步,首先用AppWizard建立一个基于对话框的WTL单文档SDI程序LessonA16_1。

第二步,拷贝库文件。

第三步,打开LessonA16_1view.h文件,在其头部加入CChart头文件和导入库文件的引用。

第四步,响应WM_CREATE消息。

在BEGIN_MSG_MAP和END_MSG_MAP之间,加入下面一行。

MESSAGE_HANDLER(WM_CREATE, OnCreate)

增加OnCreate函数如下。

LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		HWND hWnd = CreateSubChartWnd(m_hWnd, kTypeXY, _T("Chart"), 0, 0, 600, 400);
		CChart *chart = GetChart(hWnd);
		for(int i=-10; i<=10; i++)
		{
			chart->AddPoint2D(i, i*i);
		}
		return 0;
	}

这里笨笨是用CreateSubChartWnd创建的窗口,实际上这是CreateWindow的一个简单封装,同学们完全可以用CreateWindow来实现。

好了,第二个程序也已经完成,效果如下。

这节课主要是介绍笨笨新增加的ChartCtrl控件在WTL下的使用,供有需要的小伙伴参考。

猜你喜欢

转载自blog.csdn.net/baita96/article/details/48376517
今日推荐