• ベストアンサー

マウスドラッグで四角形を表示するには

WinXPでVisual Basic 6.0をもちいてアプリケーションを作っています。 Formオブジェクトのデザインのときに、マウスを左クリックしてドラッグすると破線の四角形が表示されますよね。 あれと同じようなものを作成するアプリに実装したいと思っているのですが、どのようにしたら良いでしょうか。 MouseDownとMouseMoveを用いてやってみたのですが、これではForm上が四角ばかりになってしまいました。 良い方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>回答ありがとうございます。質問文では分りにくかったかもしれませんが、 >ドラッグ中に四角が表示されて、マウスボタンを離したときには四角形は消えてほしいのです。 いえいえ、しっかり質問内容は認識はしていたんですが、回答がわかりづらかったようで。ちょっとはしょりすぎましたね。 ようは、 MouseDown時で、 ・Lineを4本表示する。 MouseMoveがくる度に ・クリック時の座標とMouseMove時の座標を対角の頂点とする長方形を構成するように、Lineコントロールを移動させる。 MouseUp時で、 ・Lineを非表示にし、MouseDownとMouseUpの座標を対角の頂点とする長方形を描画する。 って感じで。 Lineコントロールを使うのは、線の移動が簡単に出来るからです。 あとは、WinAPIのDrawFocusRectを使うという手もあります。 こちらが実際にのExplorer等で使われているものです。

ash_ef
質問者

お礼

早速ありがとうございます。 今まではLineメソッドを使っていたのですが、Lineコントロールを使えばできるということですね。 これを用いて、PictureBoxに描かれたプロットに対して領域指定して拡大表示させるというのが目標です。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

一番簡単なのは、Lineコントロールを使うのかな? で、マウスボタンが離されたタイミングで長方形を実際に書いてあげれば楽かなぁ?

ash_ef
質問者

補足

回答ありがとうございます。質問文では分りにくかったかもしれませんが、ドラッグ中に四角が表示されて、マウスボタンを離したときには四角形は消えてほしいのです。エクスプローラなどで複数のアイコンを選択する時のような、ああいう四角形を望んでいます。

関連するQ&A