CButton クラス

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

構文

class CButton : public CWnd

メンバー

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

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

パブリック メソッド

名前 説明
CButton::Create ボタン コントロールWindows作成し、 オブジェクトにアタッチCButtonします。
CButton::D rawItem 所有者描画オブジェクトを描画するには、 をオーバーライド CButton します。
CButton::GetBitmap SetBitmap で以前に設定したビットマップの ハンドルを取得します
CButton::GetButtonStyle ボタン コントロールのスタイルに関する情報を取得します。
CButton::GetCheck ボタン コントロールのチェック状態を取得します。
CButton::GetCursor SetCursor で以前に設定されたカーソル イメージの ハンドルを取得します
CButton::GetIcon SetIcon で以前に設定したアイコンのハンドルを 取得します
CButton::GetIdealSize ボタン コントロールの理想的なサイズを取得します。
CButton::GetImageList ボタン コントロールのイメージ リストを取得します。
CButton::GetNote 現在のコマンド リンク コントロールのメモ コンポーネントを取得します。
CButton::GetNoteLength 現在のコマンド リンク コントロールのメモ テキストの長さを取得します。
CButton::GetSplitGlyph 現在の分割ボタン コントロールに関連付けられているグリフを取得します。
CButton::GetSplitImageList 現在の分割ボタン コントロールのイメージ リストを取得します。
CButton::GetSplitInfo 現在の分割ボタン コントロールを定義する情報を取得します。
CButton::GetSplitSize 現在の分割ボタン コントロールのドロップダウン コンポーネントの外接する四角形を取得します。
CButton::GetSplitStyle 現在の分割ボタン コントロールを定義する分割ボタン スタイルを取得します。
CButton::GetState ボタン コントロールのチェック状態、強調表示状態、フォーカス状態を取得します。
CButton::GetTextMargin ボタン コントロールのテキスト 余白を取得します。
CButton::SetBitmap ボタンに表示するビットマップを指定します。
CButton::SetButtonStyle ボタンのスタイルを変更します。
CButton::SetCheck ボタン コントロールのチェック状態を設定します。
CButton::SetCursor ボタンに表示するカーソル イメージを指定します。
CButton::SetDropDownState 現在の分割ボタン コントロールのドロップダウン状態を設定します。
CButton::SetIcon ボタンに表示するアイコンを指定します。
CButton::SetImageList ボタン コントロールのイメージ リストを設定します。
CButton::SetNote 現在のコマンド リンク コントロールにメモを設定します。
CButton::SetSplitGlyph 指定したグリフを現在の分割ボタン コントロールに関連付ける。
CButton::SetSplitImageList イメージ リストを現在の分割ボタン コントロールに関連付ける。
CButton::SetSplitInfo 現在の分割ボタン コントロールを定義する情報を指定します。
CButton::SetSplitSize 現在の分割ボタン コントロールのドロップダウン コンポーネントの外接する四角形を設定します。
CButton::SetSplitStyle 現在の分割ボタン コントロールのスタイルを設定します。
CButton::SetState ボタン コントロールの強調表示状態を設定します。
CButton::SetTextMargin ボタン コントロールのテキスト 余白を設定します。

解説

ボタン コントロールは、クリックしてオフにできる小さな四角形の子ウィンドウです。 ボタンは単独またはグループで使用できます。また、ラベルを付け、テキストなしで表示することもできます。 ボタンは通常、ユーザーがボタンをクリックすると外観を変更します。

一般的なボタンは、チェック ボックス、ラジオ ボタン、およびプッシュボタンです。 オブジェクトCButtonは、Create メンバー関数によって初期化時に指定されたボタン スタイルに従って、これらになります

さらに、 から派生 した CBitmapButtonCButton クラスでは、テキストではなくビットマップ イメージでラベル付けされたボタン コントロールの作成がサポートされています。 は CBitmapButton 、ボタンの上向き、下向き、フォーカス、無効化の各状態に対して個別のビットマップを持つ場合があります。

ボタン コントロールは、ダイアログ テンプレートから作成するか、コード内で直接作成できます。 どちらの場合も、CButtonCButtonCreate最初にコンストラクターを呼び出してオブジェクトを構築し、次にメンバー関数を呼び出して Windows ボタン コントロールを作成し、それを オブジェクトにアタッチCButtonします。

構築は、 から派生したクラスの 1 段階のプロセスです CButton。 派生クラスのコンストラクターを記述し、コンストラクター内から Create を呼び出します。

ボタン コントロールによって親 (通常は CDialog から派生したクラス) に送信された Windows 通知メッセージを処理する場合は、メッセージマップ エントリとメッセージ ハンドラー メンバー関数を各メッセージの親クラスに追加します。

各 message-map エントリは、次の形式を取ります。

ON_Notification(id, memberFxn)

ここで 、id は通知を送信するコントロールの子ウィンドウ ID を指定し、 memberFxn は通知を処理するために書き込まれた親メンバー関数の名前です。

親の関数プロトタイプは次のとおりです。

afx_msg void memberFxn();

