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_ISOTROPIC 和 MM_ANISOTROPIC,不支持 CScrollView使用。 选件类库的缩放视图提供 SetScaleToFitSize 成员函数对窗口大小。 三列在上表中描述协调orientation。
sizeTotal
滚动视图的总大小。 cx 成员包含该级别的区域。 cy 成员包含该垂直范围。 范围在逻辑单元。 cx 和 cy 必须大于或等于0。sizePage
滚动的水平和垂直量以响应鼠标单击的每个方向滚动条轴。 cx 成员包含该级别的数量。 cy 成员包含一个垂直量。sizeLine
滚动的水平和垂直量以响应鼠标单击的每个方向在卷动箭头。 cx 成员包含该级别的数量。 cy 成员包含一个垂直量。
备注
调用到您的 OnUpdate 成员函数的重写调整滚动特征,后,例如,文档最初显示或,则更改范围。
通常从关联的视图的范围信息通过调用文档成员函数文档,而调用 GetMyDocSize,您将使用派生的文档选件类。 下面的代码演示此方法:
CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
SetScrollSizes(nMapMode, pMyDoc->GetMyDocSize());
或者,有时可能需要设置固定大小,如下面的代码:
SetScrollSizes(nMapMode, CSize(100, 100));
必须将映射的架构到任何Windows映射除 MM_ISOTROPIC 或 MM_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::SetScaleToFitSize