Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Impostare il colore di sfondo del quadratino di una checkbox

In realtà ci spero poco, però se qualcuno avesse un'idea di come si potrebbe
realizzare una cosa del genere...

 realizzare una cosa del genere...
Lascia perdere.
Probabilmente è fattibile così come è fattibile 
ottenere l'effetto ZEBRA nella ListView, praticamente
subclassando il controllo e disegnando una PictureBox.
Questo detto in modo semplicistico, se ritieni utile
smazzarti il SubClassing per colorare un quadretto che
in tutte le applicazioni STANDARD è sempre a sfondo bianco
fai pure....!
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

..e se, senza arrivare a subclassing estremi, semplicemente, ci
mettessi una picture con i due stati? oppure un usercontrol in cui
disegni il bordo, lo sfondo ce l'hai gratis, e poi ci metti una "v"  o
meno?

Silk wrote:

Soluzione senz'altro efficace anche se continuo a chiedermi il perchè la 
gente voglia realizzare delle "interfacce-arcobaleno".
E' fondamentale che un utente trovi, nella GUI di una applicazione, gli 
standard adottati dal sistema operativo e dalle altre applicazioni...
Ciao
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca

 gente voglia realizzare delle "interfacce-arcobaleno".
La ragione c'č... l'interfaccia č molto fitta in termini di controlli e, ho
notato, il bianco di molti controlli ravvicinati tende ad imporsi un pň
troppo e quindi a confondere, cambiando il bianco sgargiante standard in un
grigio medio-chiaro l'UI guadagna in chiarezza.

 subclassando il controllo e disegnando una PictureBox.
Io speravo che, ottenendo l'handle del controllo, si potesse fare qualcosa
con le api...
Comunque mi sa che lascerň perdere :-(

 chiarezza.
IMHO, c'è un errore di fondo della progettazione dell'interfaccia...
http://www.ascensionlabs.com/general_GuiGuidelines.htm
http://www.microsoft.com/whdc/hwdev/windowsxp/downloads/default.mspx
http://msdn.microsoft.com/library/en-us/dnwui/html/uiguide.asp
Poi, sei libero di fare quello che meglio credi :)


 Comunque mi sa che lascerò perdere :-(
Se proprio vuoi tentare...
http://www.vbaccelerator.com/home/VB/Code/Libraries/Subclassing/Owner_Draw_Buttons/article.asp


 grigio medio-chiaro l'UI guadagna in chiarezza.
Un grigio è sinonimo di controllo disabilitato... se questo è aggiungere
chiarezza... :)
Dove lavoro io c'è la mania di rendere gialli i controlli con il focus.
Per questa sciocchezza non ti dico i salti mortali che deve fare il codice
per gestire correttamente la cosa (ovviamente non si pensa nemmeno di
ricorrere a controlli personalizzati per risolvere il problema...)
Ciao
--
Reporting tool: 
http://www.neodatatype.net

 chiarezza... :)
Beh, c'è grigio e grigio, inoltre, quando il background di tutti i controlli
è grigio
Questo è un esempio di quello che vorrei realizzare:
http://dimio.altervista.org/dshutdown.png
IMHO il risultato è più che chiaro, o almeno così mi sembra...
E comunque per ora ne sto solo valutando la fattibilità, seguirà una mini
indagine di mercato per vedere se la cosa è gradita :-)

 IMHO il risultato è più che chiaro, o almeno così mi sembra...
CHIARO????
ROTFL...



http://www.vbaccelerator.com/home/VB/Code/Libraries/Subclassing/Owner_Draw_Buttons/article.asp
:-o interessante... credo che possa venir buono anche per altri scopi.

 ROTFL...
Ti riferisci al colore o all'organizzazione dell'interfaccia?

 è grigio
Pensa che io uso il verde come colore di selezione (tipo:
http://www.resexcellence.com/themes/max/Milk/03-22_Milk_3.0_Green_lg.jpg
)
Come pensi che il tuo "grigio" possa essere una buona soluzione ovunque? :)


 Come pensi che il tuo "grigio" possa essere una buona soluzione ovunque?
:)
Quindi mi sembra di intuire che il vostro parere sull'idea del grigio sia
negativo...
Si sommano ad altri due pareri incerto-negativi. Possibile che solo a me
sembri una buona idea? (sono solo contro il mondo :-)))

 sembri una buona idea? (sono solo contro il mondo :-)))
Dipende un po' da come la interpreti.
Se la tua app è "tematica" allora può essere una via.
Però devi escludere i colori di sistema da tutti i controlli (e dal form), e
alcuni come i command non mi pare siano d'accordo :)
Questo comporta il ricordarsi di gestire la colorazione su *tutti* i
controlli ogni volta (per questo l'idea dell'uso di custom controls potrebbe
essere vantaggiosa, se usassi VB.net l'ideale sarebbe adirittura ereditare
tutti i controlli da uno base che definisce i colori, così da non dover
toccare 80 punti ogni volta che fai una piccola variazione).
Altrimenti, lascia perdere.
Rischi di dare l'impressione di una applicazione arrabattata.


 Ti riferisci al colore o all'organizzazione dell'interfaccia?
In particolare al colore.
Per il resto, i frame sono troppo vicini tra loro...
Tieni presente che a 800x600, oramai, non ci lavora più nessuno.
Ciao


 Tieni presente che a 800x600, oramai, non ci lavora più nessuno.
Le ultime parole famose... ;-)
-- 
ciao, hal


acc... preceduto :P


 Ciao
Io sono costretto: certi "clienti" hanno schermi dei tempi di Mussolini...
-- 
Emanuele Torrenti

 Le ultime parole famose... ;-)