潜在的なメッセージ マップ エントリは次のとおりです。

マップ エントリ 次の場合に親に送信されます。
ON_BN_CLICKED ユーザーがボタンをクリックします。
ON_BN_DOUBLECLICKED ユーザーがボタンをダブルクリックします。

ダイアログリソース CButton からオブジェクトを CButton 作成すると、ユーザーがダイアログボックスを閉じたときにオブジェクトが自動的に破棄されます。

ウィンドウ内にオブジェクトを作成 CButton する場合は、そのオブジェクトを破棄する必要がある場合があります。 関数を使用 new してヒープにオブジェクトを作成 CButton する場合は、オブジェクトでを呼び出し delete て、ユーザーが Windows ボタンコントロールを閉じたときにオブジェクトを破棄する必要があります。 オブジェクトをスタックに作成 CButton した場合、または親ダイアログオブジェクトに埋め込んだ場合は、自動的に破棄されます。

継承階層

CObject

CCmdTarget

CWnd

CButton

必要条件

ヘッダー: afxwin.h

CButton:: CButton

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

CButton();

// Declare a button object.
CButton myButton;

CButton:: Create

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

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

パラメーター

lpszCaption
ボタンコントロールのテキストを指定します。

dwStyle
ボタンコントロールのスタイルを指定します。 ボタン スタイル の任意の組み合わせをボタンに適用します。

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

pParentWnd
ボタンコントロールの親ウィンドウ (通常は CDialog ) を指定します。 NULL は指定できません。

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

戻り値

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

解説

オブジェクトを構築するには、 CButton 2 つの手順を実行します。 まず、コンストラクターを呼び出し、を呼び出し Create ます。これにより Windows ボタンコントロールが作成され、オブジェクトに CButton アタッチされます。

WS_VISIBLE スタイルが指定されている場合、Windows をアクティブ化してボタンを表示するために必要なすべてのメッセージを、ボタンコントロールに送信します。

次の ウィンドウスタイル をボタンコントロールに適用します。

  • 常に WS_CHILD

  • WS_VISIBLE 通常

  • WS_DISABLED はまれ

  • グループコントロールに WS_GROUP

  • タブオーダーにボタンを含める WS_TABSTOP

CButton myButton1, myButton2, myButton3, myButton4;

// Create a push button.
myButton1.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                 CRect(10, 10, 100, 30), pParentWnd, 1);

// Create a radio button.
myButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                 CRect(10, 40, 100, 70), pParentWnd, 2);

// Create an auto 3-state button.
myButton3.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                 CRect(10, 70, 100, 100), pParentWnd, 3);

// Create an auto check box.
myButton4.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX,
                 CRect(10, 100, 100, 130), pParentWnd, 4);

CButton::D rawItem

オーナー描画ボタンの外観が変更されたときにフレームワークによって呼び出されます。

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

パラメーター

lpDrawItemStruct
DRAWITEMSTRUCT構造体への long ポインター。 構造体には、描画する項目と必要な描画の種類に関する情報が含まれます。

解説

オーナー描画のボタンには、BS_OWNERDRAW スタイルが設定されています。 オーナー描画 CButton オブジェクトの描画を実装するには、このメンバー関数をオーバーライドします。 アプリケーションでは、メンバー関数が終了する前に、 lpDrawItemStruct で指定された表示コンテキスト用に選択されたすべてのグラフィックスデバイスインターフェイス (GDI) オブジェクトを復元する必要があります。

BS_スタイル値も参照してください。

// NOTE: CMyButton is a class derived from CButton. The CMyButton
// object was created as follows:
//
// CMyButton myButton;
// myButton.Create(_T("My button"),
//      WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
//      CRect(10,10,100,30), pParentWnd, 1);
//

// This example implements the DrawItem method for a CButton-derived
// class that draws the button's text using the color red.
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
   UINT uStyle = DFCS_BUTTONPUSH;

   // This code only works with buttons.
   ASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON);

   // If drawing selected, add the pushed style to DrawFrameControl.
   if (lpDrawItemStruct->itemState & ODS_SELECTED)
      uStyle |= DFCS_PUSHED;

   // Draw the button frame.
   ::DrawFrameControl(lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem,
                      DFC_BUTTON, uStyle);

   // Get the button's text.
   CString strText;
   GetWindowText(strText);

   // Draw the button text using the text color red.
   COLORREF crOldColor = ::SetTextColor(lpDrawItemStruct->hDC, RGB(255, 0, 0));
   ::DrawText(lpDrawItemStruct->hDC, strText, strText.GetLength(),
              &lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
   ::SetTextColor(lpDrawItemStruct->hDC, crOldColor);
}

CButton:: GetBitmap

このメンバー関数を呼び出して、ボタンに関連付けられている、以前に SetBitmapで設定したビットマップのハンドルを取得します。

HBITMAP GetBitmap() const;

戻り値

ビットマップを処理するハンドル。 以前にビットマップが指定されていない場合は NULL です。

CButton myBitmapButton;

