wxperl を使用して、ファイルをウィンドウにドラッグした後、長期的な機能を開始したいと考えています。DropTarget のコードは次のとおりです。
package FilesDropTarget;
use strict;
use Wx qw[:allclasses];
use base qw(Wx::FileDropTarget);
sub new {
my $class = shift;
my $caller = shift;
my $fref = shift;
my $this = $class->SUPER::new( @_ );
$this->{caller} = $caller;
$this->{fref} = $fref;
return $this;
}
sub OnDropFiles {
my( $this, $x, $y, $files ) = @_;
&{$this->{fref}}($this->{caller},@$files);
return 1;
}
このモジュールは経由で使用されます
$frame->{TextControl}->SetDropTarget( FilesDropTarget->new($frame,\&runner) );
(OnDropFiles は、ドロップされたファイルをパラメーターとして関数 &runner() を呼び出します。) 関数 &runner() が動作している間、Windows のドラッグ ソース ウィンドウがブロックされることを除いて、すべて問題ありません。ドラッグ元ウィンドウはOnDropFiles
、1 が返された後、つまり &runner() の準備が整った後に再び使用可能になります。
&runner() が完了する前に、ドラッグソースのブロックを解除する可能性はありますか?