2011-04-08 29 views
0

在Perl的Win32 :: GUI桌面應用程序, 雖然複選框選中狀態,我需要隱藏一些控件,我需要的控件移動到被隱藏的地方,對窗口緊湊視圖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

請[編輯您的問題(http://stackoverflow.com/posts/5594550/edit),並完成問題的描述,它是在一個句子的中間切斷。添加您的代碼,以便感興趣的人可以重現問題。 – daxim 2011-04-08 15:34:58

回答

2

以在黑暗中拍攝(我沒有一個Win32 Perl的安裝),你可以嘗試SetRedraw method。之後重新排列控件,然後再輸入SetRedraw(1)。之後也許還有一本手冊Redraw()

有一些技巧,避免閃爍的問題Win32 GUI flickering on resize更新窗口當非Perl的具體討論。

+0

太棒了!感謝您的解決方案。重繪窗口正在爲我的應用程序工作。 – Madhan 2011-04-14 08:40:07