在一个程序中?我在CWXWnd::OnPaint()中:...
dc.Draw(...)
...与此同时在一个或者多个OnTimer()中:...
CDC * pDC = GetDC();
pDC->Draw(...)
ReleaseDC( pDC )
...我想知道这样做会有什么样的问题?
为什么?
有更好的解决方法吗?

解决方案 »

  1.   

    没有什么问题的
    如果有的话,那就是在OnPaint()中再次画的时候可能会把OnTimer()中画的东东刷新掉了
      

  2.   

    首先,你可以这么做,程序能够运行;但你如果在OnDraw之外再画图,那么当你移动/调整你的窗口等等的时候,
    系统将会自动重绘屏幕,你就必须自己动手做一些重绘的工作。因此,一个更好的办法是:充分利用document-view !!!
    你每一次画图的内容都是提交给文档对象,
    然后在OnDraw里面访问文档对象,将它得到的信息画出来。
    ----------------很明显,这样的效率更高,而且不必自己做重绘的工作,
                    所有的事情都让OnDraw去干!!!希望我给你的提示又加深了你对文档试图结构的理解 :)
      

  3.   

    不会有问题,不过想也想得到,只要画一次内容就变化一次
    但如果是多线程的话就必须注意同步的问题了,否则GetDC也有可能失败