// Create a bitmap button.
myBitmapButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_BITMAP,
                      CRect(10, 10, 60, 50), pParentWnd, 1);

// If no bitmap is defined for the button, define the bitmap to the
// system close bitmap.
if (myBitmapButton.GetBitmap() == NULL)
   myBitmapButton.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CLOSE)));

CButton:: GetButtonStyle

ボタンコントロールスタイルに関する情報を取得します。

UINT GetButtonStyle() const;

戻り値

この CButton オブジェクトのボタンスタイルを返します。 この関数は、他のウィンドウスタイルではなく、 BS_ スタイル値のみを返します。

CButton myRadioButton;

// Create a radio button.
myRadioButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                     CRect(10, 10, 100, 30), pParentWnd, 1);

// Change the button style to use one of the "auto" styles; for
// push button, change to def push button.
UINT uStyle = myRadioButton.GetButtonStyle();
if (uStyle == BS_PUSHBUTTON)
   uStyle = BS_DEFPUSHBUTTON;
else if (uStyle == BS_RADIOBUTTON)
   uStyle = BS_AUTORADIOBUTTON;
else if (uStyle == BS_CHECKBOX)
   uStyle = BS_AUTOCHECKBOX;
else if (uStyle == BS_3STATE)
   uStyle = BS_AUTO3STATE;

// Change the button style to the one wanted.
myRadioButton.SetButtonStyle(uStyle);

CButton:: GetCheck

オプションボタンまたはチェックボックスのチェックの状態を取得します。

int GetCheck() const;

戻り値

BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTTON、または BS_3STATE スタイルを使用して作成されたボタンコントロールからの戻り値は、次のいずれかの値になります。

説明
BST_UNCHECKED ボタンの状態がオフになっています。
BST_CHECKED ボタンの状態がチェックされます。
BST_INDETERMINATE ボタンの状態は不確定です (ボタンに BS_3STATE または BS_AUTO3STATE スタイルがある場合にのみ適用されます)。

ボタンに他のスタイルがある場合、戻り値は BST_UNCHECKED です。

CButton myA3Button;

// Create an auto 3-state button.
myA3Button.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                  CRect(10, 10, 100, 30), pParentWnd, 1);

// Set the check state to the next state
// (i.e. BST_UNCHECKED changes to BST_CHECKED
// BST_CHECKED changes to BST_INDETERMINATE
// BST_INDETERMINATE changes to BST_UNCHECKED).
myA3Button.SetCheck(((myA3Button.GetCheck() + 1) % 3));

CButton:: GetCursor

このメンバー関数を呼び出して、ボタンに関連付けられているカーソルのハンドルを取得します。これは、 SetCursorで設定されています。

HCURSOR GetCursor();

戻り値

カーソルイメージを処理するハンドル。 カーソルが前に指定されていない場合は NULL です。

CButton myIconButton;

// Create an icon button.
myIconButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                    CRect(10, 10, 60, 50), pParentWnd, 1);

// If no image is defined for the button, define the image to the
// system arrow and question mark cursor.
if (myIconButton.GetCursor() == NULL)
   myIconButton.SetCursor(::LoadCursor(NULL, IDC_HELP));

CButton:: GetIcon

このメンバー関数を呼び出して、ボタンに関連付けられている SetIconで以前に設定したアイコンのハンドルを取得します。

HICON GetIcon() const;

戻り値

アイコンにへのハンドル。 以前にアイコンが指定されていない場合は NULL です。

CButton myIconButton2;

// Create an icon button.
myIconButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                     CRect(10, 10, 60, 50), pParentWnd, 1);

// If no icon is defined for the button, define the icon to the
// system error icon.
if (myIconButton2.GetIcon() == NULL)
   myIconButton2.SetIcon(::LoadIcon(NULL, IDI_ERROR));

CButton:: GetIdealSize

ボタンコントロールの理想的なサイズを取得します。

BOOL GetIdealSize(SIZE* psize);

パラメーター

psize
ボタンの現在のサイズへのポインター。

戻り値

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

解説

このメンバー関数は、Windows SDK の [ボタン] セクションで説明されているように、BCM_GETIDEALSIZE メッセージの機能をエミュレートします。

CButton:: GetImageList

ボタンコントロールからイメージリストを取得するには、このメソッドを呼び出します。

BOOL GetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

パラメーター

pbuttonImagelist
オブジェクトの CButton イメージリストへのポインター。

戻り値

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

解説

このメンバー関数は、Windows SDK の [ボタン] セクションで説明されているように、BCM_GETIMAGELIST メッセージの機能をエミュレートします。

CButton:: GetNote

現在のコマンドリンクコントロールに関連付けられているノートテキストを取得します。

CString GetNote() const;

BOOL GetNote(
    LPTSTR lpszNote,
    UINT* cchNote) const;

パラメーター

lpszNote
入出力バッファーへのポインター。呼び出し元が割り当てと割り当て解除を行います。 戻り値が TRUE の場合、現在のコマンドリンクコントロールに関連付けられているノートテキストがバッファーに格納されます。それ以外の場合、バッファーは変更されません。

