Condividi tramite


Informazioni sui controlli barra degli strumenti

Una barra degli strumenti è un controllo che contiene uno o più pulsanti. Ogni pulsante, quando si fa clic da un utente, invia un messaggio di comando alla finestra padre. In genere, i pulsanti in una barra degli strumenti corrispondono agli elementi nel menu dell'applicazione e forniscono all'utente un ulteriore modo più diretto di accedere ai controlli di un'applicazione.

La schermata seguente mostra una finestra che contiene una barra degli strumenti semplice per le operazioni sui file. L'applicazione ha abilitato gli stili di visualizzazione. Il pulsante Salva è "attivo" perché il cursore è stato posizionato sopra di esso quando è stata scattata la schermata. L'aspetto effettivo del controllo varia a seconda del sistema operativo e del tema selezionato dall'utente.

screen shot of a window with a three-button toolbar; one button is hot

La schermata seguente mostra lo stesso controllo in un'applicazione compilata senza gli stili di visualizzazione abilitati.

screen shot of a window without visual styles: none of the buttons looks hot

Negli argomenti seguenti vengono illustrate le funzionalità da considerare durante la pianificazione di una barra degli strumenti. Per informazioni specifiche sull'implementazione e sul codice di esempio, vedere Uso dei controlli della barra degli strumenti.

Specifica delle dimensioni e della posizione della barra degli strumenti

Se si crea una barra degli strumenti usando CreateToolbarEx, la funzione consente di specificare in pixel l'altezza e la larghezza della barra degli strumenti.

Nota

L'uso di CreateToolbarEx non è consigliato, perché non supporta nuove funzionalità delle barre degli strumenti, inclusi gli elenchi di immagini. Per altre informazioni sulla creazione di barre degli strumenti, vedere Uso dei controlli della barra degli strumenti.

 

La funzione CreateWindowEx non dispone di parametri per specificare le dimensioni della barra degli strumenti. La procedura della finestra della barra degli strumenti imposta automaticamente le dimensioni e la posizione della finestra della barra degli strumenti. L'altezza si basa sull'altezza dei pulsanti nella barra degli strumenti. La larghezza corrisponde alla larghezza dell'area client della finestra padre. Per modificare le impostazioni delle dimensioni automatiche, inviare un messaggio TB_edizione Standard TBUTTONSIZE. I CCS_TOP e CCS_BOTTOM stili di controllo comuni determinano se la barra degli strumenti è posizionata lungo la parte superiore o inferiore dell'area client. Per impostazione predefinita, una barra degli strumenti ha lo stile CCS_TOP .

Inoltre, la procedura della finestra della barra degli strumenti regola automaticamente le dimensioni della barra degli strumenti ogni volta che riceve un WM_SIZE o TB_AUTOSIZE messaggio. Un'applicazione deve inviare uno di questi messaggi ogni volta che le dimensioni della finestra padre cambiano o dopo l'invio di un messaggio che richiede la modifica delle dimensioni della barra degli strumenti, ad esempio un messaggio TB_edizione Standard TBUTTONSIZE.

Il ridimensionamento e il posizionamento predefiniti della barra degli strumenti possono essere disattivati impostando i CCS_NORESIZE e CCS_NOPARENTALIGN stili di controllo comuni. I controlli barra degli strumenti ospitati dai controlli rebar devono impostare questi stili perché le dimensioni e le dimensioni del controllo rebar posizionano la barra degli strumenti.Toolbar controls that are hosted by rebar controls must set these styles because the rebar control sizes and position the toolbar.

Barre degli strumenti trasparenti

I controlli barra degli strumenti supportano un aspetto trasparente che consente all'area client sotto la barra degli strumenti di visualizzare. Esistono due tipi di barre degli strumenti trasparenti, quelle con pulsanti piatti e quelle con pulsanti tridimensionali. Se vuoi che l'applicazione corrisponda all'interfaccia di Windows, usa la barra degli strumenti dello stile trasparente flat.

La schermata seguente mostra i due tipi di barre degli strumenti trasparenti, non usando gli stili di visualizzazione.

screen shot of two windows with different styles of toolbars, but both toolbars are transparent

Lo screenshot seguente mostra una barra degli strumenti trasparente come potrebbe apparire in Windows Vista, con gli stili di visualizzazione abilitati. Il colore di sfondo della finestra di dialogo è stato modificato per rendere più evidente la trasparenza.

screen shot of a window in windows vista with a transparent toolbar

