The solution, apparently, is that the reference to the Menu object must be
passed back to the main script; apparently the menu-ref is NOT encapsulated
inside of the Window object that contains it... which is counter-intuitive, and
unlike any other perl module I have ever seen...

----------------------------------------
this pseudo-code does NOT work:

    my $window=Module->new;
    $window->Show();
    Win32::GUI::Dialog();

    package Module;
    $menu = Win32::GUI::MakeMenu (blah blah)
    $window=Win32::GUI::Window->new(-menu   => $menu)
    return $window
-----------------------------------------

this pseudo-code DOES work:

    my ($window, $menu)=Module->new;
    $window->Show();
    Win32::GUI::Dialog();

    package Module;
    $menu = Win32::GUI::MakeMenu (blah blah)
    $window=Win32::GUI::Window->new(-menu   => $menu)
    return ($window, $menu)
-------------------------------------------

I have no idea why it worked on one OS and not the other, but still... it is
the most bizzarre thing I have ever come across while using Perl!  It is such
bizzarre behavior that I am tempted to call it a bug in Win32GUI, rather than
just a quirk...

Anyway, in case anyone else ever has this problem, that is the solution :-)

Merry Christmas everyone!

M



Reply via email to