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
、ボタンの上向き、下向き、フォーカス、無効化の各状態に対して個別のビットマップを持つ場合があります。
ボタン コントロールは、ダイアログ テンプレートから作成するか、コード内で直接作成できます。 どちらの場合も、CButton
CButton
Create
最初にコンストラクターを呼び出してオブジェクトを構築し、次にメンバー関数を呼び出して 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
した場合、または親ダイアログオブジェクトに埋め込んだ場合は、自動的に破棄されます。
継承階層
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 クラス