***** infoCopter.com/perl *****
Win32::GUIWindows GUI Programming with Win32::GUISee also [ perl/GUI-Programming/index.html ] processinfo.plDownload [ processinfo.pl ] - [ bitmap.pl ] ListView Sample[ Find more examples at http://jeb.ca/perl/win32-gui-docs/index.pl/code_samples ]
A Hello, World! Example with Win32::GUI
#!/usr/bin/perl -w
use strict;
use Win32::GUI;
# -- GLOBAL
my $main;
my $label;
my $ncw;
my $NCH;
&main();
sub main() {
my $text = defined($ARGV[0]) ? $ARGV[0] : "Hello, world";
$main = Win32::GUI::Window->new(
-name => 'Main',
-text => 'Perl',
);
my $font = Win32::GUI::Font->new(
-name => "Comic Sans MS",
-size => 24,
);
$label = $main->AddLabel(
-text => $text,
-name => 'label',
-font => $font,
-foreground => [255, 0, 0],
);
$ncw = $main->Width() - $main->ScaleWidth();
$NCH = $main->Height() - $main->ScaleHeight();
my $w = $label->Width() + $ncw;
my $h = $label->Height() + $NCH;
my $desk = Win32::GUI::GetDesktopWindow();
my $dw = Win32::GUI::Width($desk);
my $dh = Win32::GUI::Height($desk);
my $x = ($dw - $w) / 2;
my $y = ($dh - $h) / 2;
$main->Change(-minsize => [$w, $h]);
$main->Move($x, $y);
$main->Show();
Win32::GUI::Dialog();
}
sub Main_Terminate {
-1;
}
sub Main_Resize {
my $w = $main->Width();
my $h = $main->Height();
my $lw = $label->Width();
my $lh = $label->Height();
if ($lw > ($w - $ncw)) {
$main->Width($lw + $ncw); # Remember the non-client width!
}
else {
$label->Left(($w - $ncw - $lw) / 2);
}
if ($lh > ($h - $NCH)) {
$main->Height($lh + $NCH); # Remember the non-client height!
}
else {
$label->Top(($h - $NCH - $lh) / 2);
}
}
[ Find more examples at http://jeb.ca/perl/win32-gui-docs/index.pl/code_samples ] |