Freigeben über


CBitmapButton-Klasse

Erstellt Pushbutton-Steuerelemente, die mit Bitmapbildern statt mit Text bezeichnet sind.

Syntax

class CBitmapButton : public CButton

Member

Öffentliche Konstruktoren

Name Beschreibung
CBitmapButton::CBitmapButton Erstellt ein CBitmapButton-Objekt.

Öffentliche Methoden

Name Beschreibung
CBitmapButton::AutoLoad Ordnet eine Schaltfläche in einem Dialogfeld einem Objekt der CBitmapButton Klasse zu, lädt die Bitmap(n) anhand des Namens und passt die Schaltfläche an die Bitmap an.
CBitmapButton::LoadBitmaps Initialisiert das Objekt, indem eine oder mehrere benannte Bitmapressourcen aus der Ressourcendatei der Anwendung geladen und die Bitmaps an das Objekt angefügt werden.
CBitmapButton::SizeToContent Passt die Schaltfläche an, um die Bitmap aufzunehmen.

Hinweise

CBitmapButton Objekte enthalten bis zu vier Bitmaps, die Bilder für die verschiedenen Zustände enthalten, von denen eine Schaltfläche annehmen kann: nach oben (oder normal), unten (oder ausgewählt), fokussiert und deaktiviert. Nur die erste Bitmap ist erforderlich; die anderen sind optional.

Bitmap-Schaltflächenbilder enthalten den Rahmen um das Bild sowie das Bild selbst. Der Rahmen spielt in der Regel eine Rolle beim Anzeigen des Zustands der Schaltfläche. Die Bitmap für den fokussierten Zustand ist z. B. in der Regel wie die für den Aufwärtszustand, aber mit einem gestrichelten Rechteck vom Rahmen oder einer dicken einfarbigen Linie am Rahmen. Die Bitmap für den deaktivierten Zustand ähnelt in der Regel dem Zustand nach oben, weist jedoch einen niedrigeren Kontrast auf (z. B. eine abgeblendete oder abgeblendete Menüauswahl).

Diese Bitmaps können beliebig groß sein, aber alle werden so behandelt, als wären sie dieselbe Größe wie die Bitmap für den Up-Zustand.

Verschiedene Anwendungen erfordern unterschiedliche Kombinationen von Bitmapbildern:

Nach oben Nach unten Fokus Disabled Application
× Bitmap
× × Schaltfläche ohne WS_TABSTOP Formatvorlage
× × × × Dialogfeldschaltfläche mit allen Zuständen
× × × Dialogfeldschaltfläche mit WS_TABSTOP Formatvorlage

Legen Sie beim Erstellen eines Bitmap-Schaltflächen-Steuerelements die BS_OWNERDRAW Formatvorlage fest, um anzugeben, dass die Schaltfläche vom Besitzer gezeichnet wird. Dadurch sendet Windows die WM_MEASUREITEM und WM_DRAWITEM Nachrichten für die Schaltfläche; das Framework behandelt diese Nachrichten und verwaltet die Darstellung der Schaltfläche für Sie.

So erstellen Sie ein Bitmap-Schaltflächen-Steuerelement im Clientbereich eines Fensters

  1. Erstellen Sie ein bis vier Bitmapbilder für die Schaltfläche.

  2. Erstellen Sie das CBitmapButton-Objekt .

  3. Rufen Sie die Create-Funktion auf, um das Windows-Schaltflächensteuerelement zu erstellen und an das CBitmapButton Objekt anzufügen.

  4. Rufen Sie die LoadBitmaps-Memberfunktion auf, um die Bitmapressourcen nach dem Erstellen der Bitmapschaltfläche zu laden.

So fügen Sie ein Bitmap-Schaltflächen-Steuerelement in ein Dialogfeld ein

  1. Erstellen Sie ein bis vier Bitmapbilder für die Schaltfläche.

  2. Erstellen Sie eine Dialogfeldvorlage mit einer Schaltfläche "Besitzer zeichnen", die an der Stelle positioniert ist, an der Sie die Bitmapschaltfläche verwenden möchten. Die Größe der Schaltfläche in der Vorlage spielt keine Rolle.

  3. Legen Sie die Beschriftung der Schaltfläche auf einen Wert wie "MYIMAGE" fest, und definieren Sie ein Symbol für die Schaltfläche, z. B. IDC_MYIMAGE.

  4. Geben Sie im Ressourcenskript Ihrer Anwendung jedem der Bilder, die für die Schaltfläche erstellt wurden, eine ID, die erstellt wird, indem Sie einen der Buchstaben "U", "D", "F" oder "X" (für nach oben, unten, fokussiert und deaktiviert) an die Zeichenfolge anfügen, die für die Schaltflächenbeschriftung in Schritt 3 verwendet wird. Für die Schaltflächenbeschriftung "MYIMAGE", z. B. "MYIMAGEU", "MYIMAGED", "MYIMAGEF" und "MYIMAGEX". Sie müssen die ID Ihrer Bitmaps in doppelten Anführungszeichen angeben. Andernfalls weist der Ressourcen-Editor der Ressource eine ganze Zahl zu, und MFC schlägt beim Laden des Bilds fehl.

  5. Fügen Sie in der Dialogklasse Ihrer Anwendung (abgeleitet von CDialog) ein CBitmapButton Memberobjekt hinzu.

  6. Rufen Sie in der OnInitDialog-Routine des CDialog Objekts die AutoLoad-Funktion des CBitmapButton Objekts auf, indem Sie als Parameter die Steuerelement-ID der Schaltfläche und den Zeiger des this CDialog Objekts verwenden.

