CBitmapButton クラスCBitmapButton Class

ラベルがテキストではなくビットマップ イメージのプッシュ ボタン コントロールを作成します。Creates pushbutton controls labeled with bitmapped images instead of text.

構文Syntax

class CBitmapButton : public CButton

メンバーMembers

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

名前Name 説明Description
CBitmapButton::CBitmapButtonCBitmapButton::CBitmapButton CBitmapButton オブジェクトを構築します。Constructs a CBitmapButton object.

パブリック メソッドPublic Methods

名前Name 説明Description
CBitmapButton::AutoLoadCBitmapButton::AutoLoad ダイアログ ボックスのボタンのオブジェクトに関連付けます、CBitmapButtonクラス、名前で、ビットマップを読み込むし、ビットマップに合わせてボタンのサイズします。Associates a button in a dialog box with an object of the CBitmapButton class, loads the bitmap(s) by name, and sizes the button to fit the bitmap.
CBitmapButton::LoadBitmapsCBitmapButton::LoadBitmaps アプリケーションのリソース ファイルから 1 つまたは複数の名前付きのビットマップ リソースを読み込み、ビットマップをオブジェクトにアタッチして、オブジェクトを初期化します。Initializes the object by loading one or more named bitmap resources from the application's resource file and attaching the bitmaps to the object.
CBitmapButton::SizeToContentCBitmapButton::SizeToContent ビットマップに合わせてボタンをサイズします。Sizes the button to accommodate the bitmap.

RemarksRemarks

CBitmapButton オブジェクトに含める最大 4 つのビットマップは、ボタンのさまざまな状態の画像が含まれる: 最新 (または通常) 下 (または選択した)、フォーカスが設定され、無効にします。CBitmapButton objects contain up to four bitmaps, which contain images for the different states a button can assume: up (or normal), down (or selected), focused, and disabled. 最初のビットマップのみが必要です。その他はオプションです。Only the first bitmap is required; the others are optional.

ビットマップ ボタンのイメージには、イメージ自体と同様に、イメージの周りの境界線が含まれます。Bitmap-button images include the border around the image as well as the image itself. 罫線は、通常、ボタンの状態の表示中に役割を果たします。The border typically plays a part in showing the state of the button. たとえば、フォーカスがある状態のビットマップは、状態が、境界線または境界の太い実線の四角形の破線埋め込みのような通常は。For example, the bitmap for the focused state usually is like the one for the up state but with a dashed rectangle inset from the border or a thick solid line at the border. ビットマップ、無効な状態は、通常に似ています、1 つの状態が、低コントラスト (淡色表示のメニューの選択) など。The bitmap for the disabled state usually resembles the one for the up state but has lower contrast (like a dimmed or grayed menu selection).

任意のサイズでは、これらのビットマップを指定できますが、場合の状態を表すビットマップと同じサイズと同様に扱わすべてれます。These bitmaps can be of any size, but all are treated as if they were the same size as the bitmap for the up state.

さまざまなアプリケーションでは、ビットマップ イメージのさまざまな組み合わせを要求します。Various applications demand different combinations of bitmap images:

上へUp [下へ移動]Down フォーカスされているFocused 無効Disabled アプリケーションApplication
×× ビットマップBitmap
×× ×× WS_TABSTOP スタイル ボタンをクリックします。Button without WS_TABSTOP style
×× ×× ×× ×× すべての状態を持つダイアログ ボタンDialog button with all states
×× ×× ×× WS_TABSTOP スタイルでダイアログ ボタンDialog button with WS_TABSTOP style

ビットマップ ボタン コントロールを作成する場合は、ボタンがオーナー描画を指定する BS_OWNERDRAW スタイルを設定します。When creating a bitmap-button control, set the BS_OWNERDRAW style to specify that the button is owner-drawn. これにより、ボタンのため、WM_DRAWITEM メッセージを送信する Windowsフレームワークでは、これらのメッセージを処理しのボタンの外観を管理します。This causes Windows to send the WM_MEASUREITEM and WM_DRAWITEM messages for the button; the framework handles these messages and manages the appearance of the button for you.

ウィンドウのクライアント領域で、ビットマップ ボタン コントロールを作成するにはTo create a bitmap-button control in a window's client area

  1. ボタンの 1 ~ 4 個のビットマップ イメージを作成します。Create one to four bitmap images for the button.

  2. 構築、 CBitmapButtonオブジェクト。Construct the CBitmapButton object.

  3. 呼び出す、作成関数を Windows のボタン コントロールを作成し、アタッチ先、CBitmapButtonオブジェクト。Call the Create function to create the Windows button control and attach it to the CBitmapButton object.

  4. 呼び出す、 LoadBitmapsメンバー関数は、ビットマップのボタンを構築した後のビットマップ リソースを読み込めません。Call the LoadBitmaps member function to load the bitmap resources after the bitmap button is constructed.

