Condividi tramite


Classe CBitmapButton

Crea controlli di tipo pulsante di comando dotati di immagini bitmap anziché di testo come etichetta.

Sintassi

class CBitmapButton : public CButton

Membri

Costruttori pubblici

Nome Descrizione
CBitmapButton::CBitmapButton Costruisce un oggetto CBitmapButton.

Metodi pubblici

Nome Descrizione
CBitmapButton::AutoLoad Associa un pulsante in una finestra di dialogo a un oggetto della CBitmapButton classe , carica le bitmap in base al nome e ridimensiona il pulsante per adattarlo alla bitmap.
CBitmapButton::LoadBitmaps Inizializza l'oggetto caricando una o più risorse bitmap denominate dal file di risorse dell'applicazione e collegando le bitmap all'oggetto.
CBitmapButton::SizeToContent Ridimensiona il pulsante per contenere la bitmap.

Osservazioni:

CBitmapButton gli oggetti contengono fino a quattro bitmap, che contengono immagini per i diversi stati che un pulsante può presupporre: su (o normale), giù (o selezionato), con stato attivo e disabilitato. È necessaria solo la prima bitmap; gli altri sono facoltativi.

Le immagini del pulsante bitmap includono il bordo intorno all'immagine e l'immagine stessa. Il bordo in genere svolge un ruolo nella visualizzazione dello stato del pulsante. Ad esempio, la bitmap per lo stato attivo è in genere simile a quella dello stato attivo, ma con un rettangolo tratteggiato dal bordo o una linea continua spessa sul bordo. La bitmap per lo stato disabilitato è in genere simile a quella per lo stato attivo, ma ha un contrasto inferiore (ad esempio una selezione di menu disattivata o disattivata).

Queste bitmap possono essere di qualsiasi dimensione, ma tutte vengono considerate come se fossero le stesse dimensioni della bitmap per lo stato attivo.

Diverse applicazioni richiedono diverse combinazioni di immagini bitmap:

Su Giù Focused Disattivato Applicazione
× Bitmap
× × Pulsante senza stile WS_TABSTOP
× × × × Pulsante Finestra di dialogo con tutti gli stati
× × × Pulsante Finestra di dialogo con stile WS_TABSTOP

Quando si crea un controllo pulsante bitmap, impostare lo stile BS_OWNERDRAW per specificare che il pulsante è disegnato dal proprietario. In questo modo Windows invia i messaggi di WM_MEASUREITEM e WM_DRAWITEM per il pulsante; il framework gestisce questi messaggi e gestisce automaticamente l'aspetto del pulsante.

Per creare un controllo pulsante bitmap nell'area client di una finestra

  1. Creare una o quattro immagini bitmap per il pulsante.

  2. Costruire l'oggetto CBitmapButton .

  3. Chiamare la funzione Create per creare il controllo pulsante di Windows e collegarlo all'oggetto CBitmapButton .

  4. Chiamare la funzione membro LoadBitmaps per caricare le risorse bitmap dopo la costruzione del pulsante bitmap.

Per includere un controllo pulsante bitmap in una finestra di dialogo

  1. Creare una o quattro immagini bitmap per il pulsante.

  2. Creare un modello di finestra di dialogo con un pulsante di disegno proprietario posizionato in cui si desidera il pulsante bitmap. Le dimensioni del pulsante nel modello non sono importanti.

  3. Impostare il didascalia del pulsante su un valore come " MYIMAGE" e definire un simbolo per il pulsante, ad esempio IDC_MYIMAGE.

  4. Nello script della risorsa dell'applicazione assegnare a ognuna delle immagini create per il pulsante un ID costruito aggiungendo una delle lettere "U", "D", "F" o "X" (per up, down, focus e disabled) alla stringa usata per il pulsante didascalia nel passaggio 3. Per il pulsante didascalia "MYIMAGE", ad esempio, gli ID sono " MYIMAGEU", " MYIMAGED", " MYIMAGEF" e " MYIMAGEX". È necessario specificare l'ID delle bitmap tra virgolette doppie. In caso contrario, l'editor di risorse assegnerà un numero intero alla risorsa e MFC avrà esito negativo durante il caricamento dell'immagine.

  5. Nella classe dialog dell'applicazione (derivata da CDialog), aggiungere un CBitmapButton oggetto membro.

  6. CDialog Nella routine OnInitDialog dell'oggetto chiamare la CBitmapButton funzione AutoLoad dell'oggetto usando come parametri l'ID di controllo del pulsante e il CDialog puntatore dell'oggettothis.

