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 | Disabilitata | 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
Creare una o quattro immagini bitmap per il pulsante.
Costruire l'oggetto CBitmapButton .
Chiamare la funzione Create per creare il controllo pulsante di Windows e collegarlo all'oggetto
CBitmapButton
.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
Creare una o quattro immagini bitmap per il pulsante.
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.
Impostare la didascalia del pulsante su un valore come "MYIMAGE" e definire un simbolo per il pulsante, ad esempio IDC_MYIMAGE.
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 la didascalia del pulsante nel passaggio 3. Per la didascalia del pulsante "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.
Nella classe dialog dell'applicazione (derivata da
CDialog
), aggiungere unCBitmapButton
oggetto membro.CDialog
Nella routine OnInitDialog dell'oggetto chiamare laCBitmapButton
funzione AutoLoad dell'oggetto usando come parametri l'ID di controllo del pulsante e ilCDialog
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 CDialog
derivato da CDialog
un 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à
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();