クラス: wxDataObject, wxTextDataObject, wxDropSource, wxDropTarget, wxTextDropTarget, wxFileDropTarget
wxWidgets でドラッグ・アンド・ドロップを使用するには、setup.h
で wxUSE_DRAG_AND_DROP
を定義する必要があることに注意してください。
参照: wxDataObject の概要 と ドラッグ・アンド・ドロップのサンプル
クリップボードへの/からのデータ転送はドラッグ・アンド・ドロップによるデータ転送と非常に似ており、これらを実装するコードもほとんど同じです。特に、両方のデータ転送の仕組みとも、ある種の wxDataObject にデータを格納し、wxDataFormat クラスを使用してフォーマットを識別します。
ドラッグ元 になる、つまり、ユーザが他の場所へドラッグするデータを提供するには次の手順を実装します:
wxTextDataObject my_data("This text will be dragged.");
wxDropSource dragSource( this ); dragSource.SetData( my_data ); wxDragResult result = dragSource.DoDragDrop( true );
wxDragResult
列挙型のいずれかの値を 影響コード (effect code) として返却します:switch (result) { case wxDragCopy: // データをコピーする break; case wxDragMove: // データを移動する break; default: // 何も行わない break; }
ドロップ先 になる、つまり、ユーザのドロップしたデータを受け付けるためには次の手順を実施します: