VC —— 去掉CFormView的滚动条

       前一段时间,用到CFormView里内嵌视,当CFormView缩放时,CFormView的滚动条出现了,想去掉它。

    先从网上搜罗一下,发现最接近的解决方法是将滚动条的尺寸设置很小,如CSize(20,20),滚动条出现的问题是解决了,但有出现了另一个问题,那就是新建文件或打开文件时,整个程序窗体显示只有CSize(20,20)大小,非常不方便。通过跟踪程序发现,每次新建文件或打开文件操作均会重新调用CFormView的OnInitialUpdate()函数,而这个函数调用了

  GetParentFrame()->RecalcLayout();
  ResizeParentToFit();

所以重新计算布局尺寸,导致前面出现的现象。解决就显得简单多了,用一个静态变量做一个标志,只是第一次调用就可以了。

源码如下:

void CTYFinalWorkView::OnInitialUpdate() { CFormView::OnInitialUpdate(); static bool bSet = false; if(!bSet) { GetParentFrame()->RecalcLayout(); ResizeParentToFit(); } bSet =true; SetScrollSizes(MM_TEXT,CSize(20,20)); // 去掉滚动条 }

你可能感兴趣的:(VC)