> -----Original Message-----
> From: Glenn Linderman [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 24, 2003 10:07 PM
> To: Win32 GUI
> Subject: [perl-win32-gui-users] no taskbar entry for a Win32::GUI
> program
>
>
> From time to time the question has been asked on this list
> about how to
> have a Win32::GUI program running, but have no entry in the taskbar.
>
> When hidden and disabled, no entry will appear, but when shown or
> enabled, it will come back.
>
> Unless, when you create the window, you use:
>
> -toolwindow => 1,
>
> There is a more complicated solution, involving creating a fake main
> window, making a real main window with the fake main window
> as a parent,
> and then deleting the fake main window. This technique also
> works, but
> is much more complex than the option above.
Glenn, I have not tried the above, but if it is what I "think" it is, then the
third solution (one I currently use in an application) is to have your minimize
and maximize events explicitly call hide() and disable() / show() and Enable()
respectivly. I wrap these up (with other stuff) in a if ($window->IsVisable())
block:
sub Window_Minimize {
if ($Window->IsVisible){
logit ("Window is Visible\n") if ($debug);
$Window->Disable();
logit ("Window Disabling\n") if ($debug);
$Window->Hide();
logit ("Window Hiding\n") if ($debug);
$Window->CenterOnScreen(); #### Custom function added so it
can be called as a method (it is a hack and probably not a good idea, but it
does what I need it to do with no problems)
$Window->NI->Modify( -id => 1, -tip => "Show PCKeys");
$PopupMenu->{RestoreItem}->Enabled(1);
$PopupMenu->{CloseItem}->Enabled(0);
return 0;
}
}
Then, since it is not visable in Task bar, etc, the only way to get back is via
my TrayIcon and here I put code to reverse the process:
ub NI_Click { ##### NI is the name of the trayICON
if ($Window->IsVisible){
$Window->Disable();
$Window->Hide();
$Window->CenterOnScreen(); #### Custom function added so it
can be called as a method (it is a hack and probably not a good idea, but it
does what I need it to do with no problems)
$Window->NI->Modify( -id => 1, -tip => "Show PCKeys");
$PopupMenu->{RestoreItem}->Enabled(1);
$PopupMenu->{CloseItem}->Enabled(0);
return 1;
}
else {
$Window->NI->Modify( -id => 1,-tip => "Hide PCKeys");
$PopupMenu->{RestoreItem}->Enabled(0);
$PopupMenu->{CloseItem}->Enabled(1);
$Window->Enable();
$Window->CenterOnScreen(); #### Custom function added so it
can be called as a method (it is a hack and probably not a good idea, but it
does what I need it to do with no problems)
$Window->Show();
$Window->SetForegroundWindow();
$CBdropdown->SetFocus();
return 1;
}
}
When I get around to it, I will try your find. Thanks!