掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ドロップする場所を指定するには? (ID:82818)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
環境がわからないので、とりあえずVB6を例に挙げてみます。 VB6でのドラッグ処理には、 (1) MouseMoveイベントを使って、自力でドラッグ処理を実装する。 (2) DragDropイベントを使って、旧式のドラッグ処理を実装する。 (3) OLEDragDropイベントを使って、OLEドラッグ処理を実装する。 という、3種類の実装パターンがあります。 ここでは、先に示したURLにある「OLEドラッグ」について解説してみます。 > 指定外のところに画像を移動させようとすると×のマークがでるみたいに・・・。 例えば、Image1 の画像をドラッグする際に、Picture1 にはドロップ可能、 Picture2 には不可、とするなら、以下のようになります。 ----------- 新規プロジェクトで、FormにPictureBoxを2つ、Imageを1つだけ貼ってください。 そして、Image1にだけ画像を指定しておき、さらに以下のように設定します。 Image1 …… OLEDragMode は [自動] にしておいてください。 Picture1 …… OLEDropMode を [自動] に設定しておいてください。 Picture2 …… OLEDropMode を [なし] のままにしておいてください。 # Image がドロップ元(ソース)、PictureBoxがドロップ先(ターゲット)となります。 # なお、「OLEDragMode」と「OLEDropMode」を混同しないように注意してください。 # 前者はドラッグ元(ソース)に指定し、後者はドロップ先(ターゲット)に指定します。 ----------- 設定が完了したら、それを実行してみてください。 [Ctrl]を押しながらドラッグすれば、Image1の画像がPicture1にコピーされ、 [Ctrl]無しでドラッグすれば、Image1の画像がPicture1に移動されます。 これは、自動ドラッグモードを利用した、簡易的なドラッグ処理です。 融通がきかないので、細かい設定には不向きですが、プログラムを 1行も書く事無く、ドラッグ動作を実装できます。とても簡単ですね。 しかし、自動モードでは細かい指定ができません。 そういう時には、手動モードの出番です。 # 長くなるので、投稿を2回に分けます。m(_ _)m
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.