The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

use Win32::GUI;

$W = new GUI::Window(
    -left => 100,
    -top => 100,
    -width => 400,
    -height => 400,
    -title => "EMF Creator",
    -name => "Window",
);

print "About to show...\n";

$W->Show();

Win32::GUI::Dialog();

sub Window_Terminate {
    return -1;
}

sub Window_Resize {
	if($W) {
	    $METAFILE = $W->CreateEnhMetaFile("prova.emf");
	    print "CreateEnhMetaFile returned $DC\n";
	    Draw($METAFILE);
	    $META = Win32::GUI::CloseEnhMetaFile($METAFILE);
	    print "CloseEnhMetaFile returned $META\n";
	    $rc = Win32::GUI::DeleteEnhMetaFile($META);
	    print "DeleteEnhMetaFile returned $rc\n";
	    Draw($W->GetDC);
	}
}

sub Draw {
	my($DC) = @_;
    $X = $W->ScaleWidth;
    $Y = $W->ScaleHeight;
    $r = 0;
    $g = 0;
    $b = 0;
    if($X > 500) {
        $DC->MoveTo(0, $Y/2);
        $DC->LineTo($X, $Y/2);
        $r = 255;
    }
    if($Y > 500) {
        $DC->MoveTo(X/2, 0);
        $DC->LineTo($X/2, $Y);
        $g = 255;
    }
  
    $DC->LineTo(0, 0);
    $DC->LineTo($X, $Y);
    $DC->LineTo($X, 0);
    $DC->LineTo(0, $Y);
    $DC->Circle(0, 0, $X, $Y);
    $DC->SetTextColor($r, $g, $b);
    $DC->SetBkMode(1);
    ($TW, $TH) = $DC->GetTextExtentPoint32("$X x $Y");
    $DC->TextOut($X/2-$TW/2, $Y/2-$TH/2, "$X x $Y");
}