下面请用VC6打开第一课编写的程序,并运行之,出现第一课最后一张图的那个界面。

把鼠标在程序的窗口里四处动动,是不是图像的状态随着鼠标位置的移动有所变化呢?

是的,的确是这样,这就是CChart的交互功能在起作用了。

非常奇特的地方在于,我们并没有为交互功能添加任何代码!!!

为了完整地体验CChart的交互功能,需要把第一课的程序略作修改。

在VC中打开Lesson01.cpp文件,找到ATOMMyRegisterClass(HINSTANCEhInstance)这个函数,并在函数里找到下面这一行。

 
wcex.style			= CS_HREDRAW | CS_VREDRAW;
 


把这一行修改成下面这样。

 
wcex.style			= CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
 


修改的原因是VCWin32Application向导自动产生的程序默认是不响应鼠标双击的,上面的修改让我们的程序能够响应鼠标双击。

是不是简单了点,下面还需要写代码吗?

真的不需要了,这一课的代码编写到此为止。

下面简单介绍CChart的交互功能。

3.1交互的对象

CChart中交互的对象称为图元,图元的具体范围包括图像标题、绘图区、曲线、坐标轴、图例。

为了解释上面的几种图元,我们首先把图例显示出来。

在程序的客户区右键点击鼠标,出现如图的右键菜单。

SouthEast

点击“ShowLegend”,程序界面变成下面这样。

SouthEast

哈哈,图例显示了出来。

下面笨笨把程序界面修改一下,就能显示各种图元是什么了。修改方法不是修改代码,而是利用交互功能直接在程序运行时改,同学们一会也会自己改了。

SouthEast

3.2图元高亮

当鼠标掠过某个图元时,该图元即高亮。

如图是图像标题高亮。

SouthEast

对于坐标轴高亮、曲线高亮、数据区高亮、图例高亮,这里就不演示了,同学们自己动动鼠标就可以看见效果。

可以想一想,图像标题、坐标轴等图元的高亮,实现应该不难,因为它们仅仅是个方框,但对于曲线的高亮,是不是就不那么容易了吧?这可是笨笨的独门绝技哟,呵呵。本人在CSDN的下载频道有一个CChart的全源码版本,如果哪位同学有兴趣想知道是怎么实现曲线的高亮的,可以下载下来看看。

3.3图元选择

图像标题、坐标轴、曲线这三种图元可以被选择。

当鼠标位于某图元之上时,按鼠标左键可以选择之。其中曲线的选择还可以在图例中按左键选择。

下图显示了曲线被选择后的界面,线宽加大并变色。当然没有对比是看不出来变化的,需要和上图比较。

SouthEast

3.4选择切换

切换选择图元的方法是Space键,按下Space键,将按照标题-->各条坐标轴-->各条数据曲线-->标题的顺序切换选择。多个坐标轴和多条数据曲线将按照它们添加的顺序切换。

同学们可以按空格键试试看。

3.5图元编辑

当某个图元处于被选择的状态时,按下Enter键,即弹出一个对话框,可以对该图元的属性进行编辑。

例如上图中曲线被选择,按下回车,出现如下对话框。

SouthEast

在这个对话框里可以对图元的很多属性进行修改。例如这里把Title改成“CChart的新数据”,按下OK键后,图像界面就相应地修改了。

SouthEast

改变的地方在图例中,图例中的文字就是曲线的标题。如果有多条曲线,每条曲线都有一个标题。

除了回车键以外,还可以用鼠标双击的方式调出属性对话框。

3.6右键菜单

本节课的最前面已经出现右键菜单了,那里用右键菜单调出图例。

其实右键菜单的功能非常丰富,同学们自己可以随便试一下,看看各条菜单的作用和效果。

好了,下课铃响了,本节课的内容相当丰富,但实际上只写了半句代码。其实这半句代码也可以不写,对功能的影响仅仅在于鼠标双击不起作用。这个问题你不能怪笨笨,要怪的话,你去找比尔盖茨。

这两课基本都属于瞎掰,下节课开始要准备一些干货了。