Ken,

Rob May has written a module for creating splash screens that you may find
useful:

http://search.cpan.org/~robertmay/Win32-GUI-SplashScreen-0.04/<http://search.cpan.org/%7Erobertmay/Win32-GUI-SplashScreen-0.04/>

Regards,
Glenn Munroe

On 5 March 2010 23:53, Kevin Marshall <kejoh...@hotmail.com> wrote:

>  Ken,
>
> Instead of using -pushstyle, you need to use -popstyle. As for the
> constants needed, you will need to use WS_CAPTION to remove the title bar
> and WS_THICKFRAME to remove the window's sizing border. Here is an example:
>
> $splash = Win32::GUI::Window->new(
>   -name => 'splash',
>   -size => [200,200],
>   -popstyle => WS_CAPTION | WS_THICKFRAME,
> );
> __END__
>
> There are a number of other window constants that can be used when creating
> a splash window. If you have the Windows SDK, you can check the
> documentation for a full list.
>
> Hope this helps,
>
> Kevin.
>
> ------------------------------
> Date: Fri, 5 Mar 2010 14:44:24 -0500
> From: kl...@psu.edu
> To: perl-win32-gui-users@lists.sourceforge.net
> Subject: [perl-win32-gui-users] Borderless Main Window
>
>
>  Hello,
>
> Let me preface my question by saying that I haven’t used Win32::GUI very
> much, so I might be missing something obvious.
>
>
>
> I want to create a borderless window (splash screen) and have done so using
> the –style option when creating the new window.
>
> Unfortunately, this option is deprecated, and I get a message informing me
> of that fact whenever I run the application.
>
> Looking at the documentation, it appeared that I could use the –pushstyle
> of –addstyle option when creating the window. However, the window has a
> border when either of these options is used.
>
> Can anyone point out the error of my ways?  Actual code is below.
>
> Thanks, Ken Slater
>
>
>
> use strict;
>
> use warnings;
>
> use File::Basename;
>
> use Getopt::Long;
>
> use Win32::API;
>
> use Win32::GUI();
>
> use Win32::GUI::Constants;
>
>
>
> use Win32::OLE('in');
>
>
>
> my ( $runDir );
>
> BEGIN
>
> {
>
>    $runDir = Win32::GetFullPathName(dirname($0));
>
> }
>
>
>
> my ($help, %options, %overridingOptions);
>
> $options{iniFile} = "$runDir/stayOnTop.ini";
>
>
>
>
>
> my ($execname) = fileparse( "$0", '' );
>
>
>
> sub usage
>
> {
>
>     print STDERR <<USAGE;
>
>
>
> $execname ...
>
>
>
> USAGE
>
>     return 0;
>
> } # end sub usage
>
>
>
>
>
> GetOptions( "ini=s"   => \$options{iniFile},
>
>             "bg=s"    => \$overridingOptions{backgroundFile},
>
>             "t=i"     => \$overridingOptions{timeout},
>
>             "h!"      => \$help,
>
>             "help!"   => \$help);
>
> if ( $help )
>
> {
>
>    usage;
>
>    exit 0;
>
> }
>
>
>
> pullSettings();
>
>
>
> use constant wbemFlagReturnImmediately => 0x10;
>
> use constant wbemFlagForwardOnly => 0x20;
>
>
>
> #------------------------------------------------------------
>
> #  Get height and width of display
>
> #------------------------------------------------------------
>
> my $computer = ".";
>
> my $objWMIService = Win32::OLE->GetObject
>
>     ("winmgmts:\\\\$computer\\root\\CIMV2")
>
>    or die "WMI connection failed.\n";
>
> my $colItems = $objWMIService->ExecQuery
>
>     ("SELECT * FROM Win32_VideoController","WQL",
>
>      wbemFlagReturnImmediately | wbemFlagForwardOnly);
>
>
>
> my ( $screenWidth, $screenHeight );
>
>
>
> foreach my $objItem (in $colItems)
>
> {
>
>       $screenWidth  = $objItem->{CurrentHorizontalResolution};
>
>       $screenHeight = $objItem->{CurrentVerticalResolution};
>
> }
>
>
>
> #------------------------------------------------------------
>
> #  Create GUI Window
>
> #------------------------------------------------------------
>
> my $WS_POPUP = Win32::GUI::Constants::constant('WS_POPUP');
>
> my $mw = Win32::GUI::Window->new(
>
>                 -title => 'NOBORDER (I hope)',
>
>         -bg  => 'black',
>
>                 -pos => [0,0],
>
>                 -size => [$screenWidth,$screenHeight],
>
>         #  The -stype option was added to make borderless
>
>         #  windows. Get a warning that this option is deprecated.
>
>         -style => $WS_POPUP,
>
>         #
>
>         #  Neither addstyle or pushstyle seem to get rid of the border
>
>         #-addstyle  => $WS_POPUP,
>
>         #-pushstyle => $WS_POPUP,
>
> );
>
>
>
> #------------------------------------------------------------
>
> #  Force this window to stay on top of other windows.
>
> #------------------------------------------------------------
>
> my $HWND_TOPMOST = Win32::GUI::Constants::constant('HWND_TOPMOST');
>
> my $SWP_NOSIZE   = Win32::GUI::Constants::constant('SWP_NOSIZE');
>
> my $SWP_NOMOVE   = Win32::GUI::Constants::constant('SWP_NOMOVE');
>
>
>
> $mw->SetWindowPos($HWND_TOPMOST,0,0,$screenWidth,$screenHeight,
>
>                   $SWP_NOSIZE|$SWP_NOMOVE);
>
>
>
> #------------------------------------------------------------
>
> #  Set the timer to exit this application after the specified
>
> #  number of milliseconds.
>
> #------------------------------------------------------------
>
> $options{timeout} = 5000 unless defined($options{timeout});
>
> my $t1 = $mw->AddTimer('T1', $options{timeout});
>
>
>
> #------------------------------------------------------------
>
> #  Set up the image to be displayed on the screen
>
> #------------------------------------------------------------
>
> my $bitmap = Win32::GUI::Bitmap->new($options{backgroundFile},
>
>                                     0,$screenWidth,$screenHeight);
>
>
>
> #create a label in which the bitmap will be placed
>
> my $bitmapLabel = $mw->AddLabel(
>
>     -name     => "Bitmap",
>
>     -left     => 0,
>
>     -top      => 0,
>
>     -width    => $screenWidth,
>
>     -height   => $screenHeight,
>
>     -bitmap   => $bitmap,
>
> );
>
>
>
> #------------------------------------------------------------
>
> #  Display the window
>
> #------------------------------------------------------------
>
> $mw->Show();
>
> Win32::GUI::Dialog();
>
>
>
> #------------------------------------------------------------
>
> # Subroutine called when timer expires
>
> #------------------------------------------------------------
>
> sub T1_Timer
>
> {
>
>    exit;
>
> }
>
>
>
> sub pullSettings
>
> {
>
>    local $/ = undef;
>
>    open my $INIFH, '<', $options{iniFile} or do
>
>    {
>
>       Win32::MsgBox("FATAL: Unable to open $options{iniFile}: $^E",
>
>                     0, "StayOnTop.pl");
>
>       exit;
>
>    };
>
>    my $lines = <$INIFH>;
>
>    close $INIFH;
>
>
>
>    my $re = qr{<([^/][^>]+)>\s*([^<]+)};
>
>    %options = $lines =~ /$re/gs;
>
>
>
>    foreach my $key ( keys %options )
>
>    {
>
>       $options{$key} = $overridingOptions{$key}
>
>          if defined($overridingOptions{$key});
>
>    }
>
> }
>
> ------------------------------
> Find out now. Link all your email accounts and social updates with
> Hotmail. <http://windowslive.ninemsn.com.au/oneinbox?ocid=T162MSN05A0710G>
>
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Perl-Win32-GUI-Users mailing list
> Perl-Win32-GUI-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
> http://perl-win32-gui.sourceforge.net/
>



-- 
Glenn
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Perl-Win32-GUI-Users mailing list
Perl-Win32-GUI-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
http://perl-win32-gui.sourceforge.net/

Reply via email to