CScrollView::SetScrollSizes

void SetScrollSizes(
   int nMapMode,
   SIZE sizeTotal,
   const SIZE& sizePage = sizeDefault,
   const SIZE& sizeLine = sizeDefault 
);

参数

  • nMapMode
    设置的映射模式对于此视图。 可能的值包括:

    映射方案

    逻辑单位

    正y轴扩展…

    MM_TEXT

    1像素

    向下

    MM_HIMETRIC

    0.01 mm

    向上

    MM_TWIPS

    1/1440之上

    向上

    MM_HIENGLISH

    0.001之上

    向上

    MM_LOMETRIC

    0.1 mm

    向上

    MM_LOENGLISH

    0.01之上

    向上

    所有这些模式由Windows定义的。 两个条件映射的模式,MM_ISOTROPICMM_ANISOTROPIC,不支持 CScrollView使用。 选件类库的缩放视图提供 SetScaleToFitSize 成员函数对窗口大小。 三列在上表中描述协调orientation。

  • sizeTotal
    滚动视图的总大小。 cx 成员包含该级别的区域。 cy 成员包含该垂直范围。 范围在逻辑单元。 cxcy 必须大于或等于0。

  • sizePage
    滚动的水平和垂直量以响应鼠标单击的每个方向滚动条轴。 cx 成员包含该级别的数量。 cy 成员包含一个垂直量。

  • sizeLine
    滚动的水平和垂直量以响应鼠标单击的每个方向在卷动箭头。 cx 成员包含该级别的数量。 cy 成员包含一个垂直量。

备注

调用到您的 OnUpdate 成员函数的重写调整滚动特征,后,例如,文档最初显示或,则更改范围。

通常从关联的视图的范围信息通过调用文档成员函数文档,而调用 GetMyDocSize,您将使用派生的文档选件类。 下面的代码演示此方法:

CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
SetScrollSizes(nMapMode, pMyDoc->GetMyDocSize());

或者,有时可能需要设置固定大小,如下面的代码:

SetScrollSizes(nMapMode, CSize(100, 100));

必须将映射的架构到任何Windows映射除 MM_ISOTROPICMM_ANISOTROPIC您的架构。 如果要使用一个不受约束的映射模式,请调用 SetScaleToFitSize 成员函数而不是 SetScrollSizes

示例

void CMyScrollView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, 
   CObject* /*pHint*/)
{
   // Implement a GetMyDocSize() member function in 
   // your document class; it returns a CSize.
   CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
   SetScrollSizes(MM_LOENGLISH, pMyDoc->GetMyDocSize());
   ResizeParentToFit();   // Default bShrinkOnly argument
}
void CMyScrollView::OnInitialUpdate()
{
   CScrollView::OnInitialUpdate();

   // The GetMyDocSize() member function is implemented in 
   // your document class. The return type is CSize.
   CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
   SetScrollSizes(MM_TEXT, pMyDoc->GetMyDocSize());
}

要求

Header: afxwin.h

请参见

参考

CScrollView选件类

层次结构图

CScrollView::SetScaleToFitSize

CScrollView::GetDeviceScrollSizes

CScrollView::GetTotalSize