Thank you both for your comments. I won't repeat them because of size.
David;
I do have a concrete example (given below).
Behavior:
1. A window containing a list view w/caption and scroll bar is displayed.
2. On clicking the terminate ('X') in the list view I expect
that my list view terminate sub (ReportBox_Terminate) will be called.
3. The ReportBox_Terminate subroutine is never called (the print statement
is not executed).
What should the event handler name be (<object name>_<event name>) so that
termination of the list box will cause the event handler to be invoked?
Code:
#! /bin/perl
use Win32::GUI ( WS_BORDER # Exporter doesn't seem to correctly
, WS_CAPTION # export values given in GUI.pm
, WS_CHILD # @EXPORT = qw( );
, WS_SYSMENU,
, WS_VISIBLE
); # Thin binding to Win32 GUI
use strict; # Strict checking pragma
use integer; # Computations done using integer arithmetic
use warnings;
my $window;
my $ListBox; # Output report listing
sub MainWnCreate;
sub myWindow_Terminate;
sub ReportBox_Terminate;
#----------------------------------------------------------
# MainWnCreate
#----------------------------------------------------------
sub MainWnCreate{
$window = new Win32::GUI::Window(
-name => "myWindow",
-title => "VAX to PC Realignment",
-left => 300, #0
-top => 200, #0
-width => 320,
-height => 240,
);
$ListBox = $window->AddListbox(
-disabled => 0,
-name => "ReportBox",
-pos => [ 100, 40 ],
-size => [ 100, 100 ],
-style => 1024 | WS_BORDER | WS_CAPTION | WS_SYSMENU,
-title => "Report",
-visible => 0
);
} ### MainWnCreate
sub myWindow_Terminate {
print "myWindow_Terminate\n";
return -1;
} ### myWindow_Terminate
sub ReportBox_Terminate{
print "ReportBox_Terminate\n";
return 1;
}
#----------------------------------------------------------
# Main-
#----------------------------------------------------------
&MainWnCreate;
$window->Show();
$ListBox->Show();
Win32::GUI::Dialog();