- ベストアンサー
マウスカーソル+軌跡を遅らせて表示
- VisualBasic(6.0)でマウスの軌跡を遅らせて表示させる方法
- マウスの軌跡を実線で表示し、時間的に遅れて表示させるプログラムを作成する方法
- マウスカーソルが既に描かれた軌跡の上を通過しても、軌跡が消えない方法
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
状況が変わらないかも知れませんが・・・ フォームに書いていることをピクチャボックスでやってみてはいかがでしょうか? イメージボックスをピクチャボックスの中に作成しておいて、、、 ピクチャボックスプロパティ AutoRedraw=True Appearance=0(フラット) BorderStyle=0(なし) Enabled = False フォームロード時に Picture1.Left = 0 Picture1.Top = 0 Picture1.Width = Me.ScaleWidth Picture1.Height = Me.ScaleHeight Picture1.BackColor = Me.BackColor 描画部分を Form1.Line → Picture1.Line としても多少は改善されませんでしょうか?
その他の回答 (1)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
コードを公開できませんか?
補足
ご返事ありがとうございます. 必要な部分のみコードを貼り付けさせていただきます. 宜しくお願いします. '================================================= 'フォームのロード Private Sub Form_Load() Call Init End Sub '初期設定 Private Sub Init() '実際のマウスカーソルを隠す. Call HidePointer 'タイマー Me.MMTimer1.Interval = 10 Me.MMTimer1.Enabled = True intDelay = 5 Step = 0 End Sub 'マウスカーソルのロード Private Sub LoadCursor() 'カーソルイメージ Image1.Picture = LoadPicture("arrow_m.cur") Image1.Visible = True End Sub 'タイマーイベント Private Sub MMTimer1_Timer() '軌跡の記録 X_(Step) = CntX Y_(Step) = CntY If Step > intDelay Then 'カーソルアイコン位置をセット Call SetCursor(X_(Step - intDelay), Y_(Step - intDelay)) 'カーソル軌跡の描画 Form1.Line (X_(Step - intDelay - 1), Y_(Step - intDelay - 1))-(X_(Step - intDelay), Y_(Step - intDelay)) End If Step = Step + 1 End Sub 'カーソルアイコン位置をセット Private Sub SetCursor(x As Integer, y As Integer) Call Image1.Move(x, y) End Sub '現在のカーソル位置を,CntX,CntYにセット. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) CntX = CInt(x) CntY = CInt(y) End Sub
お礼
お返事ありがとうございます. 試してみましたがやはりちらつきが多いので,カーソルの表示はあきらめて,軌跡のみの表示にしました. WindowsAPIなどで簡単に実装できる方法があればあればよかったのですが,,お騒がせいたしましたm()m