|
From: Andrey <wa...@ma...> - 2009-12-23 09:22:18
|
Hello, Win32::GUI users!
I have an application which extensively creates and destroys window controls, such as labels, buttons etc..
To get rid from window control I use Win32::GUI::DestroyWindow, but seems this method is not working properly, see example:
==================
use strict;
use Win32::GUI();
my $main = Win32::GUI::Window->new(-name => 'Main', -text => 'Perl', -width => 200, -height => 200);
$main->AddLabel(-name => "Label", -text => "Hello, world", -left => 20, -top => 20, -notify => 1);
sub Label_Click
{
for (1..1000)
{
Win32::GUI::DestroyWindow($main->{"Label"}{-handle});
delete $main->{"Label"};
$main->AddLabel(-name => "Label", -text => rand(), -left => 20, -top => 20, -notify => 1);
}
}
$main->Show(); Win32::GUI::Dialog();
sub Main_Terminate { -1; }
=============
When I click on label the program creates/destroys control many times. But seems there is huge memory leak, when using this method. Is there any "proper" way do destroy window control?
|