I COLORI DI SISTEMA DI WINDOWS
Funzionamento dei colori di sistema.Una maschera di bit è un valore
REG_BINARY
(binario)
con una quantità variabile di byte (ovvero un numero da 0 a 255, in genere
rappresentati in
formato esadecimale cioè con due cifre da 0 a 9 e da A a F) in forma di flag
(per informazioni vedere l'articolo
sulle flag nel Registro di sistema)
che serve a contenere una grande quantità di impostazioni in un solo valore,
permettendo di combinarle. Si tratta in sostanza di un insieme di flag. Il concetto risulterà più chiaro dopo
aver analizzato il valore UserPreferencesMask. USERPREFERENCESMASK
Un complesso esempio di maschera di bit.UserPreferencesMask è
un valore REG_BINARY di 4 byte che si trova nella chiave
HKEY_CURRENT_USER\Control Panel\Desktop ed è utilizzato per memorizzare diverse
impostazioni sulla gestione delle finestre di Windows.
Bit |
Maschera di bit |
Descrizione |
0 |
0x00000001 |
Le finestre
diventano attive al passaggio del puntatore |
1 |
0x00000002 |
Attiva l'animazione
nella visualizzazione dei menù, vedi il bit 9. |
2 |
0x00000004 |
Attiva l'effetto
scorrimento per l'apertura delle caselle combinate. |
3 |
0x00000008 |
Attiva lo
scorrimento continuo per le caselle di scorrimento. |
4 |
0x00000010 |
Attiva l'effetto
sfumatura nella barra dei titoli delle finestre. |
5 |
0x00000020 |
I tasti di scelta
rapida di bottoni e menù sono sottolineati solo alla pressione di ALT. |
6 |
0x00000040 |
Le finestre
attivate col passaggio del mouse vengono anche portate in primo piano. |
7 |
0x00000080 |
Funzionalità di
intercettazione del mouse. |
8 |
0x00000100 |
Riservato al
futuro. |
9 |
0x00000200 |
Attiva l'effetto
dissolvenza dei menù. Altrimenti utilizza l'effetto scorrimento. |
10 |
0x00000400 |
Attiva l'effetto
dissolvenza quando selezioni un menù o una voce di una casella
combinata. |
11 |
0x00000800 |
Attiva l'animazione
per le descrizioni dei comandi, vedi bit 12. |
12 |
0x00001000 |
Attiva l'effetto
dissolvenza delle descrizioni dei comandi. Altrimenti utilizza lo
scorrimento. |
13 |
0x00002000 |
Attiva l'ombra del
cursore. |
31 |
0x80000000 |
Attiva tutti gli
effetti di questa maschera di bit. |
Nota: "0x" significa che si sta
parlando di un numero in formato esadecimale.
Per capire meglio facciamo qualche esempio. Se
volessimo fare in modo che le finestre diventino attive al passaggio del
puntatore e attivare l'effetto ombra per il mouse non dovremmo che impostare la
UserPreferencesMask su 0x80002001. Vediamo in dettaglio il perché:
- la prima cifra, 8, è necessaria affinché la maschera non venga
ignorata disabilitando tutti gli effetti;
- la quinta cifra, 2, serve ad indicare che l'effetto ombra del
mouse è attivo (come riportato nella tabella sopra);
- l'ultima cifra, 1, indica invece che al passaggio del mouse su di
una finestra essa deve essere attivata;
Invece se si volessero attivare tutti gli effetti, la
maschera dovrebbe essere 0x80003FFF. Come si può notare non è stato fatto
nient'altro che eseguire la somma di tutti i valori riportati nella tabella:
00000001 +
00000002 +
00000004 +
00000008 +
00000010 +
00000020 +
00000040 +
00000080 +
00000100 +
00000200 +
00000400 +
00000800 +
00001000 +
00002000 +
80000000 =
80003FFF
Nota: sono stati omessi i simboli di esadecimale (0x).
In sostanza per comporre una maschera di bit è sufficiente effettuare la somma
dei valori esadecimali delle singole impostazioni che si desidera attivare.
Finora abbiamo lavorato con questa maschera come fosse una DWORD (un valore
intero da 32 bit), ma in realtà il valore
UserPreferencesMask è in formato REG_BINARY, il che
significa che non possiamo inserire direttamente il valore "80003FFF". La DWORD
che noi vogliamo rapprenstare va inserita secondo la convenzione
little-endian, ovvero dal byte meno significativo al più significativo,
ad esempio: 0x12345678 diventa {0x78, 0x56, 0x34, 0x12} (e non {0x12, 0x34,
0x56, 0x78}, come sarebbe nella convenzione big-endian). E più
nello specifico il nostro valore andrà inserito come {0xFF, 0x3F, 0x00, 0x80}
o più brevemente FF3F0080.
|