tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルラインのドラッグ移動
記事No14952
投稿日: 2010/10/01(Fri) 18:09
投稿者とま3
初心者です。ご教授願います。

VB6 XP環境での質問です。
ピクチャボックス内で予め縦のラインを2本引いておきます。
そのラインを各々ドラッグして掴み水平移動させドロップさせたいのです。

その2本間の距離を測定しようと思っておりますが、ラインをドラッグして掴む
方法が解りません。

返信は週明けになるかもしれませんのがどなたかよろしくお願いします。

[ツリー表示へ]
タイトルRe: ラインのドラッグ移動
記事No14953
投稿日: 2010/10/01(Fri) 18:55
投稿者花ちゃん
> ピクチャボックス内で予め縦のラインを2本引いておきます。
> そのラインを各々ドラッグして掴み水平移動させドロップさせたいのです。
>
> その2本間の距離を測定しようと思っておりますが、ラインをドラッグして掴む
> 方法が解りません。

できない事も無いでしょうが、非常に難しい事かと思いますので、ラインの代りに
Label 等を使って試して見て下さい。

[ツリー表示へ]
タイトルRe^2: ラインのドラッグ移動
記事No14959
投稿日: 2010/10/07(Thu) 16:41
投稿者とま3
> できない事も無いでしょうが、非常に難しい事かと思いますので、ラインの代りに
> Label 等を使って試して見て下さい。

私なりにも調べたりチャレンジしたりしたのですが私レベルでは無理っぽいですね。
今回はあきらめて違うアプローチにします。
ありがとうございました。

[ツリー表示へ]
タイトルRe^3: ラインのドラッグ移動
記事No14960
投稿日: 2010/10/08(Fri) 09:25
投稿者花ちゃん
Form に Label を2個貼り付けて、下記コードをコピー & ペースト して見て下さい。

摘まみを作成していないので摘まみにくいので、Label の幅を広くしております。
右側のライン(擬似的に)をドラッグして移動できるようにしております。
最終的にどのようにしたいのは知りませんが、当初の質問の範囲なら下記のように
しても目的を達成できるかと思います。
(高度な事は何もしていないので後は、同様にひたすら力技の出番かと)

Option Explicit

Private XPos    As Long
Private YPos    As Long
Private fomLeft As Long
Private fomTop  As Long

Private Sub Label2_DragDrop(Source As Control, X As Single, Y As Single)
    '同一コントロール内でドロップした場合の補正
   Source.Move (Label2.Left + X - XPos), (Label2.Top + Y - YPos)
End Sub

Private Sub Label2_MouseDown(Button As Integer, Shift As _
                              Integer, X As Single, Y As Single)
'ドラッグ開始位置の保存とドラッグの開始
   YPos = Y
   XPos = X
   Label2.Drag vbBeginDrag
End Sub

Private Sub Form_DragDrop(Source As Control, _
                                    X As Single, Y As Single)
'フォーム上にドロップした時の補正
   Source.Move X - XPos, Y - YPos
End Sub

Private Sub Form_Load()
   With Label1
      .Appearance = 0
      .BorderStyle = 1
      .Top = 800
      .Left = 1000
      .Height = 3000
      .Width = 15
   End With
   With Label2
      .Appearance = 0
      .BorderStyle = 1
      .Top = 800
      .Left = 5000
      .Height = 3000
      .BackColor = vbBlack
      .Width = 90    '摘まみにくいので太く描画
   End With
   Label2.OLEDropMode = vbOLEDropManual ' 1
End Sub

[ツリー表示へ]
タイトルRe^4: ラインのドラッグ移動
記事No14964
投稿日: 2010/10/13(Wed) 10:24
投稿者とま3
> Form に Label を2個貼り付けて、下記コードをコピー & ペースト して見て下さい。
>
> 摘まみを作成していないので摘まみにくいので、Label の幅を広くしております。
> 右側のライン(擬似的に)をドラッグして移動できるようにしております。
> 最終的にどのようにしたいのは知りませんが、当初の質問の範囲なら下記のように
> しても目的を達成できるかと思います。
> (高度な事は何もしていないので後は、同様にひたすら力技の出番かと)
>

ありがとうございます。
参考にさせていただき再度チャレンジしてみます。

[ツリー表示へ]