我找到了使用VB6绘制星形的API函数:我需要的是根据数据驱动的参数为星的每个点的颜色着色:因此如果传递的参数是1,我想要对颜色的部分进行着色选定的星点红色,其长度的十分之一是从围绕其构建恒星的圆圈的圆周上测量的;如果2星,2/10的星点绿色等等
我找到了API函数CreatePolygonRgn,所以我可以改变整个特定星点的颜色,但是如何只使用一个X和Y参数来定义多边形是困惑的:如果我改变了给定星点的X和Y,我得到的结果似乎没有意义
TKIF
Charles Geach
SE
答案 0 :(得分:1)
优秀的vbAccelerator提供some VB6 code。我自己没有测试过。请注意,points()
是一个数组,即使看起来就像您只传递了第一个元素一样,您实际上是在给予整个数组。 CreatePolygonRgn的第一个参数不是单个点,而是一个点数组。
我希望这可以帮助您了解正在发生的事情,并且您可以编写明星代码。
Type POINTAPI
X As Long
Y As Long
End Type
Declare Function CreatePolygonRgn Lib "gdi32" _
(lpPoint As POINTAPI, ByVal nCount As Long, _
ByVal nPolyFillMode As Long) As Long
Sub Test()
Const ALTERNATE = 1 ' ALTERNATE and WINDING are '
Const WINDING = 2 ' constants for FillMode. '
Dim points(1 To 5) as POINTAPI
' fill in points .. '
CreatePolygonRgn(points(1), 5, WINDING)
End Sub
答案 1 :(得分:0)
我想建议另一种选择,而不是乱用API调用。听起来像你将拥有(最多)11个不同的星星(0到10)。如果这是我的项目,我会使用您选择的图形应用程序创建11个图像。然后,根据变量的值,有选择地显示您想要的任何图像。