<snip - missing rant>
 
use Win32::GUI;                 # Binding to Win32 GUI
use Win32::GUI::Grid;           # Thin binding to Win32 GUI Grid
use integer;
my $TopWindow = new Win32::GUI::Window(       # Create Main Window
        -name         => 'TopWindow',
        -left         => 30,
        -height       => 450,
        -title        => 'GUI Editor',
        -top          => 20,
        -width        => 570,
   );
my $Grid = $TopWindow->AddGrid(   # Create Grid object
        -columns           =>  2,
        -fixedcolumns      =>  1,
        -fixedrows         =>  1,
        -name              =>  "Property Grid",
        -pos               =>  [ 390, 0 ],
        -rows              =>  10,
        -visible           =>  1,
  );
my $Grid1= $TopWindow->AddGrid(   # Create Grid object
        -columns           =>  2,
        -fixedcolumns      =>  1,
        -fixedrows         =>  1,
        -name              =>  "Property Grid",
        -pos               =>  [ 100, 0 ],
        -rows              =>  10,
        -visible           =>  1,
  );
 
  $Grid->SetCellText(0, 0, "Property" );
  $Grid->SetCellText(0, 1, "Value" );
 
  $Grid1->SetCellText(0, 0, "Property" );
  $Grid1->SetCellText(0, 1, "Value" );
 
  print "\n";
 
  my $TotalHeight = $Grid->GetRowHeight(0);
  my $Height;

  print "Row = 0 Height = [ $TotalHeight, $TotalHeight ])\n";
 
  for my $row (1..$Grid->GetRows()) {
    $Grid->SetCellText($row, 0, "Property $row " );
    $Grid1->SetCellText($row,0, "Property $row " );
  }
 
  for my $row (1..4) {
    my $col = 1;
    $Grid->SetCellText($row, $col, "Cell : <$row, $col>");
    $Grid1->SetCellText($row,$col, "Cell : <$row, $col>");
  }
 
  my $row = 1;
 
  for my $CellType ( GVIT_NUMERIC, GVIT_DATE, GVIT_DATECAL, GVIT_TIME, GVIT_CHECK
                   , GVIT_COMBO,   GVIT_LIST, GVIT_URL,     GVIT_NUMERIC) {
    $Height       = $Grid->GetRowHeight($row);
    $TotalHeight += $Height;
    print "Row = $row Height = [ $Height, $TotalHeight ])\n";
    $Grid->SetCellType($row,   1, $CellType);
    $Grid1->SetCellType($row++,1, $CellType);
  }
 
  $Grid->SetCellCheck  ( 5, 1, 1 );
  $Grid1->SetCellCheck ( 5, 1, 1 );
 
  my $Width  = $Grid->GetVirtualWidth();    #+20;
  my $Height = $Grid->GetVirtualHeight();   #+10;
 
  $Grid->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]);
  $Grid->SetCellOptions( 7, 1, [ "List",  "Box", "New" ]);
  $Grid->Resize($Width, $Height);
 
  $Grid1->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]);
  $Grid1->SetCellOptions( 7, 1, [ "List",  "Box", "New" ]);
  $Grid1->Resize($Width+6, $Height+6);
 
  print  "\n       Actual  Virtual W/O Bars\n";
  printf("Height %5d   %7d %8d\n", $TotalHeight, $Grid->GetVirtualHeight, $Grid->GetVirtualHeight+6);
  printf("Width  %5d   %7d %8d\n", $Grid->GetColumnWidth(0) + $Grid->GetColumnWidth(1)
                                 , $Grid->GetVirtualWidth()
                                 , $Grid->GetVirtualWidth()+6 );
  $TopWindow->Show();                             # makes TopWindow visible
  Win32::GUI::Dialog();                           # Windows control loop


Robert May <rmay@popeslane.clara.co.uk> wrote:
Arthur Schwarz wrote:
> Grid (again).
>
> My grid has a cell with a list in it. I don't know if that's significant but:
> 1: The reported grid Width is too small and a horizontal scroll bar is presented, and
> 2: The reported grid height is too short and a vertical scroll bar is presented.
>
> The dimensions are:
>
> [virtual virtual + ]
>
> With W/o scroll bar
> [ 156 176 ] width
> [ 190 200 ] height

[snip]



Please take the time to post a *short*, but complete, example of the
problem that you are asking for help with. It is very time consuming to
put together example scripts to see if I can see the same behaviour,
especially if I don't have any detailed knowledge of the control that
you are talking about. Please read this if you haven't before:
http://www.catb.org/~esr/faqs/smart-questions.html



That said, if you're trying to autosize the grid, then I doubt that it
takes into account any extra space required for any controls that may be
needed - but we'd have to read the documentation for the underlying Grid
Control, which on my previous forays I have discovered to be rather
sparse, leaving us only the underlying source code to unravel to work
out what is going on.

Regards,
Rob.