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 di una barra degli strumenti corrispondono agli elementi del menu dell'applicazione, fornendo un modo aggiuntivo e più diretto per consentire all'utente di accedere ai comandi 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.
La schermata seguente mostra lo stesso controllo in un'applicazione compilata senza gli stili di visualizzazione abilitati.
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 Using Toolbar Controls.
- specifica delle dimensioni e della posizione della barra degli strumenti
- barre degli strumenti trasparenti
- barre degli strumenti in stile elenco
- definizione delle immagini dei pulsanti
- Definizione del testo per i pulsanti
- Aggiunta di pulsanti della barra degli strumenti
- Abilitazione della personalizzazione
- Abilitazione del rilevamento dinamico
Specificare dimensioni e 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
Non è consigliabile usare CreateToolbarEx, perché non supporta nuove funzionalità delle barre degli strumenti, inclusi gli elenchi di immagini. Per altre informazioni sulla creazione di barre degli strumenti, vedere Using Toolbar Controls.
La funzioneCreateWindowExnon include 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 di TB_SETBUTTONSIZE. Gli 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 di TB_SETBUTTONSIZE.
Il ridimensionamento e il posizionamento predefiniti della barra degli strumenti possono essere disattivati impostando le CCS_NORESIZE e CCS_NOPARENTALIGN stili di controllo comuni. I controlli barra degli strumenti ospitati dai controlli rebar devono impostare questi stili perché la dimensione e la posizione del controllo rebar determinano la barra degli strumenti.
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, senza usare gli stili visivi.
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.
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 posizionano il testo a destra della bitmap anziché sotto di esso.
Lo screenshot seguente mostra una barra degli strumenti con lo stile elenco.
È 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 desiderano usare il metodo image list devono usare la funzioneCreateWindowExper 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 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. Specificare le dimensioni quando si crea la barra degli strumenti usando CreateToolbarEx. Se si usa la funzioneCreateWindowExper creare una barra degli strumenti, le dimensioni delle immagini vengono impostate sulle dimensioni predefinite di 16 per 15 pixel. È possibile usare il messaggio TB_SETBITMAPSIZE per modificare le dimensioni delle immagini bitmap, ma è necessario farlo prima di aggiungere qualsiasi immagine 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.
Stato | Descrizione |
---|---|
Normale | Pulsanti nello stato predefinito. |
Caldo | Pulsanti che sono sotto il puntatore o che vengono premuti. Gli elementi prioritari sono supportati solo nei controlli della barra degli strumenti con lo stile TBSTYLE_FLAT. |
Disabile | Pulsanti disattivati. |
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. È possibile utilizzare l'indice di una stringa per associare quest'ultima 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, che viene passata a TB_ADDBUTTONS. Inoltre, è possibile usare TB_SETBUTTONINFO per assegnare testo a un pulsante della barra degli strumenti.
Aggiunta di pulsanti della barra degli strumenti
Se si usa la funzioneCreateToolbarExper creare una barra degli strumenti, è possibile aggiungere pulsanti alla barra degli strumenti riempiendo una matrice di strutture TBBUTTON e specificando l'indirizzo della matrice nella chiamata di funzione. Tuttavia, la funzioneCreateWindowExnon dispone di un parametro per passare una struttura TBBUTTON. CreateWindowEx crea una barra degli strumenti vuota che viene riempita mediante l'invio di un messaggio TB_ADDBUTTONS, specificando l'indirizzo della struttura TBBUTTON.
Dopo aver creato una barra degli strumenti, è possibile aggiungere pulsanti inviando un TB_INSERTBUTTON o TB_ADDBUTTONS messaggio. Ogni pulsante è descritto da una strutturaTBBUTTON, 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 dei pulsanti della 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 pressione 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_SEP 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_SEP 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 dei pulsanti ora iniziano con BTNS_XXX anziché TBSTYLE_XXX. Per un elenco e una discussione sugli stili dei pulsanti, vedere Controllo barra degli strumenti e Stili pulsante.
Stati dei pulsanti della 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 TB_GETSTATE e TB_SETSTATE messaggi alla barra degli strumenti. Per un elenco degli stati dei pulsanti della barra degli strumenti, vedere Stati dei pulsanti 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 funzioneCreateToolbarExrichiede di impostare le dimensioni iniziali dei pulsanti quando si crea la barra degli strumenti. Quando si usa la funzioneCreateWindowEx, le dimensioni iniziali vengono impostate sulle dimensioni predefinite di 24 per 22 pixel. È possibile usare il messaggio di TB_SETBUTTONSIZE 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 lo stile di controllo comune CCS_ADJUSTABLE. 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. Inoltre, l'utente può fare doppio clic sulla barra degli strumenti per visualizzare la finestra di dialogo Personalizza barra degli strumenti, che consente all'utente di aggiungere, eliminare e riorganizzare 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 per l'utente e controllano la misura 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 Using Toolbar Controls.
Abilitazione del tracciamento a caldo
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 Using Toolbar Controls.