我的工程中,含有多个PAGE对话框,我现在PAGE对话框上创建了一个CGrid控件,为了让我能在这控件上插入数据,我在PAGE代码中加了插入函数,如下:BOOL CPageJgcx::UpdataGrid(int iID,CString strtm,int iResult)
{
CString sID=_T("");
CString sResult=_T("");
sID.Format("%d",iID);
sResult.Format("%d",iResult); pGridResult->ShowWindow(SW_HIDE);
pGridUpdata->ShowWindow(SW_SHOW); pGridUpdata->InsertRow(sID);
pGridUpdata->SetRowHeight(pGridUpdata->GetRowCount()-1,pGridUpdata->GetRowHeight(0));
int nrow=pGridUpdata->GetRowCount()-1;
pGridUpdata->SetItemText(nrow,1,strtm);
pGridUpdata->SetItemText(nrow,2,sResult);
pGridUpdata->SetRedraw(1,1);
pGridUpdata->Invalidate();
return TRUE;
},如果我在当前page中调用这个函数,是正确的,但我在主对话框(不是PAGE),去调用这个函数,就出现错误,调用如下:CPageJgcx jgcx;
jgcx.UpdataGrid(1,"fff",1);
,求解答?????????

解决方案 »

  1.   

    你得先创建jgcx对象阿,比如Create,否则窗口句柄都没有,怎么可能进行窗口对象的操作呢?
      

  2.   

    怎么创建?是这样吗?? CPageJgcx jgcx;
    jgcx.Create(1,this);
      

  3.   

    ???????????????????
    CPageJgcx *jgcx;
    void CFgySystemDlg::OnBnClickedBtnStop()
    {
       //AfxBeginThread(r_Reagent2,(CWnd *)this,0); 
    jgcx=new CPageJgcx;
    jgcx->Create(IDD_PAGE_JGCX);
    jgcx->UpdataListCtrlEx(1,"ffffffffffff",177);
    }数据没有插进去?
      

  4.   

    类和实例的关系与区别,你还是需要强化理解.
    从你的描述来看,这个非模式窗口应该处于运行状态的了,这时候,如果你需要在这个窗口上显示内容,你需要使用该窗口对象进行相关操作,而不是另外去创建一个CPageJgcx对象,虽然它们来自于同一个类,但却是两个不同的实例.就好比"人"是一个类,那么你和我就是"人"这个类的两个实例.我做的动作,肯定不会作用在你身上的.
      

  5.   


    CPageJgcx jgcx;
    jgcx.Create(IDD_PAGE_JGCX,this);
    // jgcx.m_lstResult.SetRedraw(TRUE);
    jgcx.UpdataListCtrlEx(1,"ffffffffffff",177);这样数据没插入进去
      

  6.   

    我主窗口是CFgySystemDlg;
    listctrl在CPageJgcx 上。
      

  7.   

     
    happyparrot
    那你的意思是??