CScrollBar
クラス
Windows のスクロール バー コントロールの機能を提供します。
構文
class CScrollBar : public CWnd
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CScrollBar::CScrollBar |
CScrollBar オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CScrollBar::Create |
Windows スクロール バーを作成し、オブジェクトに CScrollBar アタッチします。 |
CScrollBar::EnableScrollBar |
スクロール バーの矢印の一方または両方を有効または無効にします。 |
CScrollBar::GetScrollBarInfo |
構造体を使用してスクロール バーに関する情報を SCROLLBARINFO 取得します。 |
CScrollBar::GetScrollInfo |
スクロール バーに関する情報を取得します。 |
CScrollBar::GetScrollLimit |
スクロール バーの制限を取得します。 |
CScrollBar::GetScrollPos |
スクロール ボックスの現在位置を取得します。 |
CScrollBar::GetScrollRange |
指定されたスクロール バーの現在の最小および最大のスクロール バー位置を取得します。 |
CScrollBar::SetScrollInfo |
スクロール バーの情報を設定します。 |
CScrollBar::SetScrollPos |
スクロール ボックスの現在位置を設定します。 |
CScrollBar::SetScrollRange |
指定されたスクロール バーの最小位置と最大位置の値を設定します。 |
CScrollBar::ShowScrollBar |
スクロール バーの表示と非表示を切り替えます。 |
解説
スクロール バー コントロールは、2 つの手順で作成します。 まず、コンストラクター CScrollBar
を呼び出してオブジェクトを CScrollBar
構築し、次にメンバー関数を Create
呼び出して Windows スクロール バー コントロールを作成し、オブジェクトに CScrollBar
アタッチします。
ダイアログ ボックス内で (ダイアログ リソースを使用して) オブジェクトを作成 CScrollBar
した場合、 CScrollBar
ユーザーがダイアログ ボックスを閉じると、オブジェクトは自動的に破棄されます。
ウィンドウ内にオブジェクトを CScrollBar
作成する場合は、オブジェクトを破棄する必要がある場合もあります。
スタック上にオブジェクトを CScrollBar
作成すると、自動的に破棄されます。 関数を CScrollBar
使用 new
してヒープ上にオブジェクトを作成する場合は、ユーザーが Windows スクロール バーを終了したときにオブジェクトを破棄するオブジェクトを呼び出す delete
必要があります。
オブジェクトにメモリを割り当てる場合は、デストラクターをCScrollBar
CScrollBar
オーバーライドして割り当てを破棄します。
使用CScrollBar
に関する関連情報については、「コントロール」を参照してください。
継承階層
CScrollBar
必要条件
ヘッダー:afxwin.h
CScrollBar::Create
Windows スクロール バーを作成し、オブジェクトに CScrollBar
アタッチします。
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
パラメーター
dwStyle
スクロール バーのスタイルを指定します。 スクロール バースタイルの任意の組み合わせをスクロール バーに適用します。
rect
スクロール バーのサイズと位置を指定します。 RECT
構造体またはオブジェクトをCRect
指定できます。
pParentWnd
スクロール バーの親ウィンドウ (通常はオブジェクト) を CDialog
指定します。 次に指定 NULL
することはできません。
nID
スクロール バーのコントロール ID。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
2 つの手順でオブジェクトを CScrollBar
構築します。 まず、オブジェクトを構築するコンストラクターをCScrollBar
呼び出し、次に、関連付けられている Windows スクロール バーを作成して初期化し、オブジェクトにアタッチするCScrollBar
呼び出Create
しを行います。
次 のウィンドウ スタイル をスクロール バーに適用します。
WS_CHILD
いつもWS_VISIBLE
通常はWS_DISABLED
ほとんどWS_GROUP
コントロールをグループ化するには
例
// Example 1:
// Create a horizontal CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). The scroll bar is NOT visible until the
// call ShowScrollBar() is made. m_ScrollBarHorz is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarHorz.Create(SBS_HORZ | SBS_TOPALIGN | WS_CHILD,
CRect(5, 5, 100, 30), this, IDC_SCROLLBARCTRL));
m_ScrollBarHorz.ShowScrollBar();
// Example 2:
// Create a vertical CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). m_ScrollBarVert is of type CScrollBar
// class, and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarVert.Create(SBS_VERT | SBS_LEFTALIGN | WS_CHILD |
WS_VISIBLE,
CRect(5, 30, 30, 130), this, IDC_SCROLLBARCTRL));
CScrollBar::CScrollBar
CScrollBar
オブジェクトを構築します。
CScrollBar();
解説
オブジェクトを構築した後、メンバー関数を Create
呼び出して、Windows スクロール バーを作成して初期化します。
例
CScrollBar m_ScrollBarHorz;
CScrollBar::EnableScrollBar
スクロール バーの矢印の一方または両方を有効または無効にします。
BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);
パラメーター
nArrowFlags
スクロール矢印を有効にするか無効にするか、どの矢印を有効または無効にするかを指定します。 このパラメーターには、次の 値のいずれかを指定できます。
ESB_ENABLE_BOTH
スクロール バーの両方の矢印を有効にします。ESB_DISABLE_LTUP
水平スクロール バーの左矢印または垂直スクロール バーの上矢印を無効にします。ESB_DISABLE_RTDN
水平スクロール バーの右矢印または垂直スクロール バーの下矢印を無効にします。ESB_DISABLE_BOTH
スクロール バーの両方の矢印を無効にします。
戻り値
矢印が指定されたとおりに有効または無効になっている場合は 0 以外。それ以外の場合は 0。矢印が既に要求された状態であるか、エラーが発生したことを示します。
例
CScrollBar::SetScrollRange
の例を参照してください。
CScrollBar::GetScrollBarInfo
SCROLLBARINFO
構造体がスクロール バーについて保持している情報を取得します。
BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;
パラメーター
pScrollInfo
SCROLLBARINFO
構造体へのポインター。
戻り値
正常に終了した場合は、TRUE
を返します。それ以外の場合は、FALSE
を返します。
解説
このメンバー関数は、Windows SDK で説明されているように、メッセージの SBM_SCROLLBARINFO
機能をエミュレートします。
CScrollBar::GetScrollInfo
SCROLLINFO
構造体がスクロール バーについて保持している情報を取得します。
BOOL GetScrollInfo(
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
パラメーター
lpScrollInfo
SCROLLINFO
構造体へのポインター。 この構造の詳細については、Windows SDK を参照してください。
nMask
取得するスクロール バーのパラメーターを指定します。 一般的な使用法は、、SIF_ALL
の組み合わせをSIF_TRACKPOS
SIF_PAGE
SIF_POS
指定します。SIF_RANGE
値の詳細については、以下をnMask
参照してくださいSCROLLINFO
。
戻り値
メッセージが値を取得した場合、戻り値は TRUE
. それ以外の場合は、FALSE
となります。
解説
GetScrollInfo
を使用すると、アプリケーションは 32 ビットのスクロール位置を使用できます。
構造体 SCROLLINFO
には、スクロール バーに関する情報が含まれています。これには、スクロールの最小位置と最大位置、ページ サイズ、スクロール ボックスの位置 (つまみ) が含まれます。 構造体の既定値の SCROLLINFO
変更の詳細については、Windows SDK の構造に関するトピックを参照してください。
スクロール バーの位置を示し、CWnd::OnHScroll
CWnd::OnVScroll
16 ビットの位置データのみを提供する MFC Windows メッセージ ハンドラー。 GetScrollInfo
SetScrollInfo
32 ビットのスクロール バー位置データを提供します。 したがって、アプリケーションは、処理中にCWnd::OnHScroll
CWnd::OnVScroll
呼び出GetScrollInfo
すか、32 ビットのスクロール バー位置データを取得できます。
例
CWnd::OnHScroll
の例を参照してください。
CScrollBar::GetScrollLimit
スクロール バーの最大スクロール位置を取得します。
int GetScrollLimit();
戻り値
成功した場合のスクロール バーの最大位置を指定します。それ以外の場合は 0。
例
CWnd::OnHScroll
の例を参照してください。
CScrollBar::GetScrollPos
スクロール ボックスの現在位置を取得します。
int GetScrollPos() const;
戻り値
成功した場合のスクロール ボックスの現在位置を指定します。それ以外の場合は 0。
解説
現在の位置は、現在のスクロール範囲に依存する相対値です。 たとえば、スクロール範囲が 100 ~ 200 で、スクロール ボックスがバーの中央にある場合、現在の位置は 150 です。
例
CWnd::OnHScroll
の例を参照してください。
CScrollBar::GetScrollRange
指定されたスクロール バーの現在の最小および最大のスクロール バー位置を、指定された lpMinPos
場所にコピーします lpMaxPos
。
void GetScrollRange(
LPINT lpMinPos,
LPINT lpMaxPos) const;
パラメーター
lpMinPos
最小位置を受け取る整数変数を指します。
lpMaxPos
最大位置を受け取る整数変数を指します。
解説
スクロール バー コントロールの既定の範囲は空です (両方の値は 0 です)。
例
CWnd::OnHScroll
の例を参照してください。
CScrollBar::SetScrollInfo
構造体メインSCROLLINFO
スクロール バーに関する情報を設定します。
BOOL SetScrollInfo(
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
パラメーター
lpScrollInfo
SCROLLINFO
構造体へのポインター。
bRedraw
新しい情報を反映するようにスクロール バーを再描画するかどうかを指定します。 ある場合 bRedraw
は TRUE
、スクロール バーが再描画されます。 表示されている FALSE
場合は、再描画されません。 既定では、スクロール バーが再描画されます。
戻り値
成功した場合、戻り値は TRUE
. それ以外の場合は、FALSE
となります。
解説
フラグ値を含め、構造体パラメーターに SCROLLINFO
必要な値を指定する必要があります。
構造体 SCROLLINFO
には、スクロール バーに関する情報が含まれています。これには、スクロールの最小位置と最大位置、ページ サイズ、スクロール ボックスの位置 (つまみ) が含まれます。 構造体の既定値の SCROLLINFO
変更の詳細については、Windows SDK の構造に関するトピックを参照してください。
例
// Set SCROLLINFO for the scroll bar. m_ScrollBarHorz is of type
// CScrollBar class, and it is a member variable in CMyDialog class.
SCROLLINFO info;
info.cbSize = sizeof(SCROLLINFO);
info.fMask = SIF_ALL;
info.nMin = 0;
info.nMax = 10;
info.nPage = 2;
info.nPos = 5;
info.nTrackPos = 2;
m_ScrollBarHorz.SetScrollInfo(&info);
CScrollBar::SetScrollPos
スクロール ボックスの現在位置を指定した位置に設定し、指定 nPos
した場合は、新しい位置を反映するようにスクロール バーを再描画します。
int SetScrollPos(
int nPos,
BOOL bRedraw = TRUE);
パラメーター
nPos
スクロール ボックスの新しい位置を指定します。 スクロール範囲内である必要があります。
bRedraw
新しい位置を反映するようにスクロール バーを再描画するかどうかを指定します。 ある場合 bRedraw
は TRUE
、スクロール バーが再描画されます。 表示されている FALSE
場合は、再描画されません。 既定では、スクロール バーが再描画されます。
戻り値
成功した場合のスクロール ボックスの前の位置を指定します。それ以外の場合は 0。
解説
FALSE
スクロール バーが短い間隔で 2 回再描画されないように、後続の別の関数の呼び出しによってスクロール バーが再描画されるたびに設定bRedraw
されます。
例
CScrollBar::SetScrollRange の例を参照してください。
CScrollBar::SetScrollRange
指定されたスクロール バーの最小位置と最大位置の値を設定します。
void SetScrollRange(
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
パラメーター
nMinPos
最小スクロール位置を指定します。
nMaxPos
最大スクロール位置を指定します。
bRedraw
変更を反映するためにスクロール バーを再描画するかどうかを指定します。 ある場合 bRedraw
は TRUE
スクロール バーが再描画され、その場合 FALSE
は再描画されません。 既定では再描画されます。
解説
標準のスクロール バーを非表示にするには、0 に設定 nMinPos
します nMaxPos
。
スクロール バー通知メッセージの処理中にスクロール バーを非表示にするには、この関数を呼び出さないでください。
メンバー関数の呼び出しの直後にSetScrollRange
呼び出しがSetScrollPos
行われる場合は、スクロール バーが 2 回再描画されないように 0 に設定bRedraw
SetScrollPos
します。
指定されたnMinPos
nMaxPos
値の差は、32,767 より大きくすることはできません。 スクロール バー コントロールの既定の範囲は空です (両方 nMinPos
とも nMaxPos
0)。
例
// Sets minimum (0) and maximum (10) position values for the
// CScrollBar control. m_ScrollBarVert is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
m_ScrollBarVert.SetScrollRange(0, 10);
// Set the position of the scroll box.
m_ScrollBarVert.SetScrollPos(5);
// Disable the down arrow of the scroll bar. By default, both arrows
// are enabled.
m_ScrollBarVert.EnableScrollBar(ESB_DISABLE_DOWN);
CScrollBar::ShowScrollBar
スクロール バーの表示と非表示を切り替えます。
void ShowScrollBar(BOOL bShow = TRUE);
パラメーター
bShow
スクロール バーを表示するか非表示にするかを指定します。 このパラメーターの場合、 TRUE
スクロール バーが表示されます。それ以外の場合は非表示になります。
解説
アプリケーションでは、スクロール バー通知メッセージの処理中にスクロール バーを非表示にするために、この関数を呼び出さないでください。
例
CScrollBar::Create
の例を参照してください。
関連項目
CWnd
クラス
階層図
CButton
クラス
CComboBox
クラス
CEdit
クラス
CListBox
クラス
CStatic
クラス
CDialog
クラス
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示