次の方法で共有


CSpinButtonCtrl クラス

Windows コモン スピン ボタン コントロールの機能が用意されています。

構文

class CSpinButtonCtrl : public CWnd

メンバー

パブリック コンストラクター

名前 説明
CSpinButtonCtrl::CSpinButtonCtrl CSpinButtonCtrl オブジェクトを構築します。

パブリック メソッド

名前 説明
CSpinButtonCtrl::Create スピン ボタン コントロールを作成し、 CSpinButtonCtrl オブジェクトにアタッチします。
CSpinButtonCtrl::CreateEx 指定した Windows 拡張スタイルを使用してスピン ボタン コントロールを作成し、 CSpinButtonCtrl オブジェクトにアタッチします。
CSpinButtonCtrl::GetAccel スピン ボタン コントロールの高速化情報を取得します。
CSpinButtonCtrl::GetBase スピン ボタン コントロールの現在のベースを取得します。
CSpinButtonCtrl::GetBuddy 現在のバディ ウィンドウへのポインターを取得します。
CSpinButtonCtrl::GetPos スピン ボタン コントロールの現在位置を取得します。
CSpinButtonCtrl::GetRange スピン ボタン コントロールの上限と下限 (範囲) を取得します。
CSpinButtonCtrl::SetAccel スピン ボタン コントロールの加速度を設定します。
CSpinButtonCtrl::SetBase スピン ボタン コントロールのベースを設定します。
CSpinButtonCtrl::SetBuddy スピン ボタン コントロールのバディ ウィンドウを設定します。
CSpinButtonCtrl::SetPos コントロールの現在位置を設定します。
CSpinButtonCtrl::SetRange スピン ボタン コントロールの上限と下限 (範囲) を設定します。

解説

"スピン ボタン コントロール" (アップダウン コントロールとも呼ばれます) は、スクロール位置やコンパニオン コントロールに表示される数値などの値をインクリメントまたはデクリメントするためにユーザーがクリックできる矢印ボタンのペアです。 スピン ボタン コントロールに関連付けられている値は、現在の位置と呼ばれます。 スピン ボタン コントロールは、"バディ ウィンドウ" と呼ばれるコンパニオン コントロールで最もよく使用されます。

このコントロール (したがって、 CSpinButtonCtrl クラス) は、Windows 95/98 および Windows NT バージョン 3.51 以降で実行されているプログラムでのみ使用できます。

ユーザーには、スピン ボタン コントロールとその相棒ウィンドウは、多くの場合、1 つのコントロールのように見えます。 スピン ボタン コントロールが自動的にバディ ウィンドウの横に配置され、バディ ウィンドウのキャプションが現在の位置に自動的に設定されるように指定できます。 スピン ボタン コントロールと編集コントロールを使用して、ユーザーに数値入力を求めることができます。

上矢印をクリックすると、現在の位置が最大値に移動し、下矢印をクリックすると現在の位置が最小値に移動します。 既定では、最小値は 100、最大値は 0 です。 最小値が最大設定を超える場合 (既定の設定を使用する場合など)、上矢印をクリックすると位置の値が小さくなり、下矢印をクリックすると大きくなります。

バディ ウィンドウのないスピン ボタン コントロールは、一種の簡略化されたスクロール バーとして機能します。 たとえば、タブ コントロールにスピン ボタン コントロールが表示され、ユーザーが追加のタブを表示にスクロールできる場合があります。

CSpinButtonCtrlの使用方法の詳細については、「Controls および CSpinButtonCtrl の使用を参照してください。

継承階層

CObject

CCmdTarget

CWnd

CSpinButtonCtrl

要件

ヘッダー: afxcmn.h

CSpinButtonCtrl::Create

スピン ボタン コントロールを作成し、 CSpinButtonCtrl オブジェクトにアタッチします。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwStyle
スピン ボタン コントロールのスタイルを指定します。 スピン ボタン コントロール スタイルの任意の組み合わせをコントロールに適用します。 これらのスタイルについては、Windows SDK の アップダウン コントロール スタイル で説明されています。

rect
スピン ボタン コントロールのサイズと位置を指定します。 CRect オブジェクトまたは RECT 構造体のいずれかを指定できます。

pParentWnd
スピン ボタン コントロールの親ウィンドウ (通常は CDialog) へのポインター。 NULL は指定できません。

nID
スピン ボタン コントロールの ID を指定します。

戻り値

初期化が成功した場合は 0 以外。それ以外の場合は 0。

解説

最初に 2 つの手順で CSpinButtonCtrl オブジェクトを構築し、コンストラクターを呼び出してから、 Createを呼び出します。これにより、スピン ボタン コントロールが作成され、 CSpinButtonCtrl オブジェクトにアタッチされます。

拡張ウィンドウ スタイルのスピン ボタン コントロールを作成するには、Createの代わりに CSpinButtonCtrl::CreateEx を呼び出します。

CSpinButtonCtrl::CreateEx

コントロール (子ウィンドウ) を作成し、 CSpinButtonCtrl オブジェクトに関連付けます。

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwExStyle
作成するコントロールの拡張スタイルを指定します。 拡張ウィンドウ スタイルの一覧については、Windows SDK の CreateWindowExdwExStyle パラメーターを参照してください。

dwStyle
スピン ボタン コントロールのスタイルを指定します。 スピン ボタン コントロール スタイルの任意の組み合わせをコントロールに適用します。 これらのスタイルについては、Windows SDK の アップダウン コントロール スタイル で説明されています。

rect
作成するウィンドウのサイズと位置を記述する RECT 構造体への参照 ( pParentWnd のクライアント座標)。

pParentWnd
コントロールの親であるウィンドウへのポインター。

