Newsgroup: it.comp.programmare.win32
Titolo: HELP su refresh, grazie

Ciao a tutti,
qualche giorno fa, Mardy mi aveva segnalato che nel mio programma (fatto con
Borland C++ Builder 1.0), cambiando con il Pannello di controllo i colori di
Win, non tutti i controlli venivano aggiornati.
Ho guardato, e quelli che non subiscono cambiamenti sono:
a) i colori "trasparenti" nelle bitmap dei pulsanti (i pulsanti, invece, si
aggiornano normalmente)
b) lo sfondo degli "slider".
Cosa posso fare? Devo per forza mandare il messaggio manualmente (in questo
caso, come si fa)? Non dovrebbe esserci un sistema "automatico" uguale per
tutti i controlli?
Grazie, saluti :-)
Marco Zanon (
m.z...@usa.net
)
http://www.geocities.com/SiliconValley/Peaks/6455


Non conosco C++ Builder, quindi la mia è una risposta molto generica, spero
ti possa essere comunque di aiuto.
Tutte le finestre top-level dovrebbero ricevere il messaggio
WM_SYSCOLORCHANGE quando vengono cambiati i colori di sistema e
WM_SETTINGCHANGE quando vengono modificati i parametri relativi alle
dimensioni di default dei vari elementi dell'UI; gestendo questi messaggi
dovresti essere in grado di intercettare la modifica dei colori di sistema e
di conseguenza "riaggiustare" la tua interfaccia utente.
--
Valter Minute - 
min...@fortech.it
 (the reply address of this message is
invalid)
--
Are you looking for a good freeware ScreenSaver? Try FOYD!
http://hotfiles.zdnet.com/cgi-bin/texis/swlib/hotfiles/getit.bin?fcode=000PZ
0
if you want, I can send you the (free) C++ source code.

b) lo sfondo degli "slider".
Per quanto riguarda le bitmap avevo affrontato il problema tempo fa, ora non ricordo
molto bene.
Il problema e` che bisogna rimappare i colori secondo i settaggi dell'utente...
per fare questo mi servivo della classe OWL TDib e del metodo MapUIColors.
In sostanza caricavo la bitmap di un pulsante, ne rimappavo i colori e riassegnavo
al pulsante la nuova bitmap cosi` ottenuta.
Prova a cercare sull'help e tra gli esempi.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

ok grazie, ciao :-)





Saluti
    Mardy
--
Per rispondere, togliere NVN dal mio indirizzo.
Cosa dovremmo fare, legarci con dei CDN ai cancelli telecom? (D. Orlandi)




[...]
Outlook non tarda a farsi riconoscere :-(
Scusate.


occupi di inviare i msg.
In OWL il problema era in parte legato al fatto che i pulsanti di una toolbar non
erano vere finestre (infatti non sono TButton, ma TButtonGadget, TButton deriva
da TWindow, ma TButtonGadget deriva da TGadget che non e` a sua volta
derivata da altre classi, TWindow in particolare).
Non so quali motivi condussero borland ad una simile decisione
in merito al comportamento in presenza di un WM_SYSCOLORCHANGE
(in fondo una TControlBar e` una finestra e ricevuto il messaggio poteva
prevedere l'aggiornamento dei colori come comportamento di default),
probabilmente non volevano imporre un comportamento che potenzialmente
non andasse bene con tutte le classi derivate da TGadget (comprese quelle
definite dall'utente).