Se si desidera gestire i messaggi di notifica di Windows, ad esempio BN_CLICKED, inviati da un controllo pulsante bitmap al relativo elemento padre (in genere una classe derivata da ), aggiungere all'oggetto CDialogderivato da CDialogun oggetto derivato da messaggi una voce della mappa messaggi e una funzione membro del gestore messaggi per ogni messaggio. Le notifiche inviate da un CBitmapButton oggetto sono uguali a quelle inviate da un oggetto CButton .

La classe CToolBar adotta un approccio diverso ai pulsanti bitmap.

Per altre informazioni su CBitmapButton, vedere Controlli.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CButton

CBitmapButton

Requisiti

Intestazione: afxext.h

CBitmapButton::AutoLoad

Associa un pulsante in una finestra di dialogo a un oggetto della CBitmapButton classe , carica le bitmap in base al nome e ridimensiona il pulsante per adattarlo alla bitmap.

BOOL AutoLoad(
    UINT nID,
    CWnd* pParent);

Parametri

nID
ID di controllo del pulsante.

pParent
Puntatore all'oggetto proprietario del pulsante.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Usare la AutoLoad funzione per inizializzare un pulsante di disegno proprietario in una finestra di dialogo come pulsante bitmap. Le istruzioni per l'uso di questa funzione sono riportate nelle note per la CBitmapButton classe .

Esempio

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

Crea un oggetto CBitmapButton.

CBitmapButton();

Osservazioni:

Dopo aver creato l'oggetto C++ CBitmapButton , chiamare CButton::Create per creare il controllo pulsante di Windows e collegarlo all'oggetto CBitmapButton .

Esempio

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

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

CBitmapButton::LoadBitmaps

Usare questa funzione quando si desidera caricare immagini bitmap identificate dai relativi nomi di risorse o numeri ID o quando non è possibile usare la AutoLoad funzione perché, ad esempio, si sta creando un pulsante bitmap che non fa parte di una finestra di dialogo.

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

Parametri

lpszBitmapResource
Punta alla stringa con terminazione Null che contiene il nome della bitmap per lo stato normale o "up" di un pulsante bitmap. Obbligatorio.

lpszBitmapResourceSel
Punta alla stringa con terminazione Null che contiene il nome della bitmap per lo stato selezionato o "giù" di un pulsante bitmap. Può essere NULL.

lpszBitmapResourceFocus
Punta alla stringa con terminazione Null che contiene il nome della bitmap per lo stato attivo di un pulsante bitmap. Può essere NULL.

lpszBitmapResourceDisabled
Punta alla stringa con terminazione Null che contiene il nome della bitmap per lo stato disabilitato di un pulsante bitmap. Può essere NULL.

nIDBitmapResource
Specifica il numero ID risorsa della risorsa bitmap per lo stato normale o "attivo" di un pulsante bitmap. Obbligatorio.

nIDBitmapResourceSel
Specifica il numero ID risorsa della risorsa bitmap per lo stato selezionato o "inattivo" di un pulsante bitmap. Può essere 0.

nIDBitmapResourceFocus
Specifica il numero ID risorsa della risorsa bitmap per lo stato attivo di un pulsante bitmap. Può essere 0.

nIDBitmapResourceDisabled
Specifica il numero ID risorsa della risorsa bitmap per lo stato disabilitato di un pulsante bitmap. Può essere 0.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Esempio


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

Chiamare questa funzione per ridimensionare un pulsante bitmap alle dimensioni della bitmap.

void SizeToContent();

Esempio

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

Vedi anche

Esempio MFC CTRLTEST
Classe CButton
Grafico della gerarchia