在Perl Win32 :: GUI桌面应用中, 当复选框检查状态时,我需要隐藏一些控件,我需要将控件移动到隐藏的位置,用于Perl Win32 :: GUI中的窗口紧凑视图。使用下面的代码时,控件移动时控件的图像会重复(重复)。请提供解决方案,以避免在移动和调整窗口大小时重复控制图像。
sub Check_Status{
if($btwdates->GetCheck eq 1){
$Pushlistmodelabel->Move(30,168);
$Fromdatelabel->Show();
$get_From_day->Show();
$Todatelabel->Show();
$get_To_day->Show();
$FoldersOption->Disable();
$PushListButton->Move(200,255);
$processlabel->Move(2,285);
$PushListButton->Move(135,295);
$processlabel->Move(2,320);
$Selectionlabel->Move(195,168);
$FilesOption->Move(200,195);
$FoldersOption->Move(200,225);
$With_root->Move(35,195);
$Without_root->Move(35,225);
$changeOption->Move(35,255);
$replacepath->Move(180,255);
Win32::GUI::DoEvents() >= 0;
}
else{
$FoldersOption->Move(200,165);
$FilesOption->Move(200,135);
$FoldersOption->Enable();
$Selectionlabel->Move(195,108);
$Pushlistmodelabel->Move(30,108);
$Fromdatelabel->Hide();
$get_From_day->Hide();
$Todatelabel->Hide();
$get_To_day->Hide();
$PushListButton->Move(200,195);
$processlabel->Move(2,225);
$Pushlistmodelabel->Move(30,108);
$With_root->Move(35,135);
$Without_root->Move(35,165);
$changeOption->Move(35,195);
$replacepath->Move(180,195);
}
}
答案 0 :(得分:2)
在黑暗中拍摄(我没有安装win32 perl),你可以试试SetRedraw
method。重新排列控件之前SetRedraw(0)
,然后SetRedraw(1)
。也许之后也是手册Redraw()
。
在更新问题Win32 GUI flickering on resize中的窗口时,有一些非perl特定的关于避免闪烁的技术的讨论。