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? |