Hi Rob,
 
if you use a Label with the "-notify => 0" option to display the bitmap
it
should be possible to place other controls on top of it. 
 
If you need to catch the events for the background bitmap your in
trouble.
There seems to be a bug in the event handling for child-controls in
Win32::GUI. See also Bug Tracker 1588332.
 
Bye,
Uwe

________________________________

Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Im Auftrag
von Perl Rob
Gesendet: Donnerstag, 21. Dezember 2006 15:03
An: Win32 GUI Users Mailing List
Betreff: [perl-win32-gui-users] Need help placing controls on top of
graphics


Hi,
 
I'm attempting to place a scrollable text field on top of the background
image of my window. Unfortunately, if I add the text field to the window
first (i.e. before adding the graphic to the window), then the text
field gets "swallowed up" by the graphic, and the only way to see the
text field is to mouse over it or click it. If, on the other hand, I add
the graphic first, (i.e. before adding the text field), then the text
field is properly displayed but frozen--I can't click inside it or
scroll it down.
 
I've been searching the Win32-GUI archives and reading the Win32-GUI
documentation for several days to no avail, and I've concluded that I
just don't understand how to work with graphics. Any
advice/education/assistance would be greatly appreciated. Below is an
example of my code thus far, which illustrates the "swallowing up"
probem. If you move lines 34-49 to line 19, you can see the freezing
problem.
 
#############################################
 #!c:\perl\bin\perl -w
 
use strict;
use Win32::GUI();
use Win32::GUI::DIBitmap();
 
my $DC;
 
my $main = Win32::GUI::Window->new(
     -name    => 'Main',
     -width    => 799,
     -height   => 577,
     -text    => 'Example... ',
         -resizable  => 0,
     -hasmaximize => 0,
     -dialogui  => 1,
     -topmost   => 1,
     );
 
my $license_agreement_field = $main->AddTextfield(
                            -readonly   => 1,
                            -multiline  => 1,
                            -name     => 'LicenseTextField',
                            -width    => 508,
                            -height    => 347,
                            -top     => 73,
                            -left     =>  15,
                            -background  => [255, 255, 255],
                            -vscroll   => 1,
                            );
 
my $license_agreement_text1 = $license_agreement_field->Append("License
agreement goes here...");
 
$main->AddGraphic (
    -name => "Graphic",
    -pos  => [0, 0],
    -size => [$main->ScaleWidth,$main->ScaleHeight],
    -interactive => 1,
     );
 
my $background = newFromFile Win32::GUI::DIBitmap
('Menu_License_Background.gif');
 
sub Graphic_Paint {
    $DC = $main->Graphic->GetDC();
    if (defined $background) {
        $background->CopyToDC($DC);
    }
    $DC->Validate();
}
 
$main->Show();
Win32::GUI::Dialog();
#############################################
 
 
Thanks in advance,
Rob

Reply via email to