CchuangkoutiaozhengDlg *pMain = (CchuangkoutiaozhengDlg *)AfxGetApp()->m_pMainWnd;
if (((CButton*)pMain->GetDlgItem(1191))->GetCheck() == 0)
{
....;
}
check控件ID是1191,在tab里的子窗口中.代码写在自己创建的cpp中,然后这个代码就直接报错了.
我该怎么写呢?

解决方案 »

  1.   

    对话框 下 的 tab里的子窗口中
      

  2.   

    不是,我是想知道代码应该怎么写
    if (((CButton*)pMain->GetDlgItem(1191))->GetCheck() == 0)
    这句报错
      

  3.   

    如果在 对话框 是
    CWnd* pMain=AfxGetMainWnd();// 取对话框
    if (((CButton*)  (pMain->GetDlgItem(IDC_CHECK1))  )->GetCheck() == 0)
    如果在 Tab
            CWnd* pMain=AfxGetMainWnd();// 取对话框
            CTabCtrl *pTab=pMain->GetDlgItem(IDC_TAB1);//取 tab
    if (((CButton*)  (pTab->GetDlgItem(IDC_CHECK1))  )->GetCheck() == 0)
      

  4.   


    在tab那个出现在了个新的问题,不能初始化怎么办?
      

  5.   

    CTabCtrl *pTab=(CTabCtrl *)pMain->GetDlgItem(IDC_TAB1);//取 tab
    把 CWnd * 转成 CTabCtrl *
      

  6.   


    现在报错了,但还是和开始时一样的.
    我是在主窗口中建了一个tab控件,然后建了一个子窗口当tab的第一页,check1是在子窗口中的.
      

  7.   


    因为控件比较多,我读控件用for循环控件ID的,所以每个控件这么写要麻烦得多了.在Dialog窗口一切正常,用在自建的cpp不知道怎么的指针就不行了.
      

  8.   

     CTabCtrl *pTab 所以 不能转换为 CButton *把 CWnd * 转成 CTabCtrl * 是因为 你知道 它是 什么
      

  9.   

    弄那么多级指针还不如在Tab的父类或派生类中添加一个public函数,然后把这些集中到函数中,方便调用也简化了操作
    另外通过 AfxGetApp()->m_pMainWnd 获取的类,需要先给 AfxGetApp()->m_pMainWnd 赋与正常的指针才行, 可以用APP向导生成一个基于对话框的应用,先研究下MFC框架结构