Wenn Sie Windows-Benachrichtigungen behandeln möchten, z. B. BN_CLICKED, die von einem Bitmap-Schaltflächen-Steuerelement an das übergeordnete Steuerelement gesendet werden (in der Regel eine klasse abgeleitet von CDialog), fügen Sie dem CDialogabgeleiteten Objekt eine Meldungszuordnungseingabe und eine Message-Handler-Memberfunktion für jede Nachricht hinzu. Die von einem CBitmapButton Objekt gesendeten Benachrichtigungen entsprechen denen, die von einem CButton-Objekt gesendet werden.

Die Klasse CToolBar verwendet einen anderen Ansatz für Bitmapschaltflächen.

Weitere Informationen finden CBitmapButtonSie unter "Steuerelemente".

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CButton

CBitmapButton

Anforderungen

Header: afxext.h

CBitmapButton::AutoLoad

Ordnet eine Schaltfläche in einem Dialogfeld einem Objekt der CBitmapButton Klasse zu, lädt die Bitmap(n) anhand des Namens und passt die Schaltfläche an die Bitmap an.

BOOL AutoLoad(
    UINT nID,
    CWnd* pParent);

Parameter

Nid
Die Steuerelement-ID der Schaltfläche.

pParent
Zeigen Sie auf das Objekt, das die Schaltfläche besitzt.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Verwenden Sie die AutoLoad Funktion, um eine Schaltfläche "Besitzer-Zeichnen" in einem Dialogfeld als Bitmapschaltfläche zu initialisieren. Anweisungen zur Verwendung dieser Funktion finden Sie in den Hinweisen für die CBitmapButton Klasse.

Beispiel

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::CBitmapButton

Erstellt ein CBitmapButton-Objekt.

CBitmapButton();

Hinweise

Rufen Sie nach dem Erstellen des C++CBitmapButton-Objekts CButton::Create auf, um das Windows-Schaltflächensteuerelement zu erstellen, und fügen Sie es an das CBitmapButton Objekt an.

Beispiel

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

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

CBitmapButton::LoadBitmaps

Verwenden Sie diese Funktion, wenn Sie Bitmapbilder laden möchten, die durch ihre Ressourcennamen oder ID-Nummern identifiziert wurden, oder wenn Sie die AutoLoad Funktion nicht verwenden können, da Sie beispielsweise eine Bitmapschaltfläche erstellen, die nicht Teil eines Dialogfelds ist.

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);

Parameter

lpszBitmapResource
Verweist auf die mit Null beendete Zeichenfolge, die den Namen der Bitmap für den normalen oder "up"-Zustand einer Bitmapschaltfläche enthält. Erforderlich.

lpszBitmapResourceSel
Verweist auf die mit Null beendete Zeichenfolge, die den Namen der Bitmap für den ausgewählten oder "down"-Zustand einer Bitmapschaltfläche enthält. Darf NULL sein.

lpszBitmapResourceFocus
Verweist auf die mit Null beendete Zeichenfolge, die den Namen der Bitmap für den fokussierten Zustand einer Bitmapschaltfläche enthält. Darf NULL sein.

lpszBitmapResourceDisabled
Verweist auf die mit Null beendete Zeichenfolge, die den Namen der Bitmap für den deaktivierten Zustand einer Bitmapschaltfläche enthält. Darf NULL sein.

nIDBitmapResource
Gibt die Ressourcen-ID-Nummer der Bitmapressource für den normalen oder "up"-Zustand einer Bitmapschaltfläche an. Erforderlich.

nIDBitmapResourceSel
Gibt die Ressourcen-ID-Nummer der Bitmapressource für den ausgewählten oder "down"-Zustand einer Bitmapschaltfläche an. Mai 0.

nIDBitmapResourceFocus
Gibt die Ressourcen-ID-Nummer der Bitmapressource für den fokussierten Zustand einer Bitmapschaltfläche an. Mai 0.

nIDBitmapResourceDisabled
Gibt die Ressourcen-ID-Nummer der Bitmapressource für den deaktivierten Zustand einer Bitmapschaltfläche an. Mai 0.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Beispiel


// 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::SizeToContent

Rufen Sie diese Funktion auf, um die Größe einer Bitmapschaltfläche auf die Größe der Bitmap zu ändern.

void SizeToContent();

Beispiel

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();

Siehe auch

MFC-Beispiel STRGTEST
CButton-Klasse
Hierarchiediagramm