Per creare una barra degli strumenti trasparente, è sufficiente aggiungere TBSTYLE_FLAT o TBSTYLE_TRANSPARENT al parametro dello stile della finestra di CreateWindowEx. Se non si desidera che venga visualizzata una riga per indicare la parte inferiore della barra degli strumenti, non utilizzare lo stile della finestra WS_BORDER .

Nota

Quando si usano gli stili di visualizzazione, le barre degli strumenti possono essere flat per impostazione predefinita.

 

Barre degli strumenti in stile elenco

I pulsanti della barra degli strumenti consentono di visualizzare sia il testo che le bitmap. I pulsanti di una barra degli strumenti creata con lo stile TBSTYLE_LIST posizionare il testo a destra della bitmap anziché sotto di esso.

La schermata seguente mostra una barra degli strumenti con lo stile elenco.

screen shot of a toolbar with text to the right of each icon

È possibile utilizzare lo stile della barra degli strumenti TBSTYLE_LIST in combinazione con lo stile TBSTYLE_FLAT per creare una barra degli strumenti con pulsanti flat.

Definizione delle immagini dei pulsanti

Esistono due modi per specificare le immagini per i pulsanti, ovvero bitmap o elenchi di immagini. Un'applicazione deve scegliere il metodo da usare. Non può utilizzare entrambi i metodi con lo stesso controllo della barra degli strumenti. Si noti che la funzione CreateToolbarEx usa il metodo bitmap. Le applicazioni che vogliono usare il metodo image list devono usare la funzione CreateWindowEx per creare il controllo barra degli strumenti.

Definizione delle immagini dei pulsanti tramite bitmap

Ogni pulsante di una barra degli strumenti può includere un'immagine bitmap. Una barra degli strumenti usa un elenco interno per archiviare le informazioni necessarie per disegnare le immagini. Quando si chiama la funzione CreateToolbarEx , si specifica una bitmap monocromatica o color che contiene le immagini iniziali e la barra degli strumenti aggiunge le informazioni all'elenco interno di immagini. È possibile aggiungere altre immagini in un secondo momento usando il messaggio di TB_ADDBITMAP .

Ogni immagine ha un indice in base zero. La prima immagine aggiunta all'elenco interno ha un indice pari a 0, la seconda immagine ha un indice pari a 1 e così via. TB_ADDBITMAP aggiunge immagini alla fine dell'elenco e restituisce l'indice della prima nuova immagine aggiunta. Per associare l'immagine a un pulsante, è necessario inviare un messaggio di TB_ADDBUTTONS e specificare l'indice dell'immagine dopo aver aggiunto bitmap all'elenco di immagini interne.

Windows presuppone che tutte le immagini bitmap di una barra degli strumenti siano le stesse dimensioni. Le dimensioni vengono specificate quando si crea la barra degli strumenti usando CreateToolbarEx. Se si usa la funzione CreateWindowEx per creare una barra degli strumenti, le dimensioni delle immagini vengono impostate sulle dimensioni predefinite di 16 per 15 pixel. È possibile usare il messaggio TB_edizione Standard TBITM piattaforma di strumenti analitici IZE per modificare le dimensioni delle immagini bitmap, ma è necessario farlo prima di aggiungere immagini all'elenco interno.

Definizione delle immagini dei pulsanti tramite elenchi di immagini

È anche possibile archiviare le immagini dei pulsanti in un set di elenchi di immagini. Un elenco di immagini è una raccolta di immagini con le stesse dimensioni, ognuna delle quali può essere definita dal relativo indice. Gli elenchi di immagini vengono usati per gestire grandi set di icone o bitmap. È possibile usare fino a tre diversi elenchi di immagini per visualizzare i pulsanti in vari stati, come illustrato nella tabella seguente.

Provincia Descrizione
Normale Pulsanti nello stato predefinito.
Alto Pulsanti sotto il puntatore o premuti. Gli elementi ad accesso frequente sono supportati solo nei controlli della barra degli strumenti con lo stile TBSTYLE_FLAT.
Disabilitata Pulsanti disabilitati.

 

Dopo aver eliminato definitivamente la barra degli strumenti, le applicazioni devono liberare eventuali elenchi di immagini creati.

Definizione del testo per i pulsanti

Ogni pulsante può visualizzare una stringa oltre a, o invece, un'immagine. Una barra degli strumenti mantiene un elenco interno che contiene tutte le stringhe disponibili per i pulsanti della barra degli strumenti. Aggiungere stringhe all'elenco interno usando il messaggio TB_ADDSTRING , specificando l'indirizzo del buffer contenente le stringhe da aggiungere. Ogni stringa deve essere con terminazione Null e l'ultima stringa deve essere terminata con due caratteri Null.

