我用 VC6 的 MFC 生成了一个 SDI 工程,当 DOC 里面的内容改变时(比如从网络上收到数据),我如何通知 VIEW 进行屏幕刷新?

解决方案 »

  1.   

    你可以在处理接收数据的地方直接更新view。
    或者处理view的WM_PAINT消息,然后在收到数据后,发送WM_PAINT消息。
      

  2.   

    但如何得到 VIEW 的窗口句柄?我不想用全局变量的方式存储 VIEW 的窗口句柄.
      

  3.   

    在不同的类里有不同的方法:(假定工程命名为SDI)
    1。在CSDIApp:
         CSDIView* pView = (CSDIView*)((CMainFarme*)m_pMainWnd  \
            ->CFrameWnd::GetActiveView(); 
    2.在CMainFrame:
        CSDIView* pView = (CSDIView*)CFrameWnd::GetActiveView(); 
    3.在CSDIDoc:
       CSDIView* pView = (CSDIView*)((CMainFarme*)AfxGetApp()  \
            ->m_pMainWnd->CFrameWnd::GetActiveView(); 
    不过你要注意它们生成的时机哟。
    得到了它们的对象后,怎么得句柄就没什么问题了吧!