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();