Ogni stringa ha un indice in base zero. La prima stringa aggiunta all'elenco interno di stringhe ha un indice pari a 0, la seconda stringa ha un indice pari a 1 e così via. TB_ADDSTRING aggiunge stringhe alla fine dell'elenco e restituisce l'indice della prima nuova stringa. Usare l'indice di una stringa per associare la stringa a un pulsante.

L'uso di TB_ADDSTRING non è l'unico modo per aggiungere stringhe a una barra degli strumenti. È possibile visualizzare una stringa in un pulsante passando un puntatore di stringa nel membro iString della struttura TBBUTTON passata a TB_ADDBUTTONS. Inoltre, è possibile usare TB_edizione Standard TBUTTONINFO per assegnare testo a un pulsante della barra degli strumenti.

Aggiunta di pulsanti della barra degli strumenti

Se si usa la funzione CreateToolbarEx per creare una barra degli strumenti, è possibile aggiungere pulsanti alla barra degli strumenti compilando una matrice di strutture TBBUTTON e specificando l'indirizzo della matrice nella chiamata di funzione. Tuttavia, la funzione CreateWindowEx non dispone di un parametro per passare una struttura TBBUTTON . CreateWindowEx crea una barra degli strumenti vuota compilata inviando un messaggio di TB_ADDBUTTONS , specificando l'indirizzo di una struttura TBBUTTON .

Dopo aver creato una barra degli strumenti, è possibile aggiungere pulsanti inviando un TB_INedizione Standard RTBUTTON o TB_ADDBUTTONS messaggio. Ogni pulsante è descritto da una struttura TBBUTTON , che definisce gli attributi del pulsante, inclusi gli indici della stringa e della bitmap, nonché lo stile, lo stato, l'identificatore di comando e il valore a 32 bit definito dall'applicazione.

Nota

Se si usa la funzione CreateWindowEx per creare una barra degli strumenti, è necessario inviare il messaggio di TB_BUTTONSTRUCTSIZE prima di aggiungere qualsiasi pulsante. Il messaggio passa le dimensioni della struttura TBBUTTON alla barra degli strumenti.

 

Stili pulsante barra degli strumenti

Lo stile di un pulsante determina la modalità di visualizzazione del pulsante e la modalità di risposta all'input dell'utente. Ad esempio, lo stile BTNS_BUTTON crea un pulsante della barra degli strumenti che si comporta come un pulsante di scelta rapida standard. Un pulsante con lo stile BTNS_CHECK è simile a un pulsante di pressione standard, ad eccezione dell'alternanza tra gli stati premuti e non compressi ogni volta che l'utente lo fa clic.

È possibile creare gruppi di pulsanti della barra degli strumenti che agiscono come pulsanti di opzione usando lo stile BTNS_GROUP o BTNS_CHECKGROUP. In questo modo un pulsante rimane premuto finché l'utente non sceglie un altro pulsante nel gruppo. Un gruppo viene definito come una raccolta contigua di pulsanti, tutti con lo stile BTNS_GROUP o BTNS_CHECKGROUP .

Lo stile BTNS_edizione Standard P crea una piccola distanza tra i pulsanti o disegna un'incisione tra i pulsanti sulle barre degli strumenti flat. Un pulsante con lo stile BTNS_edizione Standard P non riceve l'input dell'utente.

La versione 5.80 dei controlli comuni ha introdotto alcuni nuovi stili dei pulsanti della barra degli strumenti e ha rinominato alcuni degli stili precedenti. Tutti i flag di stile pulsante iniziano ora con BTNS_XXX anziché TBSTYLE_XXX. Per un elenco e una discussione sugli stili dei pulsanti, vedi Stili di controllo e pulsante della barra degli strumenti.

Stati pulsante barra degli strumenti

Ogni pulsante di una barra degli strumenti ha uno stato. La barra degli strumenti aggiorna lo stato di un pulsante per riflettere le azioni dell'utente, ad esempio facendo clic sul pulsante. Lo stato indica se il pulsante è attualmente premuto o meno, abilitato o disabilitato, nascosto o visibile. Anche se un'applicazione imposta lo stato iniziale di un pulsante quando si aggiunge il pulsante alla barra degli strumenti, può modificare e recuperare lo stato inviando messaggi TB_GETSTATE e TB_edizione Standard TSTATE alla barra degli strumenti. Per un elenco degli stati dei pulsanti della barra degli strumenti, vedere Stati della barra degli strumenti.

Identificatore del comando

A ogni pulsante è associato un identificatore di comando definito dall'applicazione. Gli identificatori di pulsante vengono in genere definiti in un file di intestazione dell'applicazione. Ad esempio, un pulsante Incolla può essere definito come:

