zoukankan      html  css  js  c++  java
  • MFC tab页面中获到其它页面的数据

    比如tab标页面中添加了3个page. 分别对应3个类,如何在page3中 获到page2的 变量值 呢?

    有多种方法,

    1个可以通过在page3中定义一个放该3个page类的 类对像。通过这个类对像再去访问到各page.

    另一个通过获取父类指针:

    如下 可以通过((CMyOfficeView *)GetParent()->GetParent())->m_Page2.iTest;得到。

    也可以通过((CMyOfficeView *)((CMainFrame *)AfxGetApp()->m_pMainWnd)->GetActiveView())->m_Page2.iTest

    注意,由于各page是添加在了CMyOfficeView中,所以这里转成CMyOfficeView,

    如((CMyOfficeView* )(AfxGetApp()->m_pMainWnd))->m_Page2.iTest;   //获取不到iTest这种直接获取到m_pMainWnd 再转成CMyOfficeView 是不行的。

    必须通过GetActiveView 获到了视类指针后才能正确的访问各page 中的变量。

    BOOL CMyPropertyPage3::OnSetActive()
    {
        // TODO: 在此添加专用代码和/或调用基类
        int iData = ((CMyOfficeView* )(AfxGetApp()->m_pMainWnd))->m_Page2.iTest;   //获取不到iTest
        //int data1 = ((CMyOfficeView *)GetParent()->GetParent())->m_Page2.iTest;      //能获到 iTest = 100
        CMainFrame *p = (CMainFrame*)AfxGetApp()->m_pMainWnd;
        CMyOfficeView *pv = (CMyOfficeView*)p->GetActiveView();

        TRACE("iData1:%d.....: ", ((CMyOfficeView *)((CMainFrame *)AfxGetApp()->m_pMainWnd)->GetActiveView())->m_Page2.iTest);
        TRACE("iData2:%d.....: ", (CMyOfficeView *)GetParent()->GetParent());


        return CBCGPPropertyPage::OnSetActive();
    }

  • 相关阅读:
    java 网络编程入门
    正确、安全地停止SpringBoot应用服务
    spring boot application.properties文件外部配置
    logback
    基本排序算法的总结
    jqury属性操作,特殊效果
    click事件和jquery选项卡
    jquery加载方式,选择器,样式操作
    css之定位
    css中设置background属性
  • 原文地址:https://www.cnblogs.com/totogo/p/10431935.html
Copyright © 2011-2022 走看看