cchNote
[入力、出力]符号なし整数変数へのポインター。 このメソッドが呼び出されると、変数には、 Lpsznote パラメーターによって指定されたバッファーのサイズが格納されます。 このメソッドから制御が戻るときに、戻り値が TRUE の場合、現在のコマンドリンクコントロールに関連付けられているメモのサイズが変数に格納されます。 戻り値が FALSE の場合、変数には、メモを格納するために必要なバッファーサイズが格納されます。

戻り値

最初のオーバーロードでは、現在のコマンドリンクコントロールに関連付けられているノートテキストを含む CString オブジェクト。

\- または -

2番目のオーバーロードでは、このメソッドが成功した場合は TRUE になります。それ以外の場合は FALSE。

解説

このメソッドは、ボタンスタイルが BS_COMMANDLINK または BS_DEFCOMMANDLINK コントロールでのみ使用します。

このメソッドは、Windows SDK で説明されているBCM_GETNOTEメッセージを送信します。

CButton:: GetNoteLength

現在のコマンドリンクコントロールのノートテキストの長さを取得します。

UINT GetNoteLength() const;

戻り値

現在のコマンドリンクコントロールのノートテキストの長さ (16 ビット Unicode 文字)。

解説

このメソッドは、ボタンスタイルが BS_COMMANDLINK または BS_DEFCOMMANDLINK コントロールでのみ使用します。

このメソッドは、Windows SDK で説明されているBCM_GETNOTELENGTHメッセージを送信します。

CButton:: GetSplitGlyph

現在の分割ボタンコントロールに関連付けられているグリフを取得します。

TCHAR GetSplitGlyph() const;

戻り値

現在の分割ボタンコントロールに関連付けられているグリフ文字。

解説

グリフは、特定のフォントにおける文字の物理的な表現です。 たとえば、分割ボタンコントロールは、Unicode チェックマーク文字 (U + 2713) のグリフで装飾される場合があります。

このメソッドは、ボタンスタイルが BS_SPLITBUTTON または BS_DEFSPLITBUTTON コントロールでのみ使用します。

このメソッドは、BCSIF_GLYPH フラグを使用してBUTTON_SPLITINFO構造体のメンバーを初期化 mask し、Windows SDK で説明されているBCM_GETSPLITINFOメッセージにその構造体を送信します。 メッセージ関数がを返すと、このメソッドは構造体のメンバーから himlGlyph グリフを取得します。

CButton:: GetSplitImageList

現在の分割ボタンコントロールの イメージリスト を取得します。

CImageList* GetSplitImageList() const;

戻り値

CImageListオブジェクトへのポインター。

解説

このメソッドは、ボタンスタイルが BS_SPLITBUTTON または BS_DEFSPLITBUTTON コントロールでのみ使用します。

このメソッドは、BCSIF_IMAGE フラグを使用してBUTTON_SPLITINFO構造体のメンバーを初期化 mask し、Windows SDK で説明されているBCM_GETSPLITINFOメッセージにその構造体を送信します。 メッセージ関数がを返すと、このメソッドは構造体のメンバーから himlGlyph イメージリストを取得します。

CButton:: GetSplitInfo

現在の分割ボタンコントロールを Windows どのように描画するかを決定するパラメーターを取得します。

BOOL GetSplitInfo(PBUTTON_SPLITINFO pInfo) const;

パラメーター

pInfo
入出力現在の分割ボタンコントロールに関する情報を受け取る BUTTON_SPLITINFO 構造体へのポインター。 呼び出し元は、構造体の割り当てを行います。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドは、ボタンスタイルが BS_SPLITBUTTON または BS_DEFSPLITBUTTON コントロールでのみ使用します。

このメソッドは、Windows SDK で説明されているBCM_GETSPLITINFOメッセージを送信します。

CButton:: GetSplitSize

現在の分割ボタンコントロールのドロップダウンコンポーネントの外接する四角形を取得します。

BOOL GetSplitSize(LPSIZE pSize) const;

パラメーター

pSize
入出力四角形の説明を受け取る サイズ 構造体へのポインター。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドは、ボタンスタイルが BS_SPLITBUTTON または BS_DEFSPLITBUTTON コントロールでのみ使用します。

分割ボタンコントロールが展開されると、リストコントロールやページャーコントロールなどのドロップダウンコンポーネントが表示されます。 このメソッドは、ドロップダウンコンポーネントを含む外接する四角形を取得します。

このメソッドは、BCSIF_SIZE フラグを使用してBUTTON_SPLITINFO構造体のメンバーを初期化 mask し、Windows SDK で説明されているBCM_GETSPLITINFOメッセージにその構造体を送信します。 メッセージ関数がを返すと、このメソッドは構造体のメンバーから size 外接する四角形を取得します。

CButton:: GetSplitStyle

現在の分割ボタンコントロールを定義する分割ボタンのスタイルを取得します。

UINT GetSplitStyle() const;

戻り値

分割ボタンのスタイルのビットごとの組み合わせ。 詳細については、 BUTTON_SPLITINFO構造体のメンバーを参照してください uSplitStyle

