如何解决MFC单文档滚动条拖动时的重影问题(高分)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决MFC单文档滚动条拖动时的重影问题(高分)相关的知识,希望对你有一定的参考价值。

这个问题我也遇到过,解决办法如下
int
m_Max;
//为获取计数范围和计数值定义变量
int
m_Min;
GetDlgItem(IDC_EDIT)->GetScrollRange(SB_VERT,&m_Min,&m_Max);
GetDlgItem(IDC_EDIT)->SetScrollPos(SB_VERT,m_Max+1,true);
((CEdit*)GetDlgItem(IDC_EDIT))->SetSel(strlen(m_commbuf),strlen(m_commbuf),false);
//自动滚屏
GetDlgItem(IDC_EDIT)->SetFocus();
m_commbuf为控件IDC_EDIT对应的变量。
参考技术A 问题描述不完整,不能判定原因。
一般MFC滚动造成
重影
,要么是系统问题(非代码),要么是OnDraw函数处理问题,这两个情况比较多,当然还有更多因素,比如自己处理了On..Scroll或者其它相关响应函数造成的。
如果只有描述中的代码(其它只是MFC默认工程代码),那么和代码无关了,应该是win系统或者VC系统有问题。
参考技术B 关联控件成员变量
m_clist,初始化的时候加入代码;
m_clist.showscrollbar(sb_horz, false);
这个你可能试过,可以隐藏到水平滚动条,但是如果你界面太小,或者你拖拽了列宽...
这个水平滚条还是会出来,似乎没有什么很好的解决办法;
建议你固定好每列的宽度,不要超过显示的页面,这样就不会出现滚动条了;

解决el-table设置了固定列导致的滚动条无法拖动问题

el-table中的el-table-column提供了一个fixed属性设置固定列,但是设置了之后发现表格的滚动条无法拖动了,通过F12定位到页面元素发现是滚动条被固定列生成的元素给覆盖了,于是想办法通过修改样式的方式解决问题。

<style lang="scss" scoped>
  .el-table {
    .el-table__fixed { // 左固定列
      height: auto !important;
      bottom: 18px; // 改为自动高度后,设置与父容器的底部距离,高度会动态改变,值可以设置比滚动条的高度稍微大一些
    }
    .el-table__fixed-right { // 右固定列
      height: auto !important;
      bottom: 18px; // 改为自动高度后,设置与父容器的底部距离,高度会动态改变,值可以设置比滚动条的高度稍微大一些
    }
  }
</style>

当然也可以把这段样式放到全局的样式表中,作为全局的样式,这样就不需要每个页面都写这段样式了(推荐)。

这个问题不知道是官方的bug还是重写样式引起的冲突问题,也不追究了,能解决问题就好了。

 

"偶尔志得意满,偶尔消沉低落。"

以上是关于如何解决MFC单文档滚动条拖动时的重影问题(高分)的主要内容,如果未能解决你的问题,请参考以下文章

MFC单文档视图下的List Control的滚动条无法拖动,不起作用,求大神解答

MFC单文档,当你向左或向右拖到滚动条,图形的位置不能随之发生变化,怎么具体解决,感激不尽

关于delphi 中的canvas重影问题

datagridview 一拖动水平滚动条表头出现两重影

解决CListCtrl闪烁及水平滚动条不能跟踪拖动的问题(MFC)

大家好,MFC list控件中怎么让滚动条为灰色不能拖动,但是仍然可以用鼠标中键滚动列表内容。