次の方法で共有


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_ISOTROPICMM_ANISOTROPICCScrollViewには使用されません。クラス ライブラリには、ウィンドウのサイズにビューをスケーリングするに SetScaleToFitSize のメンバー関数を提供します。上の表の 3 列は、座標の向きについて説明します。

  • 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));

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 クラス

階層図

CScrollView::SetScaleToFitSize

CScrollView::GetDeviceScrollSizes

CScrollView::GetTotalSize