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_TWIPS
1/1440 英吋
向上
MM_HIENGLISH
0.001 英吋
向上
MM_LOMETRIC
0.1 公釐
向上
MM_LOENGLISH
0.01 英吋
向上
這些模式是由 Windows 所定義。 兩個準則對應模式, MM_ISOTROPIC 和 MM_ANISOTROPIC,不支援的 CScrollView使用。 類別庫為稱為 檢視提供 SetScaleToFitSize 成員函式來視窗大小。 三個資料行上表中說明的座標方向。
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));
必須設定對應模式為任何視窗將除了 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