不明白你是什么意思不接收到消息 怎么会调用ondraw
不调用ondraw怎么会不保持原状

解决方案 »

  1.   

    保持画面是什么意思呢?对一个程序员来讲,画面不就是自己用函数画出来的吗?
    而画出来的东本是根据数据画的,不要说你只是在OnMouseMove等函数里画画,
    而没有保存数据供OnDraw画哦。
    既然数据都在,那还怕画面保持的问题呢?所以我不知道你碰到的是哪个问题:
    1,你在其他函数里做图,没有把画图的必要数据保存在View类成员里或其他合适的地方,如Document成员里,那么你每次画图都要把这些图的必要数据保存起来,虽然你可能当时并不是用Invalidate等方法来画图,在OnDraw里,你也要对所有的画图的数据进行显示。2,如果你数据都有了,那你是不是说不同时期画不同的东西?你应该有两套画图的数据了吧?
    在OnDraw里分不同情况用不同的数据进行画图就可以了啊。不知道说了一大堆对你有没有帮助,哎,发现自己真是没救了,好无聊啊,谁来救救我…………
      

  2.   

    ljp3000(坏坏),很感谢你的回答,我的意思主要是你说的第二种情况,不过可能有点不同,就是说我所有的数据都保存在了Doc类里面,但我有两个菜单项,选这个菜单项,VIEW显示这些数据,选那个菜单项,VIEW显示另外一些数据,当我 最大最小化我的窗口时,由于我没有改写ondraw(我的数据输出是在另外的函数中完成的),我的view会变得空白一片。
    我提问的意思是,如果在最大最小化时,要保持VIEW当前显示的画面不变,也就是如果当前显示的是这个菜单项所显示的数据,最大最小化时VIEW还能保持显示这些数据,如果当前显示的是另外的菜单项所显示的数据,同样这些数据还能保持显示在VIEW中。具体能否告知怎么做?谢谢。
      

  3.   

    在ondraw里绘制数据
    加入判断 
    同时在菜单项被选择的时候设置一个标志变量
      

  4.   

    为什么OnDraw里不画图呢?最大化最小化解决了,被别人窗口盖住了,然后又出来里要显示时怎么办?由于windows是多任务操作系统,你无法保证你的程序一起在最前头,当你的程序从后台转到前台,或且就是没有到前台,只是再露出半个窗口也要显示这半个窗口的,而这个时候是在什么时候是无法事先预料的,所以我觉得通常还是OnDraw里要画图负责显示。你是不是可以在程序里保存一个变量表示程序当前选择的菜单项,并在OnDraw里用if 或switch分不同的情况用不同的画图数据调用不同的画图函数显示呢?