いつも参考にさせていただいてます。質問させていただきます。
VB6.0でのプログラムを前提としたときに、動的にコントロール
を配置し、マウスでコントロールの大きさ・位置等を自由に変更
するような処理は可能なのでしょうか?具体的にはデザイン画面
そのものを実行画面として処理するような感じなのですが・・・。
漠然としすぎている質問で申し訳ありませんが、よろしくお願い
します。
すみません。追記です。
例えばユーザーの操作によって、テキストボックスを置いたり、
線を引いて太さ・長さ等を自由に変えたりです。
イベントが取れるコントロールの移動等はすでに実現していて、
テキストボックス等の大きさ変更もAPIを使って実現したのです
が、シェイプのようなイベントを取れないコントロールに対して
マウスで移動したり大きさを変えたりといったことは可能なのか
どうか知りたいのです。。
>シェイプのようなイベントを取れないコントロール
フォームのイベントで取れば?
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
With Me.Shape1
If (Y >= .Top And Y <= .Top + .Height) _
And (X >= .Left And X <= .Left + .Width) Then
.Top = .Top + 500
End If
End With
End Sub
特攻隊長まるるうさん、さっそくのお答えありがとうございます。
コントロールに対するイベントがないと処理できないのかと思い込
んでました。。大変参考になりました。
ところで、マウスによる大きさの変更の方なのですが、現在、テキ
ストボックス等はAPIのSetWindowLongを使ってWS_THICKFRAMEを送っ
て大きさ変更可能にしているのですが、シェイプはウィンドウハン
ドルがないようなのですが、同じような処理をすることはできます
でしょうか?(T_T)
>APIのSetWindowLongを使って
出来ないように思いますが…ボクは知りません。
>マウスによる大きさの変更
API を使わなくてもカーソルを変更してカーソルが
変更されている時に MouseDown と MouseUp で距離
を計算すれば出来そうですが…
特攻隊長まるるうさん、お返事ありがとうございます。
おっしゃるとおり、大きさの変更もフォームへのイベ
ントを処理してできました。ありがとうございました。m(_ _)m