|
From: <Dav...@la...> - 2008-09-26 17:35:48
|
Hi All,
I am trying to code Chevron menus and am running into trouble with
RemoveMenu().
The code below should work, but alas, it does not remove any of the menu
items and the full
menu is displayed off the Rebar Chevron no matter how may items I attempt
to remove.
Note: I AM calling DrawMenuBar after modifying the menu.
Does anyone have any experience or advice on this issue?
#------------------------------------------------------------------------------
sub Rebar_ChevronPushed {
my($bandIndex, $left, $top, $right, $bottom) = @_;
my %band = $main->Rebar->GetBandInfo($bandIndex);
my $toolbar = $band{-child}; #Handle to Rebar Band Child..
say "Rebar Band Child Handle: ", $toolbar if $DEBUG;
my $buttonCount = Win32::GUI::Toolbar::ButtonCount($toolbar);
my $toolbarWidth = Win32::GUI::Width($toolbar);
say "Button Count: ", $buttonCount if $DEBUG;
foreach my $index(1..$buttonCount){
my ($left, $top, $right, $bottom) =
Win32::GUI::Toolbar::GetRect($toolbar, $index);
if ($right > $toolbarWidth) {
say "Button ", $index, " is Hidden" if $DEBUG;
say join(", ", Win32::GUI::Toolbar::GetRect($toolbar, $index)) if
$DEBUG;
} else {
say "Removing Menu Position: ", $index - 1;
$toolbarMenus->RemoveMenu($index - 1, MF_BYPOSITION);
}
}
$main->Rebar->DrawMenuBar();
say "Chevron on Band ", $bandIndex, " pushed... Pop a menu!" if $DEBUG;
my $menu = $toolbarMenus->{Toolbar};
$main->TrackPopupMenu(
$menu,
$main->ClientToScreen($left, $bottom),
);
return 0;
}
#------------------------------------------------------------------------------
TIA!
David J. Keith
Application Developer
Latham International ● 787 Watervliet-Shaker Rd. ● Latham, NY 12110
Office: 518.951.1063 |