解説

このメソッドは、ボタンスタイルが BS_SPLITBUTTON または BS_DEFSPLITBUTTON コントロールでのみ使用します。

分割ボタンのスタイルでは、分割ボタンのアイコンを描画 Windows に使用する、配置、縦横比、およびグラフィカルな形式を指定します。

このメソッドは、BCSIF_STYLE フラグを使用してBUTTON_SPLITINFO構造体のメンバーを初期化 mask し、Windows SDK で説明されているBCM_GETSPLITINFOメッセージにその構造体を送信します。 メッセージ関数がを返すと、このメソッドは構造体のメンバーから uSplitStyle 分割ボタンのスタイルを取得します。

CButton:: GetState

ボタンコントロールの状態を取得します。

UINT GetState() const;

戻り値

ボタンコントロールの現在の状態を示す値の組み合わせを格納するビットフィールド。 次の表に、使用可能な値を示します。

ボタンの状態 説明
BST_UNCHECKED 0x0000 初期状態。
BST_CHECKED 0x0001 ボタンコントロールがチェックされます。
BST_INDETERMINATE 0x0002 状態は不確定です (ボタンコントロールに3つの状態がある場合にのみ可能です)。
BST_PUSHED 0x0004 ボタンコントロールが押されています。
BST_FOCUS 0x0008 ボタンコントロールにフォーカスがあります。

解説

BS_3STATE または BS_AUTO3STATE ボタンのスタイルを持つボタンコントロールは、中間状態という名前の3番目の状態を持つチェックボックスを作成します。 不確定状態は、チェックボックスがオンでもオフでもないことを示します。

CButton myPushButton;

// Create a push button.
myPushButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                    CRect(10, 10, 100, 30), pParentWnd, 1);

// Invert the highlight state of the button.
myPushButton.SetState(!(myPushButton.GetState() & 0x0004));

CButton:: GetTextMargin

オブジェクトのテキストの CButton 余白を取得するには、このメソッドを呼び出します。

BOOL GetTextMargin(RECT* pmargin);

パラメーター

pmargin
オブジェクトのテキストの CButton 余白へのポインター。

戻り値

テキストの余白を返します。 正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメンバー関数は、Windows SDK の [ボタン] セクションで説明されているように、BCM_GETTEXTMARGIN メッセージの機能をエミュレートします。

CButton:: SetBitmap

このメンバー関数を呼び出して、新しいビットマップをボタンに関連付けます。

HBITMAP SetBitmap(HBITMAP hBitmap);

パラメーター

hBitmap
ビットマップのハンドル。

戻り値

以前にボタンに関連付けられていたビットマップのハンドル。

解説

ビットマップは、既定で中心となるボタンの表面に自動的に配置されます。 ビットマップがボタンに対して大きすぎる場合は、いずれかの側でクリップされます。 次のような他の配置オプションを選択できます。

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

ボタンごとに4つのビットマップを使用する Cbitmapbuttonとは異なり、で SetBitmap は、ボタンごとにビットマップが1つだけ使用されます。 このボタンが押されると、ビットマップが下と右にシフトされます。

操作が完了したら、ビットマップを解放する必要があります。

CButton myBitmapButton;

// Create a bitmap button.
myBitmapButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_BITMAP,
                      CRect(10, 10, 60, 50), pParentWnd, 1);

// If no bitmap is defined for the button, define the bitmap to the
// system close bitmap.
if (myBitmapButton.GetBitmap() == NULL)
   myBitmapButton.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CLOSE)));

CButton:: SetButtonStyle

ボタンのスタイルを変更します。

void SetButtonStyle(
    UINT nStyle,
    BOOL bRedraw = TRUE);

パラメーター

nStyle
ボタンの スタイルを指定します。

bRedraw
ボタンを再描画するかどうかを指定します。 0以外の値を指定すると、ボタンが再描画されます。 0の値を指定しても、ボタンは再描画されません。 既定では、ボタンが再描画されます。

解説

ボタンのスタイルを取得するには、 GetButtonStyle メンバー関数を使用します。 完全なボタンスタイルの下位ワードは、ボタン固有のスタイルです。

CButton myRadioButton;

// Create a radio button.
myRadioButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                     CRect(10, 10, 100, 30), pParentWnd, 1);

// Change the button style to use one of the "auto" styles; for
// push button, change to def push button.
UINT uStyle = myRadioButton.GetButtonStyle();
if (uStyle == BS_PUSHBUTTON)
   uStyle = BS_DEFPUSHBUTTON;
else if (uStyle == BS_RADIOBUTTON)
   uStyle = BS_AUTORADIOBUTTON;
else if (uStyle == BS_CHECKBOX)
   uStyle = BS_AUTOCHECKBOX;
else if (uStyle == BS_3STATE)
   uStyle = BS_AUTO3STATE;

// Change the button style to the one wanted.
myRadioButton.SetButtonStyle(uStyle);

CButton:: SetCheck

オプションボタンまたはチェックボックスのチェック状態を設定またはリセットします。

