Доброй ночи, кто нить работал с метафайлами в библиотеке Win32::GUI. дело в том что как я не делал но файл не создается. Пробовал много способов его создать но CreateEnhMetaFile не создает файл.
Гуглил нашел такой пример:
Код | use Win32::GUI;
$W = new Win32::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 = Win32::GUI::CreateEnhMetaFile($W->GetDC,"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"); }
|
Этот код тоже не работает, уже не знаю что и делать, если кто работал с метафайлами подскажите где я не прав |