ダイアログ ボックスに、ビットマップ ボタン コントロールを含めるTo include a bitmap-button control in a dialog box

  1. ボタンの 1 ~ 4 個のビットマップ イメージを作成します。Create one to four bitmap images for the button.

  2. オーナー描画ボタン、[ビットマップ] ボタンを配置するダイアログ テンプレートを作成します。Create a dialog template with an owner-draw button positioned where you want the bitmap button. テンプレート内のボタンのサイズを指定することはありません。The size of the button in the template does not matter.

  3. ボタンのキャプションを"MYIMAGE"などの値に設定し、IDC_MYIMAGE などのボタンのシンボルを定義します。Set the button's caption to a value such as " MYIMAGE" and define a symbol for the button such as IDC_MYIMAGE.

  4. アプリケーションのリソース スクリプトには、"X"(、フォーカスが設定および無効になっています) ためのボタンのキャプションに使用される文字列に手順 3 またはの各ボタンの文字"U""D""F"のいずれかの追加によって構築された ID を作成したイメージを与えます。In your application's resource script, give each of the images created for the button an ID constructed by appending one of the letters "U," "D," "F," or "X" (for up, down, focused, and disabled) to the string used for the button caption in step 3. ボタンのキャプション"MYIMAGE"では、たとえば、Id になります"MYIMAGEU"、"MYIMAGED、""MYIMAGEF、"と「手順 3.」For the button caption " MYIMAGE," for example, the IDs would be " MYIMAGEU," " MYIMAGED," " MYIMAGEF," and " MYIMAGEX." する必要があります二重引用符で囲まれた、ビットマップの ID を指定します。You must specify the ID of your bitmaps within double quotes. それ以外の場合リソース エディターは、リソースに整数値を割り当てるし、イメージの読み込み時に、MFC は失敗します。Otherwise the resource editor will assign an integer to the resource and MFC will fail when loading the image.

  5. アプリケーションのダイアログ クラスで (から派生したCDialog)、追加、CBitmapButtonメンバー オブジェクトです。In your application's dialog class (derived from CDialog), add a CBitmapButton member object.

  6. CDialogオブジェクトのOnInitDialogルーチンを呼び出し、CBitmapButtonオブジェクトのAutoLoad関数は、ボタンのコントロール ID をパラメーターとして使用して、CDialogオブジェクトthisポインター。In the CDialog object's OnInitDialog routine, call the CBitmapButton object's AutoLoad function, using as parameters the button's control ID and the CDialog object's this pointer.

BN_CLICKED などの Windows 通知メッセージを処理する場合、その親にビットマップ ボタン コントロールから送信 (から派生したクラスは、通常CDialog)、追加、 CDialog-派生オブジェクトをメッセージ マップ エントリとメッセージ ハンドラー メンバー各メッセージの関数。If you want to handle Windows notification messages, such as BN_CLICKED, sent by a bitmap-button control to its parent (usually a class derived from CDialog), add to the CDialog-derived object a message-map entry and message-handler member function for each message. によって送信された通知をCBitmapButtonオブジェクトは、によって送信されたものと同じ、 CButtonオブジェクト。The notifications sent by a CBitmapButton object are the same as those sent by a CButton object.

クラスは、 CToolBarビットマップのボタンに別のアプローチを採用します。The class CToolBar takes a different approach to bitmap buttons.

詳細についてはCBitmapButtonを参照してくださいコントロールします。For more information on CBitmapButton, see Controls.

継承階層Inheritance Hierarchy

CObjectCObject

CCmdTargetCCmdTarget

CWndCWnd

CButtonCButton

CBitmapButton

必要条件Requirements

ヘッダー: afxext.hHeader: afxext.h

CBitmapButton::AutoLoadCBitmapButton::AutoLoad

ダイアログ ボックスのボタンのオブジェクトに関連付けます、CBitmapButtonクラス、名前で、ビットマップを読み込むし、ビットマップに合わせてボタンのサイズします。Associates a button in a dialog box with an object of the CBitmapButton class, loads the bitmap(s) by name, and sizes the button to fit the bitmap.

BOOL AutoLoad(
    UINT nID,
    CWnd* pParent);

パラメーターParameters

nIDnID
ボタンのコントロールの id。The button's control ID.

pParentpParent
ボタンを所有するオブジェクトへのポインター。Pointer to the object that owns the button.

戻り値Return Value

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。Nonzero if successful; otherwise 0.

RemarksRemarks

使用して、AutoLoadビットマップ ボタンとして ダイアログ ボックスのオーナー描画ボタンを初期化します。Use the AutoLoad function to initialize an owner-draw button in a dialog box as a bitmap button. この関数を使用する手順については、の「解説」には、CBitmapButtonクラス。Instructions for using this function are in the remarks for the CBitmapButton class.

Example

CBitmapButton myButton;

// Initialize the owner-drawn button with the id IDC_MYBUTTON as a bitmap
// button. This code is used in the OnInitDialog handler of my dialog.
myButton.AutoLoad(IDC_MYBUTTON, this);

