我运行后点击菜单就画图在view里面一个图,我希望在画出的图上点击变
关闭图形,请问加什么命令呢?
 还有,我要根据我每次得到的不同的数据画不同的图,是不是在画图程序里面加
 Invaildate()命令就可以呢?

解决方案 »

  1.   

    我运行后点击菜单就画图在view里面一个图,我希望在画出的图上点击变没有看懂,你是意思是不是要锁定鼠标在画图区域点击,使图形发生变化或者关闭呢?如果单纯的命令,那么很简单,用 classwizard 就可以了。根据不同的数据得到不同的图,有很多方法吧,在 invalidate 中可以,其他像设置一个标志也行啊!!!!
      

  2.   

    你在画出的图中点击的时候,可以判断鼠标的点是否在在你的所画的图形上,如果图形击中的话,可以让图形自己刷新一下自己,其实就是在图形类中加个自己处理的函数,比如我做的一个,双击图形则打开图形的属性:if (pView->m_selection.GetCount() == 1)
    {
    CDrawObject *pObj = pView->m_selection.GetHead();
    if (pObj != NULL)
    {
    pObj->OnOpen(pView);
    }
    }
    其中onopen()函数就是在所画图形类中的(比如画的是矩形,这个处理函数应该是在矩形类中的)另外,每次得到不同的数据,应该是个重画的过程,,因为你的问题不详细,我刚做了一个画图程序,有些地方可以和你交流一下
      

  3.   

    //"每次得到的不同的数据画不同的图"
    这些图是保存在一个数组中吗?如CArray.
    如果是这样,OnDraw里写个遍历算法,将保存的图形数据,逐一显示,
    要删除的话,判断选中的当前图形,找到在CArray中的位置后,删除,然后调用InvalidateRect()就行
    有个小例子,需要的话email留下