问题描述
- MFC中如何给CLientDC添加滚条
- 小弟在MFC中的View类中用clientDC进行绘图,但是加了滚条之后拖动滚条,原来绘制的图形都会消失,点击最小化或者改变Client区的大小也会侍原来的图形消失,请问有没有什么办法可以实现滚条的功能?
解决方案
其实加滚动条很简单,View类继承CScrollView,然后就可以有滚动条了。
然后设置滚动视图的大小和单页大小以及单步滚动的大小。如下:
CRect rcClient;
GetClientRect(&rcClient);
CRect rcImage;
GetImageRect(rcImage);
CSize szTotal = rcImage.Size();
CSize szPage = rcClient.Size();
CSize szLine = szPage;
szLine.cx /= 10;
szLine.cy /= 10;
CScrollView::SetScrollSizes(MM_TEXT szTotal szPage szLine);
Invalidate();
绘图的尺寸就是szTotal。
最后需要重载CScrollView的OnSize。
其他的就是一些函数的重载处理了。
望采纳。希望能够帮到你。
解决方案二:
在OnDraw中绘图。
时间: 2025-01-19 15:25:26