CScrollView::SetScrollSizes
ビューでは更新されるとき 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 によって定義されます。2 種類の標準的なマップ モード、MM_ISOTROPIC と MM_ANISOTROPICは CScrollViewには使用されません。クラス ライブラリには、ウィンドウのサイズにビューをスケーリングするに SetScaleToFitSize のメンバー関数を提供します。上の表の 3 列は、座標の向きについて説明します。
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解除モードをマップするマップ モードを Windows のいずれかに設定する必要があります。制約のないマップ モードを使用する場合は、SetScrollSizesの代わりに SetScaleToFitSize のメンバー関数を呼び出します。
使用例
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());
}
必要条件
ヘッダー: afxwin.h
参照
関連項目
CScrollView::SetScaleToFitSize