void SetCheck(int nCheck);

パラメーター

n
チェックの状態を指定します。 このパラメーターには、次のいずれかを指定できます。

説明
BST_UNCHECKED ボタンの状態を [オフ] に設定します。
BST_CHECKED ボタンの状態を [オン] に設定します。
BST_INDETERMINATE ボタンの状態を [不確定] に設定します。 この値は、ボタンのスタイルが BS_3STATE または BS_AUTO3STATE の場合にのみ使用できます。

解説

このメンバー関数は、プッシュボタンには影響しません。

CButton myA3Button;

// Create an auto 3-state button.
myA3Button.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                  CRect(10, 10, 100, 30), pParentWnd, 1);

// Set the check state to the next state
// (i.e. BST_UNCHECKED changes to BST_CHECKED
// BST_CHECKED changes to BST_INDETERMINATE
// BST_INDETERMINATE changes to BST_UNCHECKED).
myA3Button.SetCheck(((myA3Button.GetCheck() + 1) % 3));

CButton:: SetCursor

このメンバー関数を呼び出して、新しいカーソルをボタンに関連付けます。

HCURSOR SetCursor(HCURSOR hCursor);

パラメーター

hCursor
カーソルのハンドル。

戻り値

以前にボタンに関連付けられたカーソルのハンドル。

解説

既定では、カーソルはボタンの表面に自動的に配置されます。 カーソルがボタンに対して大きすぎる場合は、いずれかの側でクリップされます。 次のような他の配置オプションを選択できます。

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

ボタンごとに4つのビットマップを使用する Cbitmapbuttonとは異なり、で SetCursor は、ボタンごとに1つのカーソルのみが使用されます。 このボタンが押されると、カーソルが下と右に移動したように見えます。

CButton myIconButton;

// Create an icon button.
myIconButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                    CRect(10, 10, 60, 50), pParentWnd, 1);

// If no image is defined for the button, define the image to the
// system arrow and question mark cursor.
if (myIconButton.GetCursor() == NULL)
   myIconButton.SetCursor(::LoadCursor(NULL, IDC_HELP));

CButton::SetDropDownState

現在の分割ボタン コントロールのドロップダウン状態を設定します。

BOOL SetDropDownState(BOOL fDropDown);

パラメーター

fDropDown
[in]この状態を設定BST_DROPDOWNPUSHED TRUE。それ以外の場合は FALSE。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

分割ボタン コントロールは、BS_SPLITBUTTON または BS_DEFSPLITBUTTON のスタイルを持ち、ボタンとその右側のドロップダウン矢印で構成されます。 詳しくは、「ボタンのスタイル」をご覧ください。 通常、ドロップダウンの状態は、ユーザーがドロップダウン矢印をクリックすると設定されます。 このメソッドを使用して、コントロールのドロップダウン状態をプログラムで設定します。 ドロップダウン矢印は、状態を示すために網掛けで描画されます。

このメソッドは、BCM_SETDROPDOWNSTATE SDK で説明されているメッセージをWindowsします。

最初のコード例では、分割ボタン コントロール m_splitButtonにプログラムでアクセスするために使用される変数 を定義します。 この変数は、次の例で使用されます。

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

次のコード例では、分割ボタン コントロールの状態を設定して、ドロップダウン矢印がプッシュされたかどうかを示します。

/* Set the state of the split button control to indicate that 
   the drop-down arrow is pushed. The arrow is drawn shaded to 
   indicate the state.
   */
m_splitButton.SetDropDownState(TRUE);

CButton::SetElevationRequired

現在のボタン コントロールの状態を に設定 elevation requiredします。これは、コントロールに管理者特権のセキュリティ アイコンを表示するために必要です。

BOOL SetElevationRequired(BOOL fElevationRequired);

パラメーター

fElevationRequired
[in]状態を設定する場合 elevation required は TRUE、それ以外の場合は FALSE。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

ボタンまたはコマンド リンク コントロールで、アクションを実行するために昇格されたセキュリティアクセス許可が必要な場合は、コントロールを状態に設定 elevation required します。 その後、Windowsにユーザー アカウント制御 (UAC) シールド アイコンが表示されます。 詳細については、「ユーザー アカウント制御」を参照してください。

このメソッドは、BCM_SETSHIELD SDK で説明されているメッセージをWindowsします。

CButton::SetIcon

このメンバー関数を呼び出して、新しいアイコンをボタンに関連付ける。

HICON SetIcon(HICON hIcon);

パラメーター

hIcon
アイコンのハンドル。

戻り値

ボタンに以前に関連付けられたアイコンのハンドル。

解説

このアイコンは、ボタンの顔に自動的に配置され、既定で中央に配置されます。 ボタンに対してアイコンが大きすぎる場合は、どちらかの側でクリップされます。 次のような他の配置オプションを選択できます。

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

ボタンごとに 4 つのビットマップを使用する CBitmapButtonSetIcon とは異なり、ボタンごとに使用されるアイコンは 1 つのみです。 ボタンを押すと、アイコンが下にシフトして右にシフトして表示されます。

