0

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() が完了する前に、ドラッグソースのブロックを解除する可能性はありますか?

4

1 に答える 1