CScrollView クラス
スクロール機能を [CW2CT]。
class CScrollView : public CView
メンバー
プロテクト コンストラクター
名前 |
説明 |
---|---|
CScrollView オブジェクトを構築します。 |
パブリック メソッド
名前 |
説明 |
---|---|
スクロール ビューに水平および垂直スクロール バーがあるかどうかを示します。 |
|
スクロール領域外のビューで領域を塗りつぶします。 |
|
デバイス単位の現在のスクロール位置を取得します。 |
|
スクロール可能なビューの現在のマップ モード、合計サイズ、および線とページ サイズ取得します。サイズは、デバイス単位にあります。 |
|
論理単位の現在のスクロール位置を取得します。 |
|
論理単位のスクロール ビューの合計サイズを取得します。 |
|
ビューのサイズをフレームのサイズを決定します。 |
|
論理単位で指定された点までビューをスクロールします。 |
|
スケールに適合するモードにスクロール ビューを入力します。 |
|
スクロール ビューのマップ モード、合計サイズを設定し、水平方向と垂直方向のスクロールになります。 |
解説
OnHScroll と OnVScroll のメッセージ マップされたメンバーをオーバーライドして CView から派生したすべてのクラスで独自関数標準のスクロールを処理できます。ただし、CScrollView は CView の機能に次の機能を追加します:
また、ウィンドウ、およびビューポートのサイズとマップ モードを管理します。
これはスクロール バー メッセージに応じて自動的にスクロールします。
これは、キーボード、マウス、または IntelliMouse スクロール ホイールによるメッセージに応じて自動的にスクロールします。
キーボードからメッセージに応じて自動的にスクロールする場合、VK_DOWN、VK_PREV と呼び出し SetScrollPosの WM_KEYDOWN メッセージとテストを追加します。
マウスのスクロール ホイールの関数を独自 OnMouseWheel と OnRegisteredMouseWheel のメッセージ マップされたメンバーをオーバーライドして処理できます。これらは CScrollView用に応じて、これらのメンバー関数は WM_MOUSEWHEELの推奨動作は、ホイールを回転のメッセージをサポートします。
自動スクロールを利用するには、CViewの代わりに CScrollView から、からビュー クラスを派生します。ビューを初めて作成するとき、は、ドキュメントのサイズに基づいてスクロール可能なビューのサイズを計算する場合は CView::OnInitialUpdate または CView::OnUpdateのオーバーライドの SetScrollSizes のメンバー関数を呼び出します。ドキュメントのサイズを照会する独自のコードを記述する必要があります。例については、サンプルを Scribble します。を参照してください)。
SetScrollSizes のメンバー関数の呼び出しは、水平方向と垂直方向にスクロールするには、スクロール ビューのビューのマップ モード、合計サイズ、および量を設定します。すべてのサイズは論理単位になります。ビューの論理サイズは、通常、ドキュメントに格納されているデータに基づいて計算する場合として固定サイズを指定することもできます。両方の方法の例については、CScrollView::SetScrollSizesを参照してください。
論理単位で垂直方向にスクロールするための量を指定します。ユーザーがスクロール ボックスの外にスクロール バー シャフトをクリックすると既定では、CScrollView は「ページをスクロールします」。ユーザーがスクロール バーの端または右端にスクロール矢印をクリックすると、CScrollView は「行をスクロールします」。既定では、ページがビューの合計サイズの 1/10。; 行は、ページ サイズの 1/10 です。SetScrollSizes のメンバー関数のカスタムのサイズを渡すことによってこれらの既定値をオーバーライドします。たとえば、現在のフォントの行の高さに合計サイズと垂直方向のサイズの幅の一部に水平サイズを設定している可能性があります。
スクロールの代わりに、CScrollView は、現在のウィンドウ サイズに自動的にビューを縮小することができます。このモードでは、ビューにスクロール バーがなく、まったくウィンドウのクライアント領域に合わせて論理ビューが拡大または縮小する。このスケールに最適の機能を使用するには、CScrollView::SetScaleToFitSizeを呼び出します。( SetScaleToFitSize か SetScrollSizes、との両方を呼び出すしないでください)。
、派生ビュー クラスの OnDraw のメンバー関数を呼び出す前に、CScrollView は OnDrawに渡す CPaintDC のデバイス コンテキスト オブジェクトができるように自動的にビューポートの原点を調整します。
スクロール ウィンドウにビューポートの原点を調整するには、CScrollView は CView::OnPrepareDCをオーバーライドします。この変更は CScrollView が OnDrawに渡されますが、使用する CClientDCなどのそのほかのデバイス コンテキストに対して、独自 CScrollView::OnPrepareDC、を呼び出す必要があります CPaintDC のデバイス コンテキストに自動です。ペン、背景色、およびそのほかの描画の属性を設定するに CScrollView::OnPrepareDC をオーバーライドできますが、スケーリングを行うための基本クラスを呼び出します。
スクロール バーは次の場合に示すように、ビューに関連して 3 か所で表示できます:
標準のウィンドウ スタイルのスクロール バーは WS_HSCROLL と WS_VSCROLLWindows スタイルを使用してビューに対して設定できます。
スクロール バー コントロールは、ビューを含むフレームにフレームワークによってフレーム ウィンドウから現在アクティブなビューに WM_HSCROLL と WM_VSCROLL のメッセージを転送追加できます。
フレームワークは、CSplitterWnd の分割線のコントロールで現在アクティブな分割ウィンドウ (ビュー) にスクロール メッセージを転送します。共有スクロール バーの CSplitterWnd に設定すると、CScrollView のオブジェクトを使用して独自に作成するのではなく、共有ものも。
CScrollViewの使用の詳細については、ドキュメント/ビュー アーキテクチャ と 派生ビューは MFC で使用できるを並べ替えます。を参照してください。
継承階層
CScrollView
必要条件
ヘッダー: afxwin.h