nID
コントロールの子ウィンドウ ID。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

Create の代わりにCreateExを使用して、Windows 拡張スタイルの前書きWS_EX_で指定された拡張 Windows スタイルを適用します。

CSpinButtonCtrl::CSpinButtonCtrl

CSpinButtonCtrl オブジェクトを構築します。

CSpinButtonCtrl();

CSpinButtonCtrl::GetAccel

スピン ボタン コントロールの高速化情報を取得します。

UINT GetAccel(
    int nAccel,
    UDACCEL* pAccel) const;

パラメーター

nAccel
pAccel で指定された配列内の要素の数。

pAccel
アクセラレーション情報を受け取る UDACCEL 構造体の配列へのポインター。

戻り値

取得されたアクセラレータ構造体の数。

CSpinButtonCtrl::GetBase

スピン ボタン コントロールの現在のベースを取得します。

UINT GetBase() const;

戻り値

現在の基本値。

CSpinButtonCtrl::GetBuddy

現在のバディ ウィンドウへのポインターを取得します。

CWnd* GetBuddy() const;

戻り値

現在のバディ ウィンドウへのポインター。

CSpinButtonCtrl::GetPos

スピン ボタン コントロールの現在位置を取得します。

int GetPos() const;  int GetPos32(LPBOOL lpbError = NULL) const;

パラメーター

lpbError
値が正常に取得された場合は 0 に設定されるブール値へのポインター。エラーが発生した場合は 0 以外。 このパラメーターが NULL に設定されている場合、エラーは報告されません。

戻り値

最初のバージョンでは、下位ワードの 16 ビットの現在位置が返されます。 エラーが発生した場合、上位ワードは 0 以外です。

2 番目のバージョンでは、32 ビット位置が返されます。

解説

返された値を処理すると、コントロールはバディ ウィンドウのキャプションに基づいて現在の位置を更新します。 このコントロールは、バディ ウィンドウがない場合、またはキャプションで無効または範囲外の値が指定されている場合にエラーを返します。

CSpinButtonCtrl::GetRange

スピン ボタン コントロールの上限と下限 (範囲) を取得します。

DWORD GetRange() const;

void GetRange(
    int& lower,
    int& upper) const;

void GetRange32(
    int& lower,
    int &upper) const;

パラメーター

lower
コントロールの下限を受け取る整数への参照。

upper
コントロールの上限を受け取る整数への参照。

戻り値

最初のバージョンでは、上限と下限を含む 32 ビット値が返されます。 下位ワードはコントロールの上限であり、上位ワードは下限です。

解説

GetRange32メンバー関数は、スピン ボタン コントロールの範囲を 32 ビット整数として取得します。

CSpinButtonCtrl::SetAccel

スピン ボタン コントロールの加速度を設定します。

BOOL SetAccel(
    int nAccel,
    UDACCEL* pAccel);

パラメーター

nAccel
pAccelで指定されたUDACCEL構造体の数。

pAccel
アクセラレーション情報を含む UDACCEL 構造体の配列へのポインター。 要素は、 nSec メンバーに基づいて昇順で並べ替える必要があります。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

CSpinButtonCtrl::SetBase

スピン ボタン コントロールのベースを設定します。

int SetBase(int nBase);

パラメーター

nBase
コントロールの新しい基本値。 10 進数の場合は 10、16 進数の場合は 16 にすることができます。

戻り値

成功した場合は前の基本値、無効なベースが指定された場合は 0。

解説

基本値は、バディ ウィンドウに数値を 10 進数と 16 進数のどちらで表示するかを決定します。 16 進数は常に符号なしです。10 進数は符号付きです。

CSpinButtonCtrl::SetBuddy

スピン ボタン コントロールのバディ ウィンドウを設定します。

CWnd* SetBuddy(CWnd* pWndBuddy);

パラメーター

pWndBuddy
新しいバディ ウィンドウへのポインター。

戻り値

前のバディ ウィンドウへのポインター。

解説

スピン コントロールは、ほとんどの場合、いくつかのコンテンツを表示する編集コントロールなどの別のウィンドウに関連付けられます。 この他のウィンドウは、スピン コントロールの "バディ" と呼ばれます。

CSpinButtonCtrl::SetPos

スピン ボタン コントロールの現在位置を設定します。

int SetPos(int nPos);
int SetPos32(int nPos);

パラメーター

nPos
コントロールの新しい位置。 この値は、コントロールの上限と下限で指定された範囲内である必要があります。

戻り値

前の位置 ( SetPosの場合は 16 ビット精度、 SetPos32の場合は 32 ビット精度)。

解説

SetPos32 は 32 ビット位置を設定します。

CSpinButtonCtrl::SetRange

スピン ボタン コントロールの上限と下限 (範囲) を設定します。

void SetRange(
    short nLower,
    short nUpper);

void SetRange32(
    int nLower,
    int nUpper);

パラメーター

nLowernUpper
コントロールの上限と下限。 SetRangeの場合、どちらの制限もUD_MAXVALより大きくすることも、UD_MINVAL未満にすることもできません。さらに、2 つの制限の差はUD_MAXVALを超えることはできません。 SetRange32 制限に制限はありません。任意の整数を使用します。

解説

SetRange32メンバー関数は、スピン ボタン コントロールの 32 ビット範囲を設定します。

Note

スピン ボタンの既定の範囲では、最大値が 0 に設定され、最小値が 100 に設定されます。 最大値が最小値より小さいため、上矢印をクリックすると位置が小さくなり、下矢印をクリックすると増加します。 これらの値を調整するには、 CSpinButtonCtrl::SetRange を使用します。

関連項目

MFC サンプル CMNCTRL2
CWnd クラス
階層図
CSliderCtrl クラス