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 メンバー関数によって初期化時に指定されたボタン スタイル従って、これらの任意のオブジェクトにすることができます。

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

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

構築は、派生 CButtonクラス内の 1 ステップ プロセスにすることができます。 派生クラスのコンストラクターを記述し、コンストラクター内から呼び出 Create します。

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

各メッセージ マップ エントリの形式は次のとおりです。

ON_Notification(id, memberFxn)

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

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

afx_msg void memberFxn();

メッセージ マップ エントリの可能性は次のとおりです。

マップ エントリ 親に送信された日時...
ON_BN_CLICKED ユーザーがボタンをクリックします。
ON_BN_DOUBLECLICKED ユーザーがボタンをダブルクリックします。

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

ウィンドウ内にオブジェクトを CButton 作成する場合は、オブジェクトを破棄する必要があります。 関数を CButton 使用 new してヒープ上にオブジェクトを作成する場合は、ユーザーが Windows ボタン コントロールを閉じたときにオブジェクトを破棄するオブジェクトを呼び出す delete 必要があります。 スタック上にオブジェクトを 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 を返します。

解説

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

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

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

  • WS_CHILD Always

  • 通常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 構造体への長いポインター。 この構造体には、描画する項目と必要な描画の種類に関する情報が含まれています。

解説

所有者が描画したボタンには、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_AUTOCHECKB (キロバイト)OX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKB (キロバイト)OX、BS_RADIOBUTTON、またはBS_3STATE スタイルで作成されたボタン コントロールからの戻り値は、次のいずれかの値です。

Value 意味
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 の Buttons セクションで説明されているように、BCM_GETIDEALSIZE メッセージの機能をエミュレートします。

CButton::GetImageList

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

BOOL GetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

パラメーター

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

戻り値

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

解説

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

CButton::GetNote

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

CString GetNote() const;

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

パラメーター

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

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

戻り値

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

または

2 番目のオーバーロードでは、このメソッドが成功した場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

このメソッドは、ボタン スタイルが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_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

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

CButton::GetSplitImageList

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

CImageList* GetSplitImageList() const;

戻り値

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

解説

このメソッドは、ボタン スタイルが BS_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

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

CButton::GetSplitInfo

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

BOOL GetSplitInfo(PBUTTON_SPLITINFO pInfo) const;

パラメーター

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

戻り値

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

解説

このメソッドは、ボタン スタイルが BS_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

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

CButton::GetSplitSize

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

BOOL GetSplitSize(LPSIZE pSize) const;

パラメーター

pSize
[out]四角形の説明を 受け取る SIZE 構造体へのポインター。

戻り値

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

解説

このメソッドは、ボタン スタイルが BS_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

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

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

CButton::GetSplitStyle

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

UINT GetSplitStyle() const;

戻り値

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

解説

このメソッドは、ボタン スタイルが BS_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

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

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

CButton::GetState

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

UINT GetState() const;

戻り値

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

ボタンの状態 Value 説明
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 の Buttons セクションで説明されているように、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);

パラメーター

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

Value 意味
BST_UNCHECKED ボタンの状態を unチェックed に設定します。
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。それ以外の場合は FAL Standard Edition。

戻り値

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

解説

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

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

最初のコード例では、 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、それ以外の場合は FAL Standard Edition。

戻り値

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

解説

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

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

CButton::SetIcon

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

HICON SetIcon(HICON hIcon);

パラメーター

hIcon
アイコンのハンドル。

戻り値

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

解説

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

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

ボタンごとに 4 つのビットマップを使用する CBitmapButton とは異なりSetIconボタンごとに 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 を返します。

解説

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

CButton::SetNote

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

BOOL SetNote(LPCTSTR lpszNote);

パラメーター

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

戻り値

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

解説

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

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

最初のコード例では、 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。それ以外の場合は FAL Standard Edition。

解説

このメソッドは、ボタン スタイルがUTTON または BS_DEFSPLITB (テラバイト)UTTON BS_SPLITB (テラバイト)コントロールでのみ使用します。

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

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

CButton::SetSplitImageList

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

BOOL SetSplitImageList(CImageList* pSplitImageList);

パラメーター

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

戻り値

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

解説

このメソッドは、ボタン スタイルが BS_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

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

CButton::SetSplitInfo

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

BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);

パラメーター

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

戻り値

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

解説

このメソッドは、ボタン スタイルが BS_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

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

最初のコード例では、 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;

次のコード例では、分割ボタンのドロップダウン矢印に使用されるグリフを変更します。 この例では、上向き三角形グリフを既定の下向き三角形グリフに置き換えます。 表示されるグリフは、構造体のメンバーBUTTON_SPLITINFOで指定したhimlGlyph文字によって異なります。 下向き三角形グリフは文字 '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。それ以外の場合は FAL Standard Edition。

解説

このメソッドは、ボタン スタイルが BS_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

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

このメソッドは、BCSIF_SIZE フラグを使用してBUTTON_SPLITINFO構造体のメンバーを初期化masksize、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]分割ボタン スタイルのビットごとの組み合わせ。 詳細については、BUTTON_SPLITINFO構造体のメンバーを参照してくださいuSplitStyle

戻り値

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

解説

このメソッドは、ボタン スタイルが BS_SPLITB (テラバイト)UTTON または BS_DEFSPLITB (テラバイト)UTTON であるコントロールでのみ使用します。

分割ボタンのスタイルでは、配置、縦横比、および Windows が分割ボタン アイコンを描画するグラフィカルな形式を指定します。 詳細については、BUTTON_SPLITINFO構造体のメンバーを参照してくださいuSplitStyle

このメソッドは、BCSIF_STYLE フラグを使用してBUTTON_SPLITINFO構造体のメンバーを初期化maskuSplitStyle、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 を返します。

解説

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

関連項目

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