在基于CFormView的SDI中,插入了一个自定义波形控件,普通情况下显示正常的。
但是每次打开一个新文档时、弹出一个模态对话框时、或者其他时候,控件就消失了,要把程序最小化一下再打开才正常,或者拖动一下滚动条让控件进入不可见的区域再来出来才行。
这个应该是是控件重绘的问题?试过在CMdView::OnInitialUpdate()中分别添加以下代码没用,IDC_SLCTCTRL3是控件的ID。GetDlgItem(IDC_SLCTCTRL3)->Invalidate();
//GetDlgItem(IDC_SLCTCTRL3)->SendMessage(WM_PAINT);请大家指点一下

解决方案 »

  1.   

    这个就是没有重绘的原因,其实你刷新一下你的CFormView就可以。
      

  2.   

    用程序刷新都不起作用吗?是不是你的波形控件继承自CStatic,然而对话框里的静态控件的属性notify没有改成true
      

  3.   

    你把CMdView刷新一下,肯定可以;
    要是不行,你看看你的控件执行刷新了没有;要不就像楼上说的
      

  4.   

    谢谢ls的各位
    我先试试,不过,CMdView刷新需要在哪里实现才好呢?
      

  5.   

    PreSubclassWindow()中DWORD dwStyle = this->GetStyle();
    ::SetWindowLong(this->GetSafeHwnd(), GWL_STYLE, dwStyle | SS_NOTIFY);