关于ScrollView的一点问题?

xzou 2000-07-20 11:44:00
我最近新学用ScrollView,我在OnDraw()中用ClientDC->TextOut("....."),将一文本文件逐行读入输出,编译后运行,但每次拉动Scroll条都只能显示第一屏的内容,不知何故,请大家指教。
...全文
302 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gold_Dg 2000-08-10
  • 打赏
  • 举报
回复
有没有谁答得详细一点,最好提供些代码,先谢了!
xzou 2000-07-20
  • 打赏
  • 举报
回复
我开始设了一个值,但肯定比实际文件的大小小,再问一下Kerrie,是否必须设置一次单击的滚动距离,设置了有何用处?
Kerrie 2000-07-20
  • 打赏
  • 举报
回复
这个size的值需要开始就设定的


另外,不只到你设置了它的一次单击的滚动距离?
Kerrie 2000-07-20
  • 打赏
  • 举报
回复
这个size的值需要开始就设定的
你可以现在程序设置一个大小,成了再从文件里读

另外,不只到你设置了它的一次单击的滚动距离?
xzou 2000-07-20
  • 打赏
  • 举报
回复
我本身就是派生自CSrollView.
flyrain 2000-07-20
  • 打赏
  • 举报
回复
你建立project时可以选择view从CScrollView派生,你的View就可以Scroll了!!!
xzou 2000-07-20
  • 打赏
  • 举报
回复
这个我已经设了,关键是实际size是我读完文件才根据文件计算出来的,不只是否要在TextOut之前先算出屏幕大小,这是我认为有可能出问题的地方。
Kerrie 2000-07-20
  • 打赏
  • 举报
回复
ScrollView 需要设置一下虚拟屏幕的大小,在:

void CTempView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();

CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, sizeTotal);
}


其中sizeTotal.cx 与cy便是它的大小,不只这里你该了没有
xzou 2000-07-20
  • 打赏
  • 举报
回复
我终于找到了问题之所在,我是用ClientDC->TextOut,现在我把它换成CDC *pDC
pDC->TextOut就好了,不知这是何故?
redmend 2000-07-20
  • 打赏
  • 举报
回复
我仔细的研究了CScrollView的原理,CScrollView工作有如下限制:
滚动范围0-32767(在Win98下)如果sizeTotal>32767*2则会发生意想不到的错CScrollView通过改变原点的坐标实现滚动.这点信息不知能否对你有所帮助.
Kerrie 2000-07-20
  • 打赏
  • 举报
回复
你最好设一个大于屏幕的值,这样就看起来就比较明显了

设置一次单击的滚动距离不是必需的,如果你能拉到滚动条,就不必管它了

Kerrie 2000-07-20
  • 打赏
  • 举报
回复

你的icq号?
我的为8030303
Kerrie 2000-07-20
  • 打赏
  • 举报
回复

你的oicq号?
我的为8030303

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