Sensational! Thanks Joe, 

I tried all sorts of things to get rid of it. However, I skipped that
one completely, wrongly assuming it was a vertical divider between the
button objects, similar to TBSTYLE_SEP.

Chris

On Thu, 2004-12-02 at 01:15, Frazier, Joe Jr wrote:

> After playing with this for a while:
>  
>  
> $TB = new Win32::GUI::Toolbar( 
>     $W->Rebar, 
>     -name   => "Toolbar", 
>     -width  => 100, 
>     -style  => 2048 + 8 + 4, 
>     -width  => 100, 
>     -height => 22, 
>     -nodivider => 1,   # add this to remove the line above the
> toolbar.
>  
> ); 
> 
>  
> 
> Joe Frazier, Jr.
> Senior Support Engineer
> 
> Peopleclick Service Support
> Tel:  +1-800-841-2365
> E-Mail: [EMAIL PROTECTED]
> 
>  
> 
>         
>         ______________________________________________________________
>         From: [EMAIL PROTECTED]
>         [mailto:[EMAIL PROTECTED] On
>         Behalf Of Chris Wearn
>         Sent: Wednesday, December 01, 2004 7:51 AM
>         To: perl-win32-gui-users@lists.sourceforge.net
>         Subject: [perl-win32-gui-users] Revisited - Rebar and Toolbars
>         
>         
>         Hi All,
>         
>         Have spent a few hours revisiting the old threads regarding
>         the use of the Rebar control.
>         
>         It would appear that you can only have one control per Band,
>         and this was overcome by inserting a borderless window into
>         each band.
>         
>         However, reading the documentation from MSDN and an O'Reilly
>         'Visual Basic Controls - in a nutshell' on topics for
>         "coolbar" (rebar), it mentions that each band of the rebar
>         control serves as a container and that the most common use is
>         to be placed on an SDI or MDI window, so that multiple TOOLBAR
>         controls can be contained within it, one in each Band object.
>         This then allows as many controls as you need to be placed in
>         the Toolbar, which is then made a Child of the Band.
>         
>         An example that I found, demonstrating this is at the end of
>         this email.
>         
>         I noticed that I could not "AddToolbar" to a Band or Rebar and
>         had to use the 'new' method (as per the example).
>         
>         This method all seems to work fine, even the mouse-over (hot)
>         type image changes work, HOWEVER... If you run the example,
>         you will notice a thin line above the toolbar. This does not
>         appear to be part of the Band or Rebar settings and looks like
>         it may be the BorderStyle of the Toolbar.
>         
>         MS and VB documentation lists a default property of
>         "ccFixedSingle" but should be changed to "ccNone" when used in
>         a Rebar.
>         
>         I have searched all the Win32 API constants I can find, and
>         can't work out how to set or remove this property either as a
>         -borderstyle => 1, method or -style => TB_FIXEDSINGLE
>         (example) style.
>         
>         Anyone have any ideas... or is it missing a bit in the XS ??
>         
>         Rgds
>         
>         Chris Wearn
>         
>         # ====== Rebar.pl example ==============
>         
>         use Win32::GUI; 
>         
>         # just for debugging/testing purposes... 
>         use Win32::API; 
>         $GetDlgCtrlID = new Win32::API("user32", "GetDlgCtrlID", [N],
>         N); 
>         
>         $W = new Win32::GUI::Window( 
>             -name => "Window", 
>             -text => "Win32::GUI::Rebar test", 
>             -left => 100, 
>             -top => 100, 
>             -width => 200, 
>             -height => 300, 
>         ); 
>         $W->Text("Win32::GUI::Rebar test"); 
>         
>         new Win32::GUI::Rebar( 
>             $W, 
>             -name => "Rebar", 
>             -text => "I'm a placeholder", 
>             -left => 0, 
>             -top => 0, 
>             -width => 200, 
>             -height => 50, 
>             -menu => 33, 
>         ); 
>         if(!$W->Rebar) { 
>             print "Error creating Rebar: ", Win32::GetLastError(),
>         "\n"; 
>         } 
>         
>         $TB = new Win32::GUI::Toolbar( 
>             $W->Rebar, 
>             -name   => "Toolbar", 
>             -width  => 100, 
>             -style  => 2048 + 8 + 4, 
>             -width  => 100, 
>             -height => 22, 
>         ); 
>         
>         $B = new Win32::GUI::Bitmap("tools.bmp"); 
>         
>         $TB->SetBitmapSize(16, 16); 
>         
>         $TB->AddBitmap($B, 3); 
>         
>         $TB->AddString("One"); 
>         $TB->AddString("Two"); 
>         $TB->AddString("Three"); 
>         
>         $TB->AddButtons( 
>             3, 
>             0, 1, 4, 0, 0, 
>             1, 2, 4, 0, 1, 
>             2, 3, 4, 0, 2, 
>         ); 
>         
>         $BK = new Win32::GUI::Bitmap("zapotec.bmp"); 
>         
>         $W->Rebar->InsertBand( 
>             -child => $TB, 
>             -width => 16*4, 
>             -minwidth => 100, 
>             -minheight => $TB->Height*2, 
>             -bitmap => $BK, 
>         ); 
>         
>         $E = new Win32::GUI::Textfield( 
>         #     $W->Rebar, 
>             $W, 
>             -name       => "Textfield", 
>             -text       => "Hello world!", 
>             -width      => 100, 
>             -height     => 22, 
>             -background => [0, 255, 0], 
>             -foreground => [255, 0, 0], 
>             -menu       => 55, 
>         ); 
>         
>         $W->Rebar->InsertBand( 
>             -text => "Text:", 
>             -child => $E, 
>             -width => 100, 
>             -minwidth => 100, 
>             -minheight => $E->Height, 
>             -background => [0, 255, 0], 
>             -foreground => [255, 128, 128], 
>         ); 
>         
>         $W->AddTextfield( 
>             -name => "Info", 
>             -left => 0, 
>             -top  => $W->Rebar->Height, 
>             -width => $W->ScaleWidth, 
>             -height => $W->ScaleHeight-$W->Rebar->Height, 
>             -multiline => 1, 
>         ); 
>         
>         print "R.BANDCOUNT = ", $W->Rebar->SendMessage(1024+12, 0, 0),
>         "\n"; 
>         print "R.ROWCOUNT = ", $W->Rebar->SendMessage(1024+13, 0, 0),
>         "\n"; 
>         print "R.ROWHEIGHT = ", $W->Rebar->SendMessage(1024+14, 0, 0),
>         "\n"; 
>         
>         $W->Show(); 
>         
>         # $W->Rebar->Show(); 
>         
>         Win32::GUI::Dialog(); 
>         
>         sub Window_Terminate { 
>             return -1; 
>         } 
>         
>         sub Window_Resize { 
>             $W->Rebar->Resize($W->ScaleWidth, $W->ScaleHeight); 
>             $W->Info->Move(0, $W->Rebar->Height); 
>             $W->Info->Resize( 
>                 $W->ScaleWidth, 
>                 $W->ScaleHeight-$W->Rebar->Height, 
>             ); 
>         } 
>         
>         sub Toolbar_ButtonClick { 
>             my($button) = @_; 
>             $W->Info->Text("You pressed the button:\r\n".$button); 
>             $i = $GetDlgCtrlID->Call($W->Rebar->{-handle}); 
>             print "Rebar.ID = $i\n"; 
>             $i = $GetDlgCtrlID->Call($W->Textfield->{-handle}); 
>             print "Textfield.ID = $i\n"; 
>         } 
>         
>         sub Textfield_Change { 
>             $W->Info->Text("You typed:\r\n".$E->Text); 
>         } 
>         
>         sub Rebar_HeightChange { 
>             if(exists($W->{Info})) { 
>                 $W->Info->Move(0, $W->Rebar->Height); 
>                 $W->Info->Resize( 
>                     $W->ScaleWidth, 
>                     $W->ScaleHeight-$W->Rebar->Height, 
>                 ); 
>             } 
>         } 

Reply via email to