Vorrei presentarvi un controllo OCX, realizzato con Visual Basic 6, che consente di simulare l'aspetto della toolbar delle finestre di Explorer XP.

L'ActiveX in realtà consiste in 4 controlli, ovvero:
- Toolbar
- ToolbarButton
- ListButton
- Separator
L'ActiveX, prima di essere utilizzato deve essere registrato.
Per registrarlo, copiarlo in una posizione nota (ad esempio: C:\Windows\System32\) e da Start > Esegui lanciare il comando:
regsvr32 "C:\Windows\System32\XPToolbar.ocx"
Di seguito una breve descrizione dei controlli e delle loro funzionalità principali.
Separator non è un vero e proprio controllo e, come il nome suggerisce, serve solo a separare i vari elementi disposti sulla Toolbar.
Anche la Toolbar di base, non è altro che un contenitore dove posizionare i vari controlli e possiede solo un paio proprietà.
Una permette di definire l'allineamento/ancoraggio della barra rispetto al form, l'altra imposta lo stile del bordo inferiore come barra finale o intermedia (nel caso si vogliano sovrapporre più toolbar).
Il controllo ToolbarButton è un normale pulsante, con in più la possibilità di caricare al suo interno una icona allineabile in qualsiasi posizione rispetto al testo.
Impostando la proprietà CheckBoxBehaviour a True, invece, si può fare in modo che si comporti come un CheckBox o come una sorta di interruttore che può assumere valore True o False.
Il ListButton è un po'particolare perchè, oltre a mantenere le stesse caratteristiche del ToolbarButton, consente di mostrare un menu popup personalizzato, esattamente come nell'immagine qui sotto.

Il menu è facilmente definibile direttamente in fase di progettazione e senza scrivere una riga di codice, perchè basta sfruttare il MenuManager accessibile dalla finestra delle proprietà del controllo.

In ogni caso, il menu può essere definito anche via codice, usando la proprietà AddItem del controllo:
Private Sub Form_Load() With ListButton3 .AddItem "Selezione" .AddItem "Pagina" .AddItem "Documento" .AddItem "-" .AddItem "Tutto" End With End Sub
Esiste anche un'altra possibilità di mostrare un menu, che non deve essere necessariamente creato da codice o dal MenuManager.
Basta crearne uno sul form con l'Editor di Menu, analogamente a come si farebbe con qualsiasi menu standard e impostarlo come invisibile. Per mostrarlo, basterà impostare la proprietà ShowBuiltInMenu a False e usare l'evento ArrowClick(), rilasciato alla pressione sulla freccetta del pulsante, per visualizzare il popup con il metodo PopupMenu del Form.
Nel progetto di esempio sono mostrate entrambe le soluzioni di visualizzazione del menu.
Come al solito, non lesinate i commenti nel caso vogliate chiedere informazioni sull'utilizzo o l'implementazione del controllo






















Commenti
Utilizzo già gli xpcontrols per un mio progetto; volendo utilizzare anche xptoolbar mi domando se e come possa essere possibile modificare i colori di sfondo.
Grazie per la risposta che vorrai darmi.
Salve Fabrizio,
Il controllo non prevede la variazione dello sfondo della Toolbar, perchè è già preimpostato in relazione ai colori di sistema.
Ho verificato sia in win xp sia in windows 7 e con diversi stili in ambedue i sistemi ed il colore di sfondo rimane invariabilmente il panna. Che lo sfondo fosse in relazione ai colori di sistema era proprio ciò che desideravo, ma se non è possibile diversamente farò in altro modo...
Grazie ancora e con l'occasione porgo i miei saluti.
Fabrizio Bellei
RSS feed dei commenti di questo post.