🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.visualbasic
Article #153

Re: OLE Drag & Drop を手動で?

#153
From: AKIYA Saburou
Date: Sat, 11 Apr 1998 00:00
43 lines
2459 bytes
穐谷(あきや)です。

aki wrote in article
 <352e2f29.0@epnews.speed.co.jp>...
> テキストボックスでテキストをOLE Drag & Dropしたいと思っています。
> 設定を自動にすると、とりあえずコーディングなしで実現できますが
> データの受け入れ時の制御等でもう少し柔軟にしたいと思います
> ので手動設定でなんとか実現したいのですがどのような手順を踏め
> ば良いのでしょうか?もしよろしければヒントだけでもお願いします。

簡単な説明になりますが、

ドロップされたものを受け取る場合は、まず、
OLEDragOverイベントでData.GetFormatをチェックして、Effectを設定
します。例えば、テキストだったら
	If Data.GetFormat(vbCFText) Then
		Effect = vbDropEffectCopy
	End If
そして、OLEDragDropイベントで、データーを取得します。
	Text1.Text = Data.GetData(vbCFText)

ドラッグの素(ソース)になる場合は、
MouseDownイベントで、OLEDragメソッドを呼出し、
OLEStartDragイベントで、フォーマットを入れます。この段階で
中身を入れてもいいですが、普通は別のイベントで設定します。
	Call Data.SetData(, vbCFText)	'入れない場合。
	Call Data.SetData(Text1.Text, vbCFText)	'入れる場合。
そして、OLEGiveFeedbackイベントでマウスの状態を管理します。
ドロップされると、もし中身が設定されていないのならば、
OLESetDataイベントが発生します。普通はここで設定します。
	Call Data.SetData(Text1.Text, vbCFText)
そして、最後にOLECompleteDragイベントで後始末をします。
これは、ドロップの有無に関わらず発生します。

玉城さんのホームページ
Visual Basic増強作戦 http://www.vector.co.jp/authors/VA010786/
にも、サンプルがあったと思います。そちらをご覧ください。
そういえば、今月発売されたVBMagazineにも書いてあったと思います。

------------------------------------------------------------
		差出人:	穐谷 三郎
		E-Mail:	akiya@cmpk.or.jp
Technical Details
Message-ID: <6gmq8p$e25@rorty.mim.co.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <352e2f29.0@epnews.speed.co.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 105c2e,662db3165f7b4405
X-Google-Attributes: gid105c2e,public
From: AKIYA Saburou <akiya@cmpk.or.jp>
Subject: Re: OLE Drag & Drop を手動で?
Date: 1998/04/11
Message-ID: <6gmq8p$e25@rorty.mim.co.jp>
X-Deja-AN: 342981369
References: <352e2f29.0@epnews.speed.co.jp>
Content-Type: text/plain; charset=iso-2022-jp
Organization: CompKazumi Internet Service
Mime-Version: 1.0
Newsgroups: fj.lang.visualbasic