#define ID_PASTE 100

Quando l'utente seleziona un pulsante, la barra degli strumenti invia alla finestra padre un WM_COMMAND o WM_NOTIFY messaggio che include l'identificatore del comando del pulsante. La finestra padre esamina l'identificatore del comando ed esegue il comando associato al pulsante. Per informazioni su quando i controlli inviano messaggi WM_COMMAND e quando inviano WM_NOTIFY, vedere la sezione Osservazioni della documentazione di WM_NOTIFY .

Dimensioni e posizione dei pulsanti

Una barra degli strumenti tiene traccia dei relativi pulsanti assegnando a ogni pulsante un indice di posizione. L'indice è in base zero; ovvero, il pulsante all'estrema sinistra ha un indice pari a 0, il pulsante successivo a destra ha un indice pari a 1 e così via. Un'applicazione deve specificare l'indice di un pulsante quando si inviano messaggi per recuperare informazioni sul pulsante o per impostare gli attributi del pulsante.

Una barra degli strumenti aggiorna gli indici di posizione quando i pulsanti vengono inseriti e rimossi. Un'applicazione può recuperare l'indice di posizione corrente di un pulsante usando il messaggio TB_COMMANDTOINDEX. Il messaggio specifica l'identificatore del comando di un pulsante e la finestra della barra degli strumenti usa l'identificatore per individuare il pulsante e restituire l'indice di posizione.

Tutti i pulsanti di una barra degli strumenti hanno le stesse dimensioni. La funzione CreateToolbarEx richiede di impostare le dimensioni iniziali dei pulsanti quando si crea la barra degli strumenti. Quando si usa la funzione CreateWindowEx , le dimensioni iniziali vengono impostate sulle dimensioni predefinite di 24 per 22 pixel. È possibile usare il messaggio TB_edizione Standard TBUTTONSIZE per modificare le dimensioni del pulsante, ma è necessario farlo prima di aggiungere qualsiasi pulsante alla barra degli strumenti. Il messaggio TB_GETITEMRECT recupera le dimensioni correnti dei pulsanti.

Quando si aggiunge una stringa più lunga di qualsiasi stringa attualmente presente nella barra degli strumenti, la barra degli strumenti reimposta automaticamente la larghezza dei relativi pulsanti. La larghezza è impostata per contenere la stringa più lunga sulla barra degli strumenti.

Abilitazione della personalizzazione

Una barra degli strumenti include funzionalità di personalizzazione predefinite che è possibile rendere disponibili all'utente assegnando alla barra degli strumenti il CCS_ADJUSTABLE stile di controllo comune. Le funzionalità di personalizzazione consentono all'utente di trascinare un pulsante in una nuova posizione o di rimuovere un pulsante trascinandolo dalla barra degli strumenti. L'utente può anche fare doppio clic sulla barra degli strumenti per visualizzare la finestra di dialogo Personalizza barra degli strumenti , che consente di aggiungere, eliminare e riordinare i pulsanti della barra degli strumenti. Per visualizzare la finestra di dialogo, usare il messaggio TB_CUSTOMIZE. Un'applicazione determina se le funzionalità di personalizzazione sono disponibili all'utente e controlla l'ambito in cui l'utente può personalizzare la barra degli strumenti.

Nell'ambito del processo di personalizzazione, le applicazioni spesso devono salvare e ripristinare lo stato di una barra degli strumenti. Ad esempio, molte applicazioni archiviano lo stato della barra degli strumenti prima che l'utente inizi a personalizzare la barra degli strumenti nel caso in cui l'utente voglia ripristinare lo stato originale della barra degli strumenti. Il controllo barra degli strumenti non mantiene automaticamente un record dello stato di precustomizzazione. L'applicazione deve salvare lo stato della barra degli strumenti per ripristinarlo. Per altre informazioni, vedere Uso dei controlli della barra degli strumenti.

Abilitazione del rilevamento frequente

Il rilevamento rapido indica che quando il puntatore si sposta su un elemento, l'aspetto del pulsante cambia. Quando gli stili di visualizzazione sono abilitati, le barre degli strumenti supportano il rilevamento rapido per impostazione predefinita. In caso contrario, solo i controlli della barra degli strumenti creati con lo stile TBSTYLE_FLAT supportano il rilevamento rapido. È possibile usare altri stili di finestra in combinazione con TBSTYLE_FLAT per produrre barre degli strumenti che abilitano il rilevamento rapido, ma hanno un aspetto diverso da una barra degli strumenti piatta. Per altre informazioni, vedere Uso dei controlli della barra degli strumenti.