Share via


CBitmapButton-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Hiermee maakt u besturingselementen voor drukknoppen die zijn gelabeld met bitmapafbeeldingen in plaats van tekst.

Syntaxis

class CBitmapButton : public CButton

Leden

Openbare constructors

Naam Description
CBitmapButton::CBitmapButton Maakt een CBitmapButton object.

Openbare methoden

Naam Description
CBitmapButton::AutoLoad Koppelt een knop in een dialoogvenster aan een object van de CBitmapButton klasse, laadt de bitmap(s) op naam en past de knop aan op de bitmap.
CBitmapButton::LoadBitmaps Initialiseert het object door een of meer benoemde bitmapresources uit het resourcebestand van de toepassing te laden en de bitmaps aan het object toe te voegen.
CBitmapButton::SizeToContent Hiermee wordt de knop aangepast aan de bitmap.

Opmerkingen

CBitmapButton objecten bevatten maximaal vier bitmaps, die afbeeldingen bevatten voor de verschillende statussen die een knop kan aannemen: omhoog (of normaal), omlaag (of geselecteerd), gericht en uitgeschakeld. Alleen de eerste bitmap is vereist; de anderen zijn optioneel.

Afbeeldingen met bitmapknoppen bevatten de rand rond de afbeelding en de afbeelding zelf. De rand speelt meestal een rol bij het weergeven van de status van de knop. De bitmap voor de focusstatus is bijvoorbeeld meestal hetzelfde als de bitmap voor de upstatus, maar met een onderbroken rechthoek van de rand of een dikke ononderbroken lijn aan de rand. De bitmap voor de uitgeschakelde status lijkt meestal op de bitmap voor de upstatus, maar heeft een lager contrast (zoals een grijs of grijs menuselectie).

Deze bitmaps kunnen van elke grootte zijn, maar ze worden allemaal behandeld alsof ze dezelfde grootte hebben als de bitmap voor de upstatus.

Verschillende toepassingen vragen om verschillende combinaties van bitmapafbeeldingen:

Up Omlaag Focused Disabled Applicatie
× Bitmapafbeelding
× × Knop zonder WS_TABSTOP stijl
× × × × Knop Dialoogvenster met alle statussen
× × × Knop Dialoogvenster met WS_TABSTOP stijl

Wanneer u een bitmapknopbesturingselement maakt, stelt u de BS_OWNERDRAW stijl in om op te geven dat de knop wordt getekend door de eigenaar. Dit zorgt ervoor dat Windows de WM_MEASUREITEM en WM_DRAWITEM berichten voor de knop verzendt; het framework verwerkt deze berichten en beheert het uiterlijk van de knop voor u.

Een bitmapknopbesturingselement maken in het clientgebied van een venster

  1. Maak één tot vier bitmapafbeeldingen voor de knop.

  2. Maak het CBitmapButton-object .

  3. Roep de functie Maken aan om het besturingselement Windows-knop te maken en deze aan het CBitmapButton object toe te voegen.

  4. Roep de lidfunctie LoadBitmaps aan om de bitmapbronnen te laden nadat de bitmapknop is gemaakt.

Een besturingselement bitmapknop opnemen in een dialoogvenster

  1. Maak één tot vier bitmapafbeeldingen voor de knop.

  2. Maak een dialoogvenstersjabloon met een knop Eigenaar tekenen op de positie waar u de bitmapknop wilt plaatsen. De grootte van de knop in de sjabloon maakt niet uit.

  3. Stel het bijschrift van de knop in op een waarde zoals 'MYIMAGE' en definieer een symbool voor de knop, zoals IDC_MYIMAGE.

  4. Geef in het resourcescript van uw toepassing elk van de afbeeldingen die zijn gemaakt voor de knop een id die is samengesteld door een van de letters 'U', 'D', 'F' of 'X' (voor omhoog, omlaag, prioriteit en uitgeschakeld) toe te voegen aan de tekenreeks die wordt gebruikt voor het bijschrift van de knop in stap 3. Voor het knopbijschrift 'MYIMAGE', bijvoorbeeld, zijn de id's 'MYIMAGEU', 'MYIMAGED', 'MYIMAGEF' en 'MYIMAGEX'. U moet de id van uw bitmaps tussen dubbele aanhalingstekens opgeven. Anders wijst de resource-editor een geheel getal toe aan de resource en mislukt MFC bij het laden van de installatiekopieën.

  5. Voeg in de dialoogvensterklasse van uw toepassing (afgeleid van CDialog) een CBitmapButton lidobject toe.

  6. Roep in de OnInitDialog-routine van het CDialog object de functie AutoLoad van het CBitmapButton object aan met behulp van parameters de besturings-id van de knop en de aanwijzer van this het CDialog object.

