本工程中添加滚动条的方法为:
第一步:
视图类VIEW的基类选择ScrollView;
第二步:
在ScrollView类中添加OnInitialUpdate(),并在响应函数中添加 SetScrollSizes(MM_TEXT, CSize(1600, 900));
此后,运行程序,拖动滚动条时下方或右方会出现重影。目前网上找不到详细答案,求详细解决方法。
补充:
我的视图类里有一些画图的程序。因此拖动滚动条时,这些图案就发生了重影。不可能是系统问题。而是逻辑坐标与设备坐标,由于滚动条下啦后,设备坐标没有更改的问题。但我不知道具体的解决方法。
如何解决MFC单文档滚动条拖动时的重影问题(高分)
答案:3 悬赏:80
解决时间 2021-02-28 13:50
- 提问者网友:护她一生,唯爱
- 2021-02-28 08:48
最佳答案
- 二级知识专家网友:湫止没有不同
- 2021-02-28 09:10
问题描述不完整,不能判定原因。
一般MFC滚动造成重影,要么是系统问题(非代码),要么是OnDraw函数处理问题,这两个情况比较多,当然还有更多因素,比如自己处理了On..Scroll或者其它相关响应函数造成的。
如果只有描述中的代码(其它只是MFC默认工程代码),那么和代码无关了,应该是win系统或者VC系统有问题。
一般MFC滚动造成重影,要么是系统问题(非代码),要么是OnDraw函数处理问题,这两个情况比较多,当然还有更多因素,比如自己处理了On..Scroll或者其它相关响应函数造成的。
如果只有描述中的代码(其它只是MFC默认工程代码),那么和代码无关了,应该是win系统或者VC系统有问题。
全部回答
- 1楼网友:迷人小乖乖
- 2021-02-28 11:13
这个问题我也遇到过,解决办法如下
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对应的变量。
- 2楼网友:而你却相形见绌
- 2021-02-28 09:44
关联控件成员变量 m_clist,初始化的时候加入代码;
m_clist.showscrollbar(sb_horz, false);
这个你可能试过,可以隐藏到水平滚动条,但是如果你界面太小,或者你拖拽了列宽...
这个水平滚条还是会出来,似乎没有什么很好的解决办法;
建议你固定好每列的宽度,不要超过显示的页面,这样就不会出现滚动条了;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