CBitmapButton::CBitmapButtonCBitmapButton::CBitmapButton

CBitmapButton オブジェクトを作成します。Creates a CBitmapButton object.

CBitmapButton();

RemarksRemarks

C++ で作成した後CBitmapButtonオブジェクト、呼び出すCButton::Create Windows ボタン コントロールを作成してに接続する、CBitmapButtonオブジェクト。After creating the C++ CBitmapButton object, call CButton::Create to create the Windows button control and attach it to the CBitmapButton object.

Example

// Declare a bitmap button object on the stack.
CBitmapButton myButton;

// Declare a bitmap button object on the heap.
CBitmapButton *pmyButton = new CBitmapButton;

CBitmapButton::LoadBitmapsCBitmapButton::LoadBitmaps

リソースの名前または ID 番号、または使用できない場合を識別するビットマップ画像をロードするときに、この関数を使用して、AutoLoadのため、たとえば、ダイアログ ボックスの一部ではないビットマップ ボタンを作成する機能します。Use this function when you want to load bitmap images identified by their resource names or ID numbers, or when you cannot use the AutoLoad function because, for example, you are creating a bitmap button that is not part of a dialog box.

BOOL LoadBitmaps(
    LPCTSTR lpszBitmapResource,
    LPCTSTR lpszBitmapResourceSel = NULL,
    LPCTSTR lpszBitmapResourceFocus = NULL,
    LPCTSTR lpszBitmapResourceDisabled = NULL);

BOOL LoadBitmaps(
    UINT nIDBitmapResource,
    UINT nIDBitmapResourceSel = 0,
    UINT nIDBitmapResourceFocus = 0,
    UINT nIDBitmapResourceDisabled = 0);

パラメーターParameters

lpszBitmapResourcelpszBitmapResource
または「を」状態の通常のビットマップ ボタンのビットマップの名前を含む null で終わる文字列へのポインター。Points to the null-terminated string that contains the name of the bitmap for a bitmap button's normal or "up" state. 必須。Required.

lpszBitmapResourceSellpszBitmapResourceSel
または「停止」状態のビットマップ ボタンの選択は、ビットマップの名前を含む null で終わる文字列へのポインター。Points to the null-terminated string that contains the name of the bitmap for a bitmap button's selected or "down" state. NULL にすることがあります。May be NULL.

lpszBitmapResourceFocuslpszBitmapResourceFocus
ビットマップ ボタンのビットマップの名前を含む null で終わる文字列へのポインターには、状態が重点を置いています。Points to the null-terminated string that contains the name of the bitmap for a bitmap button's focused state. NULL にすることがあります。May be NULL.

lpszBitmapResourceDisabledlpszBitmapResourceDisabled
ビットマップ ボタンのビットマップの名前を含む null で終わる文字列へのポインターには、状態が無効になります。Points to the null-terminated string that contains the name of the bitmap for a bitmap button's disabled state. NULL にすることがあります。May be NULL.

nIDBitmapResourcenIDBitmapResource
ビットマップ リソースのビットマップ ボタンの通常の状態「を」リソースの ID 番号を指定します。Specifies the resource ID number of the bitmap resource for a bitmap button's normal or "up" state. 必須。Required.

nIDBitmapResourceSelnIDBitmapResourceSel
ビットマップのボタンの選択または「停止」状態は、ビットマップ リソースのリソース ID 番号を指定します。Specifies the resource ID number of the bitmap resource for a bitmap button's selected or "down" state. 0 にすることがあります。May be 0.

nIDBitmapResourceFocusnIDBitmapResourceFocus
フォーカスのある状態のビットマップ リソースのリソース ID 番号を指定します。Specifies the resource ID number of the bitmap resource for a bitmap button's focused state. 0 にすることがあります。May be 0.

nIDBitmapResourceDisablednIDBitmapResourceDisabled
ビットマップ ボタンの無効の状態のビットマップ リソースのリソース ID 番号を指定します。Specifies the resource ID number of the bitmap resource for a bitmap button's disabled state. 0 にすることがあります。May be 0.

戻り値Return Value

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。Nonzero if successful; otherwise 0.

Example


// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
                  CRect(10, 10, 100, 100), pParentWnd, 1);

// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);

CBitmapButton::SizeToContentCBitmapButton::SizeToContent

ビットマップのサイズをビットマップ ボタンのサイズを変更するには、この関数を呼び出します。Call this function to resize a bitmap button to the size of the bitmap.

void SizeToContent();

Example

CBitmapButton *pmyButton = new CBitmapButton();

// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
                  CRect(10, 10, 100, 100), pParentWnd, 1);

// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);

// Resize the button to be the size of the bitmaps.
pmyButton->SizeToContent();

関連項目See also

MFC サンプル CTRLTESTMFC Sample CTRLTEST
CButton クラスCButton Class
階層図Hierarchy Chart