控制Perl Win32 :: GUI中的移动问题

时间:2011-04-08 11:45:13

标签: windows perl

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

  }
}

1 个答案:

答案 0 :(得分:2)

在黑暗中拍摄(我没有安装win32 perl),你可以试试SetRedraw method。重新排列控件之前SetRedraw(0),然后SetRedraw(1)。也许之后也是手册Redraw()

在更新问题Win32 GUI flickering on resize中的窗口时,有一些非perl特定的关于避免闪烁的技术的讨论。