次の方法で共有


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 によって定義されます。 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