画像などのコントロールの拡大縮小

解決


トラさん  2007-01-28 21:07:05  No: 97765

(環境=XP+VB6)
Formの上にPictureBoxを置き、それをマウスでドラッグして移動したりサイズを変更したりしたいと考えています。Formの場合ですとのWindowStateを0にしておいてFormの周囲をマウスで摘んで拡大縮小できますが、このスタイルでPictureBox(など)を拡大、縮小する上手い手があったらご教示ください。(なお移動に関してはOn MouseMoveで問題なくやれています)


通ってみた  2007-01-28 23:37:42  No: 97766

PictureBoxではなく、Imageにすると簡単ですがダメですか?


トラさん  2007-01-29 03:10:47  No: 97767

レスをありがとうございます。
Imageでも結構です。よろしくお願いします。


通ってみた  2007-01-29 15:39:07  No: 97768

Stretchを調べてみてください


大吉末吉  2007-01-29 19:30:35  No: 97769

質問は、

(1)マウス操作によるコントロールのサイズの変更
(2)コントトールのサイズ変更時の画像のサイズ追従

のどちらでしょう?

後者なら、Imageコントロールの場合、Stretchを設定すればなら自動でやってくれますが・・・
前者なら、移動と同様マウスイベントで処理を行う必要があります。

移動処理では、単純にマウスの動いた分、位置(Left/Top)を変更していたと思いますが、
サイズ変更では、
・どこ(コントロールの上下左右、4角)でマウスで押したかで、サイズ移動の方向を決定。
・マウスの移動分、サイズを増減
となります。

例えば・・・
コントロールの右端なら、サイズ変更は「左端固定で、左右にサイズ変更」
になるので、
「位置を固定したまま、マウスの移動分、幅(Width)を増減する」
となります。
また、コントロールの左端なら、サイズ変更は「右端固定(つまり、左端か動く)で、左右にサイズ変更」
になるので、
「マウス移動分、位置(Left)をずらして、その分幅(Width)を増減する」
となります。
#例えば、マウスが、右に10移動したら、Leftを10増やし、代わりにWidthを10減らす。

他の方向も同様に考えます。


とらサン  2007-01-29 20:43:33  No: 97770

通ってみた様、大吉末吉様  レスをありがとうございます。

>(1)マウス操作によるコントロールのサイズの変更
>(2)コントトールのサイズ変更時の画像のサイズ追従
>のどちらでしょう?

(1)です。やはりコードを書かないとだめみたいですのアドバイスをいただいたようにやってみます。

となるとよく見られるように
(1)コントロールをクリックすると左右上下四隅、計8点の小さな四角を表示。
(2)上下左右の点移動でその辺だけを変更。(マウスポインターも変更)
(3)四隅の場合は該当する2辺を変更。

この四角をマウスで移動させて、同時に他の四角、本体の画像を追随させるようにしてみたいと思います。  

このスタイルは良く見かけますので簡単な方法がもしもあったら、と思い質問させていただきました。  ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加