CButton myIconButton2;

// Create an icon button.
myIconButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                     CRect(10, 10, 60, 50), pParentWnd, 1);

// If no icon is defined for the button, define the icon to the
// system error icon.
if (myIconButton2.GetIcon() == NULL)
   myIconButton2.SetIcon(::LoadIcon(NULL, IDI_ERROR));

CButton::SetImageList

オブジェクトのイメージ リストを設定するには、このメソッドを呼び出 CButton します。

BOOL SetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

パラメーター

pbuttonImagelist
新しいイメージ リストへのポインター。

戻り値

成功した場合は TRUE、失敗した場合は FALSE を返します。

解説

このメンバー関数は、BCM_SETIMAGELIST SDK の Buttons セクションで説明するように、Windowsします。

CButton::SetNote

現在のコマンド リンク コントロールのメモ テキストを設定します。

BOOL SetNote(LPCTSTR lpszNote);

パラメーター

lpszNote
[in]コマンド リンク コントロールのメモ テキストとして設定される Unicode 文字列へのポインター。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドは、ボタン のスタイルがまたは一部のコントロールBS_COMMANDLINKでのみBS_DEFCOMMANDLINK。

このメソッドは、BCM_SETNOTE SDK で説明されているメッセージをWindowsします。

最初のコード例では、コマンド リンク コントロール m_cmdLinkにプログラムでアクセスするために使用される変数 を定義します。 この変数は、次の例で使用されます。

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

次のコード例では、コマンド リンク コントロールのメモ テキストを設定します。

// Set the command link text.
m_cmdLink.SetNote(_T("This is the command link note."));

CButton::SetSplitGlyph

指定したグリフを現在の分割ボタン コントロールに関連付ける。

BOOL SetSplitGlyph(TCHAR chGlyph);

パラメーター

chGlyph
[in]分割ボタンのドロップダウン矢印として使用するグリフを指定する文字。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドは、ボタンのスタイルが設定されているコントロールまたはコントロールBS_SPLITBUTTON使用BS_DEFSPLITBUTTON。

グリフは、特定のフォント内の文字の物理的な表現です。 chGlyph パラメーターはグリフとして使用されませんが、代わりにシステム定義グリフのセットからグリフを選択するために使用されます。 既定のドロップダウン矢印グリフは文字 '6' で指定され、Unicode 文字 BLACK DOWN-POINTING TRIANGLE (U+25BC) に似たものになります。

maskこのメソッドは、BCSIF_GLYPH フラグを使用して BUTTON_SPLITINFOhimlGlyph 構造体のメンバーを初期化し、chGlyph パラメーターを使用してメンバーを初期化し、Windows SDK で説明されている BCM_GETSPLITINFO メッセージでその構造体を送信します。

CButton::SetSplitImageList

イメージ リストを 現在の分割 ボタン コントロールに関連付ける。

BOOL SetSplitImageList(CImageList* pSplitImageList);

パラメーター

pSplitImageList
[in]現在の分割ボタン コントロールに割り当てる CImageList オブジェクトへのポインター。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドは、ボタン のスタイルが設定されているコントロールまたはコントロールBS_SPLITBUTTON使用BS_DEFSPLITBUTTON。

maskこのメソッドは、BCSIF_IMAGE フラグを使用して BUTTON_SPLITINFOhimlGlyph 構造体のメンバーを初期化し、pSplitImageList パラメーターを使用してメンバーを初期化し、Windows SDK で説明されている BCM_GETSPLITINFO メッセージでその構造体を送信します。

CButton::SetSplitInfo

現在の分割ボタン コントロールをWindowsする方法を決定するパラメーターを指定します。

BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);

パラメーター

Pinfo
[in]現在の分割 BUTTON_SPLITINFO を定義する構造体へのポインター。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドは、ボタン のスタイルが設定されているコントロールまたはコントロールBS_SPLITBUTTON使用BS_DEFSPLITBUTTON。

このメソッドは、BCM_SETSPLITINFO SDK で説明されているメッセージをWindowsします。

最初のコード例では、分割ボタン コントロール m_splitButtonにプログラムでアクセスするために使用される変数 を定義します。

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

次のコード例では、分割ボタンのドロップダウン矢印に使用されるグリフを変更します。 この例では、上向き三角形グリフを既定の下向き三角形グリフに置き換える。 表示されるグリフは、 構造体のメンバーで指定した文字 himlGlyph によって異 BUTTON_SPLITINFO なります。 下を指す三角形グリフは文字 '6' で指定され、上を指す三角形グリフは文字 '5' で指定されます。 比較については、便利なメソッド CButton::SetSplitGlyph を参照してください

/* 
   The drop-down arrow glyph is a function of the specified character. 
   The default "down" drop-down arrow glyph is specified by a 
   character '6'. Set the "up" arrow glyph, which is a character '5'.
   See the convenience method, SetSplitGlyph(), for comparison.
   */
