求助:在对话框中显示图像,当图像宽高大于对话框时,如何出现滚动条以查看整幅图像?

fengbingchun
博客专家认证
2011-07-18 11:04:38
在对话框中显示图像时或者在对图像进行放大操作时,经常出现图像的实际宽高要大于对话框的大小,此时如果没有滚动条,则图像超出的部分将看不到,因此想用滚动条来拖动,以便能够看到整幅图像。当图像宽高小于对话框大小时,滚动条也能够自动隐藏。
该如何实现这样的操作呢?
在CScrollView类里,有个SetScrollSizes函数可以实现类似的操作,可是在对话框中没有此函数,该如何做呢?
望高手指点,谢谢!
...全文
208 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐华春 2011-07-25
  • 打赏
  • 举报
回复
这个对你很有帮助的 http://blog.csdn.net/cghver/article/details/6603725
fengbingchun 2011-07-22
  • 打赏
  • 举报
回复
在视图类的OnDraw画图时,
invalidate(false)后,有时新图并不能够全部替代上次显示的图,有部分的旧图会遮盖住新图,该如何解决呢?
fengbingchun 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ndy_w 的回复:]
自己实现也可以参考mfc里CScrollview的实现。
对话框一般是用来多个控件和用户交互的。如果你加上滚动条选项,是整个滚而不是某一控件。如果你只有一个显示图的控件,那还不如直接创建framewnd,用scrollview。
[/Quote]

谢谢!ocx控件是基于对话框,只在对话框上显示图像即可,如图像超出对话框就应该弹出滚动条,相当于整个滚动。
你可否说的再详细点呢?
ndy_w 2011-07-21
  • 打赏
  • 举报
回复
自己实现也可以参考mfc里CScrollview的实现。
对话框一般是用来多个控件和用户交互的。如果你加上滚动条选项,是整个滚而不是某一控件。如果你只有一个显示图的控件,那还不如直接创建framewnd,用scrollview。
fengbingchun 2011-07-21
  • 打赏
  • 举报
回复
在对话框属性中,将水平滚动条和垂直滚动条选项选中后,如何使滚动条起作用呢?
Eleven 2011-07-18
  • 打赏
  • 举报
回复
fengbingchun 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hanbo79 的回复:]
你在对话框上放一个CScrollView类。在这个view中画图。
[/Quote]

可否说的详细点,如何在对话框中放置一个CScrollView类呢?谢谢!
fengbingchun 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 longlongagoimboy 的回复:]
用内存DC绘制整个图像到内存CBitmap对象中,然后在显示的时候,取内存DC中的指定大小部分到对话框DC中。
上下左右的滚动条可以直接用滚动条控件,通过计算所画图像的大小和位置,来取得内存DC中的图像大小和位置。
大概就这么做了,代码没有。
[/Quote]

谢谢!
  • 打赏
  • 举报
回复
你在对话框上放一个CScrollView类。在这个view中画图。
Jimmy_Xia 2011-07-18
  • 打赏
  • 举报
回复
用内存DC绘制整个图像到内存CBitmap对象中,然后在显示的时候,取内存DC中的指定大小部分到对话框DC中。
上下左右的滚动条可以直接用滚动条控件,通过计算所画图像的大小和位置,来取得内存DC中的图像大小和位置。
大概就这么做了,代码没有。
gz_qmc 2011-07-18
  • 打赏
  • 举报
回复
自己添加两滚动条
用二级缓冲画图

响应滚动条位置,更改拷贝二级缓冲的偏移
fengbingchun 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 visualeleven 的回复:]
http://download.csdn.net/source/1585910
[/Quote]

谢谢!

16,548

社区成员

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

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

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