Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
デスクトップへの描画について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9264#CommentId12384
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
cupud
 (社会人)
投稿日時
2009/8/12 08:18:53
線図で良いならVB6機能で出来ます。
DrawMode = 7 で2度書きすると、消えるという機能です。
Private Sub ComGo_Click()
Dim prTb(360) As Integer
Dim iyTb(360) As Integer
Dim ii As Integer, ix As Integer, iy As Integer, iw As Long
Dim aa As Single, pi As Single
serSec = Timer
canFlg = 0
MousePointer = 11
'- -
Me.ForeColor = RGB(200, 80, 40)
Me.ScaleMode = 3
Me.DrawMode = 7
aa = 100#
pi = 3.1415927
For ii = 0 To 180
For ix = 0 To 360
iy = aa * Sin(4# * ix * pi / 180# - 2# * ii * pi / 180#) _
* Sqr((360 - ix * 0.8) / 360)
iyTb(ix) = iy + aa + 50
Next ix
'- -
If 0 < ii Then
Me.PSet (10, prTb(0))
For ix = 1 To 360
Me.Line -(ix + 10, prTb(ix)) '←DrawMode=7が関係
Next ix
End If
'- -
Me.PSet (10, iyTb(0))
For ix = 1 To 360
Me.Line -(ix + 10, iyTb(ix))
Next ix
'- -
For ix = 0 To 360
prTb(ix) = iyTb(ix)
Next ix
'- -
Call subWait(iw)
Label1.Caption = "ii=" & CStr(ii) & " (" & CStr(iw) & ")"
Label1.Refresh '←無くても良いか?
DoEvents '←注意と言われる
If canFlg = 1 Then Exit For
Next ii
MousePointer = 0
End Sub
Private Sub subWait(argCnt As Long)
Dim locCnt As Long, locTim As Single
Do
locCnt = locCnt + 1
locTim = Timer
If serSec + 0.1 < locTim Then Exit Do
If 1000000 < locCnt Then Exit Do
Loop
serSec = locTim
argCnt = locCnt
End Sub
ただ、VB6では塗りつぶしができないので、そうする時はWinAPIが必須です。
しかし今更そんなので苦労するなら、VB2005以降が良いですね。