zoukankan      html  css  js  c++  java
  • BCGP实现属性页

    1.建立SDI工程SSTools。

    2.视图类继承于CBCGPFormView.

    3.SSToolsView默认关联了一个对话框。构造函数初始化需要填上该对话框的IDD

    CSSOToolsView::CSSOToolsView()
        : CBCGPFormView(CSSOToolsView::IDD)

    4.添加一个page dlg.关生成 CPropertyPage1类,该类继承于CBCGPPropertyPage,同样,构造函数也需要关联IDD:

    CPropertyPage1::CPropertyPage1() : CBCGPPropertyPage(CPropertyPage1::IDD)

    5.在view类 中HandleInitDialog添加 page面页:(view类是OnInitialUpdate)

       m_wndPropSheet.AddPage(&m_Page1);
        //m_wndPropSheet.AddPage(&m_Page2);
        //m_wndPropSheet.AddPage(&m_Page3);
        //m_wndPropSheet.AddPage(&m_Page4);
        //m_wndPropSheet.AddPage(&m_Page5);

        if (!m_wndPropSheet.Create(this, WS_TABSTOP | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE, 0))
        {
            TRACE0("Cannot create property sheet control ");
             return 0;
        }

    6.添加完编译运行后会 崩溃。。。。找原因吧。

    注意,页面上加了个picture contrl, 默认需要隐藏,否则 运行后会盖住 下面的page 页面中的控件,由于控件 还没有最大化显示。

    发现是Create  m_wndPropSheet时出的错,前面addpage了 ,为什么还会出错呢?:

    if (!m_wndPropSheet.Create(this, WS_TABSTOP | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE, 0))
        {
            TRACE0("Cannot create property sheet control ");
             return 0;
        }

    原来添加的page页面的dialog我生成的类选择了继承MFCPropertyPage造成的,默认是继承于CDialogEx,

    不能更改,后面生成完类再改为继承 于CBCGPPropertyPage...

     7.添加完一组属性页,后再添加一组,用来实现视图切换显示不同的属性页。

    以同样方法添加完CSSOToolsView2,再添加一个page3,  测试,改app中默认运行的view类为CSSOToolsView2,则提示出错 - 不支持尝试执行的操作

    是由于做这一步,用的CSSOToolsView2是从CSSOToolsView改过来的,里面带有一个cstatic的 picture contrl :m_wndPropSheetPlaceHolder

    后面代码里面有用到,却没有添加。添加上就可以了

    注:   由于添加dlg后双击就可以添加一个对话框类,但是遇到像CSSOToolsView2 这种先复制的,再去建立一个dlg显示是冲突,其它关联了IDD 就可以,但是会遇到在这个dlg上面右键添加 控件变量 会没反应,,可以看一下 是不是 .h中已经存在了。遇到过这情况。

    测试2个view视图类都能单独运行。

    7.添加ribbon功能区实现切换2个视图

  • 相关阅读:
    Linux下Redis的安装和部署
    js实现复制到剪贴板功能,兼容所有浏览器
    解决file_get_contents无法请求https连接的方法
    PHP使用正则表达式验证电话号码(手机和固定电话)
    php MYSQL 一条语句中COUNT出不同的条件
    学到的较复杂的 mysql 语名
    数据库相关 sql 语句
    php对象比较
    魔术方法
    inner join left join right join
  • 原文地址:https://www.cnblogs.com/totogo/p/10621287.html
Copyright © 2011-2022 走看看