CDialog  m_tabKuohao;//表格在这个对话框上
CMSHFlexGrid m_gridKuohao;m_gridKuohao.Attach(::GetDlgItem(m_tabKuohao.m_hWnd,IDC_MSHFLEXGR_KUOHAO)); //IDC_MSHFLEXGR_KUOHAO 这个Grid的ID但是下面的这些语句运行时就都报错,哪出问题了呢?
//m_gridKuohao.put_AllowUserResizing(3); 
//m_gridKuohao.put_Rows(4);
//m_gridKuohao.putref_CellPicture(pPic); 

解决方案 »

  1.   

    补充,编译时是通过的,运行的时候报错,说是ASSERT错误void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
    void* pvRet, const BYTE* pbParamInfo, ...)
    {
    ---> ASSERT(m_pCtrlSite != NULL);    // not an OLE control (not yet, at least)错误调试指的这
      

  2.   

    出错的是这里,::GetDlgItem(m_tabKuohao.m_hWnd,IDC_MSHFLEXGR_KUOHAO); 得不到这个控件的句柄,我查了下他的值是0T.T 怎么得到控件句柄呢
      

  3.   

    CDialog  m_tabKuohao什么都没有?
    create呢?
    没有产生窗口只是一个普通的类
      

  4.   

    有Create,我没贴过来,
    m_tabKuohao.Create (IDD_FORMULA_KUOHAO,&m_tabSetFormula);
    但是我试过用GetDlgItem(IDD_FORMULA_KUOHAO),他的返回值也是0
    m_tabKuohao是TabControl控件里的一个页面。
    代码:
    BOOL CSetFormulaDlg::OnInitDialog()
    {
    CDialog::OnInitDialog();
    TCITEM item;
    item.mask = TCIF_TEXT;
    item.pszText = "括号";
    m_tabSetFormula.InsertItem (0,&item);
    item.pszText ="分式根式";
    m_tabSetFormula.InsertItem (1,&item);
    item.pszText ="算术式";
    m_tabSetFormula.InsertItem (2,&item);
    item.pszText ="映射框";
    m_tabSetFormula.InsertItem (3,&item);
    item.pszText ="角标"; m_tabKuohao.Create (IDD_FORMULA_KUOHAO,&m_tabSetFormula);
    m_tabFenshi.Create (IDD_FORMULA_FENSHI,&m_tabSetFormula);
    m_tabSuanshu.Create (IDD_FORMULA_SUANSHUSHI,&m_tabSetFormula);
    m_tabYingshe.Create (IDD_FORMULA_YINGSHE,&m_tabSetFormula);
    m_tabJiaobiao.Create (IDD_FORMULA_JIAOBIAO,&m_tabSetFormula);
       
    CRect rs;
    m_tabSetFormula.GetClientRect(&rs);
    rs.top+=30;
    rs.bottom-=10;
    rs.left+=10; 
    rs.right-=10; m_tabKuohao.MoveWindow(&rs);
    m_tabFenshi.MoveWindow(&rs);
    m_tabSuanshu.MoveWindow(&rs);
    m_tabYingshe.MoveWindow(&rs);
    m_tabJiaobiao.MoveWindow(&rs); m_tabKuohao.ShowWindow(true);
    m_tabFenshi.ShowWindow(false);
    m_tabSuanshu.ShowWindow(false);
    m_tabYingshe.ShowWindow(false);
    m_tabJiaobiao.ShowWindow(false);
        
    m_gridKuohao.Attach(::GetDlgItem(m_tabKuohao.m_hWnd,IDC_MSHFLEXGR_KUOHAO));
    m_gridFenshi.Attach(::GetDlgItem(m_tabFenshi.m_hWnd,IDC_MSHFLEXGR_FENSHI));
    m_gridSuanshu.Attach(::GetDlgItem(m_tabSuanshu.m_hWnd,IDC_MSHFLEXGR_SUANSHU));
    m_gridYingshe.Attach(::GetDlgItem(m_tabYingshe.m_hWnd,IDC_MSHFLEXGR_YINGSHE));
    m_gridJiaobiao.Attach(::GetDlgItem(m_tabJiaobiao.m_hWnd,IDC_MSHFLEXGR_JIAOBIAO)); return TRUE;
    }