在框架的int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中创建了几个CDockablePane,里面是空的,还没有往里面放对话框之类的控件,然后运行工程,就会看到这些CDockablePane出现不会自动刷新的情况,具体表现为:当另一个应用程序的窗口经过这些CDockablePane时,每个CDockablePane窗口上就会留下划过的那个应用程序的窗口图像,这应该是这些CDockablePane没有自动刷新背景的原因造成的吧,那么该如何捕获另一个应用程序窗口划过的事件然后刷新这些CDockablePane背景呢?
    请高手指点!
    积分不多了,还望各位高手不吝赐教!万分感激!

解决方案 »

  1.   

    我是在onsize里加了Invalidaterect(NULL,TRUE)就好了
      

  2.   

    刚试过了,没有你说的效果,不知道是怎么回事。你不要在pane里面放东西看是不是我的这种情况,谢谢!
      

  3.   

    OnPaint里重新用刷子刷背景
    void CPropertyPane::OnPaint()
    {
    CPaintDC dc(this); // device context for painting
    // TODO: Add your message handler code here
    CRect rc;
    GetClientRect(rc);
    CBrush   brush; 
    brush.CreateSolidBrush(BACKGROUNDCOLOR);  
    dc.FillRect(&rc,&brush);  // Do not call CDockablePane::OnPaint() for painting messages
    }
      

  4.   

    我在create的时候 rect(0,0,0,0),就没有发现残影的现象,奇了个怪。