发新话题
打印

能介绍一下SetShow方法的详细应用吗?

能介绍一下SetShow方法的详细应用吗?

帮助上是这样说的:
SetShow
函数原型
void SetShow(long nItems, boolean bShow)
参数说明
nItems 为要显示或要隐藏的图表元素的索引集合,例如想把“数据数值标记”和“数据轴主网格线”隐藏
    则可这样设置:nItems =0x00010000+0x00000100,bShow = FALSE
bShow 为真时nItems中指定的图表元素显示,为假时则不显示
其他参考
[[url=%E5%9B%BE%E8%A1%A8%E6%96%B9%E6%B3%95.html]图表方法[/url]]
说明
设置图表元素显示与否,此方法在CreateChart之前调用。下表中“说明”列没说明的,表示默认下该图表元素显示
图表元素元素值说明
绘图区0x00000002
背景墙0x00000004只有三维图形中有
基底0x00000008只有三维图形中有
数据轴0x00000010
分类轴0x00000020
数据轴标记0x00000040
分类轴标记0x00000080
数据轴主网格线0x00000100
数据轴次网格线0x00000200默认不显示
分类轴主网格线0x00000400
分类轴次网格线0x00000800默认不显示
数据轴标题0x00001000
分类轴标题0x00002000
图表标题0x00004000
数据0x00008000不推荐隐藏
数据数值标记0x00010000
图例0x00020000

而例子中是这样应用的:
步骤五ChinaChartCtrObject.SetShow(DRAW_DataSign,TRUE);//显示数据标记
ChinaChartCtrObject.SetShow(DRAW_DataAxMainGLine,FALSE);//隐藏数据轴主网格线


能详细说明一下“DRAW_DataSign”这些参数和“0x00020000”之类的东西是怎样转换的吗?

能不能增加一些VB6的例子呢?
谢谢!

[ 本帖最后由 寒潮 于 2008-12-13 20:55 编辑 ]

TOP

您好,我是Chart控件的开发人员。在此对Chart控件帮助的不足之处表示歉意。
SetShow的第1个参数只接受整数,但可以以十六进制数、十进制数、二进制数表示。
因为数字比较难记忆,而图表元素类型有这么多,因此一些程序员自己根据Chart帮助的说明定义了如下东西:
long DRAW_DataSign = 0x00010000 ;//0x00010000 代表“数据数值标记”这种图表元素
有了上面的定义,下面的2句的作用效果是完全一样的:
ChinaChartCtrObject.SetShow(0x00010000 ,TRUE);//显示数据标记
ChinaChartCtrObject.SetShow(DRAW_DataSign,TRUE);//显示数据标记
这样我们就不用记这么多该死的数字了。这就好比手机里联系人:姓名---手机号 的对应关系。

TOP

你好,感谢你的解答。
但我还是不明白,“0x00000020”这种标记与整数能拉上什么关系!我不知道你们测试时采用的是什么语言环境来测试,但是我在VB6中使用的话,输入的格式是这样的:
ChinaChartCtrObject.SetChartType 1
ChinaChartCtrObject.SetRowsAndCols 3, 4
ChinaChartCtrObject.SetDataVal 1, 1, 176
ChinaChartCtrObject.SetDataVal 1, 2, 180
ChinaChartCtrObject.SetDataVal 1, 3, 170
ChinaChartCtrObject.SetDataVal 1, 4, 190
ChinaChartCtrObject.SetDataVal 2, 1, 65
ChinaChartCtrObject.SetDataVal 2, 2, 70
ChinaChartCtrObject.SetDataVal 2, 3, 68
ChinaChartCtrObject.SetDataVal 2, 4, 80
ChinaChartCtrObject.SetDataVal 3, 1, 1200
ChinaChartCtrObject.SetDataVal 3, 2, 1400
ChinaChartCtrObject.SetDataVal 3, 3, 1700
ChinaChartCtrObject.SetDataVal 3, 4, 2000
ChinaChartCtrObject.SetChartRgnBck 16777152
ChinaChartCtrObject.SetDrawRgnBck 2648384
ChinaChartCtrObject.SetShow DRAW_DataSign, True
ChinaChartCtrObject.SetShow 0x00004000, False
输入到最后这里时,会弹出编译错误的提示,说明这种输入的方法在VB6中是不符合其语法规则的。“0x00010000“之类的标记到底是表示什么整数呢?

TOP

是16进制的整数。
0x00010000实际上就是整数65536.
您可以同时设置一些对象显示或不显示。
如ChinaChartCtrObject.SetShow 0x00000010|0x00000020, False
表示数据轴和分类轴都不显示。
在VB中应该是ChinaChartCtrObject.SetShow 16 +32,false

[ 本帖最后由 chinaexcel 于 2008-12-16 10:08 编辑 ]

TOP

明白了!!!谢谢解答。
图表元素元素值对应的整数值
绘图区0x00000002 2
背景墙0x000000044
基底0x000000088
数据轴0x00000010 16
分类轴0x00000020 32
数据轴标记0x00000040 64
分类轴标记0x00000080 128
数据轴主网格线0x00000100 256
数据轴次网格线0x00000200512
分类轴主网格线0x00000400 1024
分类轴次网格线0x000008002048
数据轴标题0x00001000 4096
分类轴标题0x00002000 8192
图表标题0x00004000 16384
数据0x0000800032768
数据数值标记0x00010000 65536
图例0x00020000 131072
是上面的值吗?我可是一个一个试的。呵呵,水平较低,方法比较笨。

TOP

应该是的。

TOP

发新话题
最近访问的版块