如何调用OnDraw()、Invaliddate()

解决方案 »

  1.   

    用户极少有机会自己来调用OnDraw函数
    如果数据内容改变,应该调用父窗口的UpdataData 或者是Invalidata函数,通知窗口内容已经发生了改变,系统自己来调用OnDraw函数处理这个改变消息
      

  2.   

    this->OnDraw()
    直接就能调的
    要是在别的类是调用,只要保留这个窗口的指针就可以了
      

  3.   

    那我在InitInstance()中应如何处理?
      

  4.   

    系统调用OnDraw,自己调用Invalidata来重画
      

  5.   

    Invalidata()总是不成功 为什么?
      

  6.   

    没听说过直接调用OnDraw()函数的,其实OnDraw()也不过只是Windows绘制消息的函数映射。通过SetRedraw()可以间接调用这个函数。不过,通常的绘制操作都应放在OnPaint()中进行,两者的区别可以参见别的资料。Invalidate();
    UpdateWindow(); 
    同样产生重绘消息InitInstance()中调用,必须先保证你的视图已经被Create了。
      

  7.   

    调用Invalidata();通不过编译。
      

  8.   

    Invalidate 不是 Invalidata
      

  9.   

    Invalidate();也不行未定义。
    我想在xxxAPP 类中调用。
      

  10.   

    哥哥: 你必须用CWnd对象引用啦。
    例如: m_pView->Invalidate();
           m_pView->UpdateWindow();m_pView为在CxxxApp中定义的你的视图类的指针,可以在CxxxView::OnInitialUpdate()函数中通过:
    theApp.m_pView = this; 初始化.
      

  11.   

    大哥:
    如何把 m_pView声明为在CxxxApp中定义的视图类的指针?
      

  12.   

    晕! 
    株洲GG: 建议你多看些VC书籍, 这应该是很基础的东西。
    #include "xxxView.h"class CxxxApp::: public CWinApp
    {
    public:
         CxxxView    m_pView;
         
         ......
    }
      

  13.   

    #include "xxxView.h" 不能加到头文件中去。