我的一个界面,由一个formview和一个scrollview组成,formview中含有static text控件
当在scrollview中onlbuttondown是改变了doc中的一个标志位,并改变doc中的记录point坐标的变量,于是按理说应该在formview的静态文字中显示相关数值,
于是乎,我在formview的onupdate中加入
if(pDoc->mbmoused)
{
    csPointx.Format("pDoc->pt.x");
    csPointy.Format("pDoc->pt.y");
}但是程序运行起来后并没有达到我的效果,可是我的cview的onlbuttondown中看,确实mbmouse已经变成true了啊我知道,系统肯定没问题,肯定是我更新的地方不对,那么我应该在哪里更新显示呢?
不要说updatedata(0),试过了,不行
请大家来找找茬,高手给详细讲讲

解决方案 »

  1.   

    "IDC_STATIC" 要改为IDC_TEXT,再关联一个变量,m_TextX,(CString)
    m_TextX.Format("pDoc->pt.x=%d",pDoc->pt.x); 
    UpateData(FALSE);
      

  2.   

    if(pDoc->mbmoused) 

        csPointx.Format("pDoc->pt.x"); 
        csPointy.Format("pDoc->pt.y"); 
        updatedata(0);
    } 如果还不行的话, 直接修改static text控件的值
    GetDlgItem(staticID)->SetWindowText(csPointx + csPointy)
      

  3.   

    csPointx.Format("pDoc->pt.x"); 
    这是什么?如果你想显示pDoc->pt.x,这可不是C++支持的格式化方式,你应该用csPointx.Format(_T("%d"), pDoc->pt.x);
      

  4.   

    你这更象perl的语法,而不是C++的语法:)
      

  5.   


    应该放在什么函数里面呢?
    这个formview和普通view还是很不同,没有什么ondraw等等
    问题很诡异哦
    呵呵,多谢指点
      

  6.   

    荣哥,实际中我是这么用的,不过这里匆忙,没有贴上来,呵呵,看看为什么formview没有和doc通信才是最重要的
      

  7.   

    改了,也不行,关键哪个pDoc->mbmoused没有传过来,这边中断进不去,大家说怎么办?
    void CCV_ExplorerView::OnLButtonDown(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CvPoint cp1 = cvPoint(0,0);
    if (iSelRect == 1)
    {
    GetDocument()->m_bLMouse = TRUE;
    //********************************************************注释掉
    return;
    }
    CScrollView::OnLButtonDown(nFlags, point);
    }
    以上在另外一个普通view中button设置doc的标志位在formview中
    void CPlatformView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/)
    {
    // TODO: 在此添加专用代码和/或调用基类
    CCV_ExplorerDoc* pDoc = (CCV_ExplorerDoc*)GetDocument();
    if (pDoc->GetImageStatus())
    {
    csWidth.Format("%d",pDoc->GetImageSize().cx);
    csHeight.Format("%d", pDoc->GetImageSize().cy);
    csMPTX.Format("%d",pDoc->m_ptMouse.x);
    if (pDoc->m_bLMouse)
    {
    csMPTY.Format("%d",pDoc->m_ptMouse.y);
    }
    UpdateData(0);

    错在哪里呢
      

  8.   

    OnUpdate系统也会调用的,你自己调用UpdateAllViews的时候用一个非0的lHint,或者用一个非空的pHint
    你调用UpdateData(FALSE)的话会重新走一遍DDX,在DoDataExchange那里设断点单步调试看看。