1

VB6 を使用して星を描画するための API 関数を見つけました: 必要なのは、データ駆動型パラメーターに従って星の各ポイントのセクションに色を付けることです: したがって、渡されたパラメーターが 1 の場合、選択した星の部分に色を付けたいです星が作られている円の円周から測定した長さの 1/10 までの赤い点。2 の場合、スター ポイント グリーンの 10 分の 2 など。

API関数CreatePolygonRgnを見つけたので、特定のスターポイント全体の色を変更できますが、XとYのパラメーターを1つだけ使用してポリゴンを定義する方法について困惑しています:特定のスターのXとYを変更するとポイント、意味をなさないと思われる結果が得られます TKIF Charles Geach
se

4

2 に答える 2

1

優れた vbAccelerator は、いくつかの VB6 コードを提供します。私はこれを自分でテストしていません。points()は配列であることに注意してください。最初の要素のみを渡しているように見えますが、実際には API 呼び出しに配列全体へのアクセスを許可しています。CreatePolygonRgnの最初の引数は、単一のポイントではなく、ポイントの配列です。

何が起こっているのかを理解するのに役立ち、star コードを記述できるようになることを願っています。

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
于 2009-08-20T12:32:27.250 に答える
0

API 呼び出しをいじる代わりに、別の方法を提案したいと思います。私には、(多くても) 11 個の異なる星 (0 から 10) があるように思えます。これが私のプロジェクトだとしたら、お好みのグラフィック アプリケーションを使用して 11 枚の画像を作成します。次に、変数の値に応じて、必要な画像を選択的に表示します。

于 2009-08-20T23:35:03.150 に答える