美文网首页
V5-界面控件的显示与隐藏

V5-界面控件的显示与隐藏

作者: 游在路上的鱼 | 来源:发表于2018-08-28 14:26 被阅读0次

    和何创建动态的界面:
    使用动态的框架(dynamic frames):当框架消失或出现时,界面的尺寸将会被重新定义
    为实现上述要求,Frame的定位方式应当为tabulation layout而不是grid layout 。
    一般来说,有以下几种形式的动态界面:
    1.More/Less Push Button Demonstrator


    image.png

    左侧的界面部分是一直可见的,并始终绑定在0号垂直线(用户设定)。
    less时右侧的界面是分离的、不可见的,more时界面被扩展,扩展部分绑定在10垂直线(非0即可)上。
    (1)当将

    _pFrameLeftMore -> SetGridConstraints(0, 0, 1, 1, 0);
    _pFrameRightMore -> SetGridConstraints(0, 1, 1, 1);
    

    注释掉


    image.png

    (2)放开上述两行的注释:


    image.png

    (3)将_pFrameRightMore分离后设定隐藏

    ResetAttachment(_pFrameRightMore);
    _pFrameRightMore->SetVisibility(CATDlgHide);
    
    image.png

    在创建对话框时注意对话框的属性设定:

    TSTMoreLessDialog::TSTMoreLessDialog() :
      CATDlgDialog ((CATApplicationFrame::GetApplicationFrame())->GetMainWindow(),
    //CAA2 WIZARD CONSTRUCTOR DECLARATION SECTION
    "TSTMoreLessDialog",CATDlgWndAutoResize | CATDlgWndBtnOKCancelPreview |CATDlgWndNoResize
    

    否则将出现重叠的错误!!!
    2.The "More & Radio Button Demonstrator" Dialog box


    image.png

    3.The "Frame Replacement Demonstrator" Dialog box


    image.png
    仅仅修改对话框的类型:修改为CATDlgWndAutoResize | CATDlgWndBtnOKCancelPreview |CATDlgWndNoResize
    未定义各个Frame的水平定位线时,出现上述错误!
    image.png
    SetHorizontalAttachment(1,CATDlgTopOrLeft,_Frame001,NULL);
    SetHorizontalAttachment(2,CATDlgTopOrLeft,_Frame012,NULL);
    SetHorizontalAttachment(3,CATDlgTopOrLeft,_Frame023,NULL);
    
    image.png

    void TSTFrameReplaceDialog::Build()中,如下代码:

    ResetAttachment(_Frame024);
    _Frame024->SetVisibility(CATDlgHide);
    SetHorizontalAttachment(3,CATDlgTopOrLeft,_Frame027,NULL);
    _Frame021->SetVisibility(CATDlgShow);
    

    会出现以下问题!


    image.png

    去除后,消除上述问题!

    CATIA中无法进行Frame中单个控件的显示隐藏,只能进行整个Frame的显示隐藏。
    对于项目中出现的存在Frame嵌套的界面布局,采用设定多重frame,点击Frame中的选择控件之后,将整个Frame替换。

    为了保证界面的美观性,在构造界面时不仅要定义水平定位线,还要定义垂直定位线:

    _pSketchSettingFrame = new CATDlgFrame(this, "pSketchSettingFrame", CATDlgGridLayout);
        SetHorizontalAttachment(HORIZONTAL_1,CATDlgTopOrLeft,_pSketchSettingFrame,NULL);
        SetVerticalAttachment(VERTICAL_1,CATDlgTopOrLeft,_pSketchSettingFrame,NULL);
        SetVerticalAttachment(VERTICAL_2,CATDlgRightOrBottomRelative,_pSketchSettingFrame,NULL);
    

    在动态变换的对应函数中添加:

    SetHorizontalAttachment(HORIZONTAL_4,CATDlgTopOrLeft,_pProjectPntFrame,NULL);
    SetVerticalAttachment(VERTICAL_2,CATDlgRightOrBottomRelative,_pProjectPntFrame,NULL);
    

    此处不要定义左侧定位线,否则会造成界面混乱。

    相关文章

      网友评论

          本文标题:V5-界面控件的显示与隐藏

          本文链接:https://www.haomeiwen.com/subject/xdgfwftx.html