BUTTON_SPLITINFO bsInfo = {0};
bsInfo.mask = BCSIF_GLYPH;
TCHAR chGlyph = _T('5'); // "up" arrow glyph
bsInfo.himlGlyph = (HIMAGELIST)chGlyph;
bRC = m_splitButton.SetSplitInfo(&bsInfo);

CButton::SetSplitSize

現在の分割ボタン コントロールのドロップダウン コンポーネントの外接する四角形を設定します。

BOOL SetSplitSize(LPSIZE pSize);

パラメーター

pSize
[in]外接 する四角形 を記述する SIZE 構造体へのポインター。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドは、ボタン のスタイルが設定されているコントロールまたはコントロールBS_SPLITBUTTON使用BS_DEFSPLITBUTTON。

分割ボタン コントロールを展開すると、リスト コントロールやページコントロールなどのドロップダウン コンポーネントを表示できます。 このメソッドは、ドロップダウン コンポーネントを含む外接する四角形のサイズを指定します。

maskこのメソッドは、BCSIF_SIZE フラグを使用して BUTTON_SPLITINFOsize 構造体のメンバーを初期化し、pSize パラメーターを使用してそのメンバーを初期化し、Windows SDK で説明されている BCM_GETSPLITINFO メッセージでその構造体を送信します。

最初のコード例では、分割ボタン コントロール m_splitButtonにプログラムでアクセスするために使用される変数 を定義します。 この変数は、次の例で使用されます。

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

次のコード例では、分割ボタンのドロップダウン矢印のサイズが 2 倍になります。

// Double the size of the split button drop-down arrow.
SIZE sz;
bRC = m_splitButton.GetSplitSize(&sz); // current size
sz.cx = sz.cx * 2;
sz.cy = sz.cy * 2;
bRC = m_splitButton.SetSplitSize(&sz);

CButton::SetSplitStyle

現在の分割ボタン コントロールのスタイルを設定します。

BOOL SetSplitStyle(UINT uSplitStyle);

パラメーター

uSplitStyle
[in]分割ボタン スタイルのビットの組み合わせ。 詳細については、 構造体のメンバー uSplitStyle に関する BUTTON_SPLITINFO してください。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドは、ボタン のスタイルが設定されているコントロールまたはコントロールBS_SPLITBUTTON使用BS_DEFSPLITBUTTON。

分割ボタンのスタイルは、分割ボタン アイコンを描画するために使用する配置、縦横比、およびWindows形式を指定します。 詳細については、 構造体のメンバー uSplitStyle に関する BUTTON_SPLITINFO してください。

maskこのメソッドは、BCSIF_STYLE フラグを使用して BUTTON_SPLITINFOuSplitStyle 構造体のメンバーを初期化し、uSplitStyle パラメーターを使用してメンバーを初期化し、Windows SDK で説明されている BCM_GETSPLITINFO メッセージでその構造体を送信します。

最初のコード例では、分割ボタン コントロール m_splitButtonにプログラムでアクセスするために使用される変数 を定義します。

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

次のコード例では、分割ボタンのドロップダウン矢印のスタイルを設定します。 [BCSS_ALIGNLEFT] スタイルでは、ボタンの左側に矢印が表示され、BCSS_STRETCH スタイルでは、ボタンのサイズを変更するときにドロップダウン矢印の比率が保持されます。

/* 
    Set the style of the split button drop-down arrow: Display the 
    arrow on the left and retain the arrow's proportions when resizing 
    the control.
    */
bRC = m_splitButton.SetSplitStyle(BCSS_ALIGNLEFT | BCSS_STRETCH);

CButton::SetState

ボタン コントロールが強調表示されているかどうかを設定します。

void SetState(BOOL bHighlight);

パラメーター

bHighlight
ボタンを強調表示するかどうかを指定します。 0 以外の値を指定すると、ボタンが強調表示されます。値を 0 に設定すると、強調表示が削除されます。

解説

強調表示は、ボタン コントロールの外部に影響します。 ラジオ ボタンまたはチェック ボックスのチェック状態には影響しません。

ユーザーがマウスの左ボタンをクリックして保持すると、ボタン コントロールが自動的に強調表示されます。 強調表示は、ユーザーがマウス ボタンを離すと削除されます。

CButton myPushButton;

// Create a push button.
myPushButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                    CRect(10, 10, 100, 30), pParentWnd, 1);

// Invert the highlight state of the button.
myPushButton.SetState(!(myPushButton.GetState() & 0x0004));

CButton::SetTextMargin

オブジェクトのテキスト 余白を設定するには、このメソッドを呼び出 CButton します。

BOOL SetTextMargin(RECT* pmargin);

パラメーター

pmargin
新しいテキスト 余白へのポインター。

戻り値

成功した場合は TRUE、失敗した場合は FALSE を返します。

解説

このメンバー関数は、BCM_SETTEXTMARGIN SDK の Buttons セクションで説明するように、Windowsします。

関連項目

CWnd クラス
階層図
CWnd クラス
CComboBox クラス
CEdit クラス
CListBox クラス
CScrollBar クラス
CStatic クラス
CBitmapButton クラス
CDialog クラス