Als u Windows-meldingsberichten, zoals BN_CLICKED, wilt verwerken die door een bitmapknopbesturingselement naar het bovenliggende besturingselement (meestal een klasse afgeleid van CDialog) worden verzonden, voegt u een berichttoewijzingsvermelding en de lidfunctie van de berichthandler toe aan het CDialog-afgeleide object voor elk bericht. De meldingen die door een CBitmapButton object worden verzonden, zijn hetzelfde als de meldingen die door een CButton-object worden verzonden.

De klasse CToolBar heeft een andere benadering van bitmapknoppen.

Zie Besturingselementen voor meer informatie.CBitmapButton

Overnamehiërarchie

CObject

CCmdTarget

CWnd

CButton

CBitmapButton

Requirements

Koptekst: afxext.h

CBitmapButton::AutoLoad

Koppelt een knop in een dialoogvenster aan een object van de CBitmapButton klasse, laadt de bitmap(s) op naam en past de knop aan op de bitmap.

BOOL AutoLoad(
    UINT nID,
    CWnd* pParent);

Parameterwaarden

nID-
De besturings-id van de knop.

pParent
Wijs het object aan dat eigenaar is van de knop.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Gebruik de AutoLoad functie om een knop voor het tekenen van een eigenaar in een dialoogvenster te initialiseren als bitmapknop. Instructies voor het gebruik van deze functie staan in de opmerkingen voor de CBitmapButton klasse.

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

Hiermee maakt u een CBitmapButton object.

CBitmapButton();

Opmerkingen

Nadat u het C++ CBitmapButton -object hebt gemaakt, roept u CButton::Create aan om het Besturingselement windows-knop te maken en deze aan het CBitmapButton object te koppelen.

Example

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

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

CBitmapButton::LoadBitmaps

Gebruik deze functie als u bitmapafbeeldingen wilt laden die zijn geïdentificeerd door de resourcenamen of id-nummers, of wanneer u de AutoLoad functie niet kunt gebruiken, omdat u bijvoorbeeld een bitmapknop maakt die geen deel uitmaakt van een dialoogvenster.

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

Parameterwaarden

lpszBitmapResource
Verwijst naar de tekenreeks met null-beëindiging die de naam van de bitmap bevat voor de normale of 'up'-status van een bitmapknop. Verplicht.

lpszBitmapResourceSel
Verwijst naar de tekenreeks met null-beëindiging die de naam van de bitmap bevat voor de geselecteerde of 'down'-status van een bitmapknop. Kan NUL zijn.

lpszBitmapResourceFocus
Verwijst naar de tekenreeks met null-beëindiging die de naam van de bitmap bevat voor de focusstatus van een bitmapknop. Kan NUL zijn.

lpszBitmapResourceDisabled
Verwijst naar de tekenreeks met null-beëindiging die de naam van de bitmap bevat voor de uitgeschakelde status van een bitmapknop. Kan NUL zijn.

nIDBitmapResource
Hiermee geeft u het resource-id-nummer van de bitmapresource op voor de normale status van een bitmapknop of 'up'. Verplicht.

nIDBitmapResourceSel
Hiermee geeft u het resource-id-nummer van de bitmapresource op voor de geselecteerde of 'down'-status van een bitmapknop. Kan 0 zijn.

nIDBitmapResourceFocus
Hiermee geeft u het resource-id-nummer van de bitmapresource op voor de focusstatus van een bitmapknop. Kan 0 zijn.

nIDBitmapResourceDisabled
Hiermee geeft u het resource-id-nummer van de bitmapresource op voor de uitgeschakelde status van een bitmapknop. Kan 0 zijn.

Retourwaarde

Niet-nul indien geslaagd; anders 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::SizeToContent

Roep deze functie aan om het formaat van een bitmapknop aan te passen aan de grootte van de 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();

Zie ook

MFC-voorbeeld CTRLTEST
CButton-klasse
Hiërarchiegrafiek