术语 | CScrollView | |||||||||||||||||||||||||||||||||||||
释义 | CScrollView
CScrollView类是一个具有滚动性能的CView。你可以在任何一个从CView派生的类中通过重载消息映射的OnHScroll和OnVScroll成员函数来自己处理标准的滚动。但是CScrollView给它的CView性能添加了下列特征:
要利用自动滚动的优点,可以从CScrollView派生你的视类来代替CView派生。当视第一次被创建时,如果你希望根据文档的大小来计算可滚动视的大小,可以从重载的CView::OnInitialUpdate或CView::OnUpdate中调用成员函数SetScrollSizes。(你必须编写自己的代码来查询文档的大小。参见在“Visual C++教程”中的“增强视”可以获得有关的示例。) 调用成员函数SetScrollSize可以设置视的映射模式,可滚动视的总尺寸,以及可在水平或垂直方向上滚动的量。所有的尺寸都是以逻辑单位给出的。视的逻辑大小通常是由保存在文档中的数据计算出来的。但在某些情况下,你可能希望为视指定一个固定的尺寸。有关这两种方法的例子,参见CScrollView::SetScrollSizes。 你应该以逻辑单位指定在水平或垂直方向上滚动的量。缺省情况下,如果用户在滚动框之外单击了滚动条的条身,则CScrollView滚动一“页”。如果用户单击了滚动条两端的滚动箭头,则CScrollView滚动一“行”。缺省情况下,一页是指整个视的大小的1/10;一行是指页大小的1/10。你可以通过传递给SetScrollSize成员函数定制的尺寸来代替这些缺省值。例如,你可以将水平大小设置为宽度总尺寸的一部分,并将垂直大小设置为当前字体的一行的高度。 除了滚动之外,CScrollView还可自动将视的大小按比例变换成当前窗口的大小。在这种方式下,视没有滚动条,这个逻辑视被扩大或缩小以精确符合窗口的客户区。要使用这种“scale-to-fit”的功能,可以调用CScrollView::SetScaleToFitSize。(调用SetScaleToFitSize或SetScrollSizes,但不要都调用。) 在调用你的派生类的OnDraw成员函数之前,CScrollView自动调整传递给OnDraw的CPaintDC设备环境对象的视口原点。 为了为滚动窗口调整视口原点,CScrollView重载CView::OnPrepareDC。这种调整对于CScrollView传递给OnDraw的CPaintDC设备环境来说是自动的,但你必须为自己所使用的其它设备环境(例如CClientDC)自己调用CScrollView::OnPrepareDC。你可以重载CScrollView::OnPrepareDC来设置画笔,背景颜色,和其它绘画属性,但是要调用基类来进行比例变换。 滚动条可以显示在与一个视相关的三个位置,如下所示:
请参阅:CView, CSplitterWnd CScrollView类成员 Operations
Construction
|
|||||||||||||||||||||||||||||||||||||
随便看 |
|
MFC类库中文详解手册包含4274条MFC类库参考词条,基本涵盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。