use strict;
use warnings;
use Win32::API();
Win32::API->Import('user32', 'SetMenuItemInfo', 'LILP', 'L') or die;
use Win32::GUI ();
use Win32::GUI::DIBitmap();
sub MIIM_BITMAP() {0x00000080}
my $menu = Win32::GUI::MakeMenu(
'Popup' => 'Popup',
'>Item &1' => { -name => 'Item1', -onClick => sub { print "Item1\n"; 0; }, },
'>-' => 'Seperator',
'>Item &4' => { -name => 'Item4', -onClick => sub { print"Item4\n"; 0; }, },
);
my $mw = Win32::GUI::Window->new(
-size => [400,300],
-menu => $menu,
-name => "test",
);
my $hbap = new Win32::GUI::Bitmap ('aon2.bmp');
my $hbmp = $hbap->{-handle};
my $hmenu = $menu->{Popup}->{-handle};
my $mii = pack( 'IIIIILLLLLIL',
12 * 4, # cbsize = sizeof(MENUITEMINFO)
MIIM_BITMAP, # fMask = MIIM_BITMAP
0, # fType - unused
0, # fState - unused
0, # wID - unused
0, # hSubMenu - unused
0, # hbmpChecked - unused
0, # hbmpUnchecked - unused
0, # dwItemData - unused
0, # dwTypeData - unused
0, # cch - unused
$hbmp, # hbmpItem
);
SetMenuItemInfo($hmenu, 2, 1, $mii);
$mw->Center();
$mw->Show();
Win32::GUI::Dialog();
####
use Win32::API();
Win32::API->Import('user32', 'SetMenuItemInfo', 'LILP', 'L') or die;
Win32::API->Import('user32', 'SetMenuInfo', 'LP', 'L') or die;
use Win32::GUI qw(CW_USEDEFAULT SM_CXMENUCHECK SM_CYMENUCHECK TRANSPARENT);
use Win32::GUI::DIBitmap();
sub MIIM_BITMAP() {0x00000080}
sub MIM_STYLE() {0x00000010}
sub MIM_BACKGROUND() {0x00000002}
my $menu = Win32::GUI::MakeMenu(
'Popup' => 'Popup',
'>Item &1' => { -name => 'Item1', -onClick => sub { print "Item1\n"; 0; }, },
'>-' => 'Seperator',
'>Item &4' => { -name => 'Item4', -onClick => sub { print"Item4\n"; 0; }, },
);
$po = new Win32::GUI::Brush( -color => 000);
my $mw = Win32::GUI::Window->new(
-left => CW_USEDEFAULT,
-size => [400,300],
-menu => $menu,
-name => "test",
);
$hbap = new Win32::GUI::Bitmap ('aon2.bmp');
$hbmp = $hbap->{-handle};
$hmenu = $menu->{Popup}->{-handle};
my $mi = pack( 'LLLILLL',
12 * 4, # cbsize = sizeof(MENUITEMINFO)
MIM_BACKGROUND, # fMask = MIM_STYLE
0,
0, # cyMax - unused
$po, # hbrBack - unused
0, # dwContextHelpID - unused
0, # dwMenuData - unused
);
SetMenuInfo($hmenu, $mi);
my $mii = pack( 'IIIIILLLLLIL',
12 * 4, # cbsize = sizeof(MENUITEMINFO)
MIIM_BITMAP, # fMask = MIIM_BITMAP
0, # fType - unused
0, # fState - unused
0, # wID - unused
0, # hSubMenu - unused
0, # hbmpChecked - unused
0, # hbmpUnchecked - unused
0, # dwItemData - unused
0, # dwTypeData - unused
0, # cch - unused
$hbmp, # hbmpItem
);
SetMenuItemInfo($hmenu, 2, 1, $mii);
$mw->Center();
$mw->Show();
Win32::GUI::Dialog();
####
use Win32::API();
Win32::API->Import('user32', 'SetMenuItemInfo', 'LILP', 'L') or die;
Win32::API->Import('user32', 'SetMenuInfo', 'LP', 'L') or die;
use Win32::GUI qw(CW_USEDEFAULT SM_CXMENUCHECK SM_CYMENUCHECK TRANSPARENT);
use Win32::GUI::DIBitmap();
sub MIIM_BITMAP() {0x00000080}
sub MIM_STYLE() {0x00000010}
sub MIM_BACKGROUND() {0x00000002}
my $menu = Win32::GUI::MakeMenu(
'Popup' => 'Popup',
'>Item &1' => { -name => 'Item1', -onClick => sub { print "Item1\n"; 0; }, },
'>-' => 'Seperator',
'>Item &4' => { -name => 'Item4', -onClick => sub { print"Item4\n"; 0; }, },
);
$po = new Win32::GUI::Brush( -color => 000);
my $mw = Win32::GUI::Window->new(
-left => CW_USEDEFAULT,
-size => [400,300],
-menu => $menu,
-name => "test",
);
$hbap = new Win32::GUI::Bitmap ('aon2.bmp');
$hbmp = $hbap->{-handle};
$hmenu = $menu->{Popup}->{-handle};
my $mi = pack( 'LLLILLL',
12 * 4, # cbsize = sizeof(MENUITEMINFO)
MIM_BACKGROUND, # fMask = MIM_STYLE
0,
0, # cyMax - unused
$po, # hbrBack - unused
0, # dwContextHelpID - unused
0, # dwMenuData - unused
);
SetMenuInfo($hmenu, $mi);
my $mii = pack( 'IIIIILLLLLIL',
12 * 4, # cbsize = sizeof(MENUITEMINFO)
MIIM_BITMAP, # fMask = MIIM_BITMAP
0, # fType - unused
0, # fState - unused
0, # wID - unused
0, # hSubMenu - unused
0, # hbmpChecked - unused
0, # hbmpUnchecked - unused
0, # dwItemData - unused
0, # dwTypeData - unused
0, # cch - unused
$hbmp, # hbmpItem
);
SetMenuItemInfo($hmenu, 2, 1, $mii);
$mw->Center();
$mw->Show();
Win32::GUI::Dialog();