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


Reply via email to