I just committed 2 new functions for handling windows regions:

New region method:
  my $data = $rgn->GetRgnData();
wraps the win32 API GetRegionData() function

New region constructor:
  my $newrgn = Win32::GUI::Region->ExtCreateRgn($data);
wraps the win32 API ExtCreateRegion() function

Tracker 1469648:
https://sourceforge.net/tracker/index.php?func=detail&aid=1469648&group_id=16572&atid=366572

As a quick test I did the following:

#!perl -w
use strict;
use warnings;

use Win32::GUI();

my $mw = Win32::GUI::Window->new(
    -title => "Region test",
    -size  => [400,300],
);

$mw->Show();
my $DC = $mw->GetDC();

my $rgn = Win32::GUI::Region->CreateRoundRectRgn(0,0,100,100,50,50);
$DC->InvertRgn($rgn);

my $rgndata = $rgn->GetRgnData();
my $newrgn = Win32::GUI::Region->ExtCreateRgn($rgndata);
$newrgn->OffsetRgn(150,150);
$DC->InvertRgn($newrgn);


Win32::GUI::Dialog();
$mw->Hide();
exit(0);
__END__

Regards,
Rob.
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/


Reply via email to