Sinceramente, è un bel pò di tempo che non mi capita di mettere mani su 
una risoluzione inferiore a 1024x768 :)
Tra l'altro io lavoro con un portatile che ha risoluzione 1608x1050 e 
quando passo su un PC con 1024x768 mi sembra piccolo.
Non oso pensare a come si lavora 'male' a soli 800x600 :(


 una risoluzione inferiore a 1024x768 :)
Beato te, io hoi ancora qualcuno a 640x480 e windows 95 :-(
-- 
ciao, hal

 Beato te, io hoi ancora qualcuno a 640x480 e windows 95 :-(
Azz!
Sebbene 800x600 possa effettivamente ancora utilizzata, non vedo come si 
possa lavorare (bene) a 640x480, a meno che non si stia parlando di 
applicazioni "particolari" (il pc viene solo utilizzato per 
quell'applicativo).


 quell'applicativo).
in giro si vedono tuttora vari schermi 80x25...

 Tieni presente che a 800x600, oramai, non ci lavora più nessuno.
E infatti quell'UI è pensata proprio per una 800x600 :-)
Gestisco un sito web con un sistema di statistiche, il 20% degli utenti ha
la 800x600...


Zanna ti giuro... ho vista la jpg e dopo qualche minuto mi sono accorto di 
essere andato in cucina a prendere una mela (verde), e aver voluto bere 
(poco dopo) una granita alla menta....
Hai aperto un nuovo campo di esplorazione... Iterfacce Utente Subliminali 
:-) 

 :-)
Ultimamente siamo un po' tutti al verde :P


 toccare 80 punti ogni volta che fai una piccola variazione).
Interessante come teoria, ma sono su VB6 :-(

 potrebbe realizzare una cosa del genere...
Concordo con gli altri: soprattutto il grigio è ormai una "visual clue"
ben riconoscibile per "disabilitato". Comunque....
Se proprio vuoi, IMHO, fai prima a farti un controllino tuo che emuli
la CheckBox.
Se fossero state poche, (ma ho visto il tuo esempio, e non mi pare il caso)
ti avrei consigliato, più semplicemente, una bitmappina: una Image, e tieni
un array di Boolean sincronizzato; al click ci scrivi il segno di spunta (è una
"a" minuscola col font Marlett), se era già "True" lo pulisci.
Se devi gestire anche il Grayed, ti si complica giusto un minimo: un Integer
al posto di un Boolean, e puoi usare gli stessi valori di vb, così nel codice
esistente cambi solo il minimo indispensabile.
Una volta fatto questo, però, è banale metterlo in un OCX...
Bye, G.

 Cosě a occhio potrebbe funzionare?
Per me ti stai inutilmente infognando in un falso problema.
Vuoi usare colori tuoi?
Usali e basta, che cavolo ti subclassi stuzzicando poi il SO?


 Usali e basta, che cavolo ti subclassi stuzzicando poi il SO?
Il fatto è che non è possibile impostare il colore di sfondo del quadratino
del checkbox senza cambiare i colori di sistema.
Mi spiego meglio, quello che vorrei fare è dare a tutti gli utenti
un'interfaccia che abbia *sempre* gli stessi colori, cioè che non sia
suscettibile delle personalizzazioni dei colori di sistema.

> Mi č venuta in mente un possibile workaround...
Comunque non funziona :-(
Sembra che, ogni volta che un controllo viene ridisegnato, verifichi i
colori di sistema.

 suscettibile delle personalizzazioni dei colori di sistema.
Scusa se insisto, Dimio...
Il fatto che un utente possa, di sua volontà, modificare la combinazione 
dei colori di sistema, aspettandosi che *tutte* le applicazioni 
'rispettino' la sua volontà è fondamentale anche, e soprattuto, nel 
rispetto dell'usabilità di tutte le applicazioni da parte di persone con 
problemi visivi (ma non solo).
E' indubbio che esistono applicazioni che non rispettano questi standard 
(WinAmp, ad esempio...) ma la tua interfaccia è tutt'altro che "fuori 
standard".
Pensa, inoltre, ad un altro fattore: tu hai scelto, al posto del bianco, 
un grigio-chiaro... ma a quale profondità di colore lo hai scelto? Hai 
provato a verificare che, a 256 colori, quel grigio non appaia come il 
grigio che identifica un controllo 'disabilitato'?
Insomma, secondo me stai perdendo tempo (*) in un falso problema.
Il successo di una applicazione, a volte, non è solo il compito che 
svolge, ma anche la sua usabilità...
(*)=In effetti, la tua, non è una vera e propria perdita di tempo in 
quanto si tratta comunque di *analizzare* un problema e trovare una 
possibile soluzione. E' l'applicazione della soluzione, in questo 
contesto, che è una perdita di tempo.
Ciao!


 Insomma, secondo me stai perdendo tempo
Alla fine mi sa di sì, anche perché la soluzione che speravo non l'ho
trovata (anche subclassando non ho cavato niente).

 personalizzata) si limita ad utilizzare i colori di sistema.
Posso ripeterti che la tua soluzione fa schifo?
Se uno si sceglie una delle combinazioni predefinite è ancora considerabile
"di default"?
E come fai a sapere che un colore è quello di default?
A quanto mi pare a seconda dei diversi SO i grigi usati sono leggermente
diversi.
Ti ripeto, perderai molto meno tempo e problemi futuri se ti fai i tuoi 4
controlli standard colorati come vuoi su usercontrol.
Questo continuando a sostenere che modificare i colori scelti dall'utente
non è una buona idea (se l'utente vuole il grigino se lo mette lui, no?).


 diversi.
E anche nello stesso sistema operativo. Io uso XP, ed ha combinazioni 
leggermente differenti fra i temi di xp e il "windows classico".
-- 
Emanuele Torrenti