使用 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() 并将删除的文件作为参数。)一切都很好,除了 Windows 上的拖动源窗口在函数 &runner() 工作时被阻止,这可能是一个长期的操作。拖动源窗口在返回 1 后再次可用OnDropFiles
,因此在 &runner() 准备好之后。
是否有机会在 &runner() 完成之前解除对拖动源的阻塞?