Newsgroup: it.comp.programmare.win32
Titolo: Colorare i bordi....ecc.

Come coloro i bordi della finestra?
E la barra menu?... Questa potrei anche farmela a piacimento se è troppo
complicato colorarla.
Vorrei eliminare completamente la finestra di Win. (vera... vera...
veramente brutta!!) disegnando la forma e i controlli a piacimento. Mettendo
"return 1" o 2 alla fine del prog. non viene disegnata (non ho idea del
perché!) ma ci sono problemi o con la chiusura (DestroyWin ...) oppure non
si ripristina dopo averlo ridotto a icona.
Come si può fare per mantenere la funzionalità?
Ultima: cosa si usa per prendere l'output della tastiera... si insomma i
caratteri digitati!
Troppe domande!?..
Saluti e grazie!
Fulvio.

Dimenticavo:
Naturalmente intendevo  in "C".
Fulvio.

Fulvio.
Saluti,
    Mardy

Uhm...  se vuoi rifare il LOOK alla tua App ( e solo a quella!) non ci sono
grossi problemi...
Intercetta WM_NCPAINT, WM_NCACTIVATE e qualche altro messagino...
(soprattutto quelli di resizing del bordo...) dai un occhiata all MSDN per i
dettagli, anzi, meglio se dai un occhio all'Articolo "HOW TO DRAW A CUSTOM
CAPTION BAR" ...sempre nell'MSDN.
Se intendi farlo a livello di Sistema (come fanno programmi del calibro di
WindowBlinds, eFX, Chroma..etc.) le cose si fanno più complesse!!! (e quello
che sto cercando di fare anch'io da qualche mese!sigh!)...
Che la Forza sia con te...
Mau
;)

 che sto cercando di fare anch'io da qualche mese!sigh!)...
Ciao,
        hai provato a subclassare le finestre esterne?
Poco tempo fa Lorenzo Lutti ha spiegato (qui sul NG, thread "Nascondere
applicazioni") che si può inserire un thread in una DLL che contiene un hook
globale e che è possibile usare la SetWindowLong sul processo "hookato" da
quel thread.
Questo perchè tutta la DLL viene copiata nello spazio di indirizzamento del
programma e quindi è come se tu lavorassi sul tuo processo (puoi usare la
SetWindowLong...)
Dovrebbe essere la via giusta per fare quello che intendi tu, no?
Ciao :-)
--
(¯`·.¸¸.·´¯`·.¸¸.-> Andrea <-.¸¸.·´¯`·.¸¸.·´¯)
AntiSpam: rimuovere il trattino basso dall'indirizzo per rispondere
AntiSpam: remove the underscore from the e-mail address to reply


Yup... interessante( anche se non è molto chiaro quello che vuoi dire..ehm
ehm) ... ma il Post che dici tu mi è proprio sfuggito... azz...
;)
Mau

Se usi WM_NCPAINT...
Se ho capito bene non serve "costruire" i bottoni (chiusura, ecc.) perché
non si vedono ma ci sono, quindi basta disegnarli!?
In pratica una finestra invisibile?
Comunque appena ho il tempo farò dei test per capire meglio il discorso!
Ciao e grazie!
Fulvio.

> Che la Forza sia con te...
La forza c'č!...Sono le conoscenze che mancano.
Grazie.
Fulvio.

 La forza c'è!...Sono le conoscenze che mancano.
Yup! Sagge parole...
Ad ogni modo, se non possiedi il CD del MSDN, puoi collegarti direttamente a
quello On-Line in casa Microzopp ;) e cercare il "famoso" articolo sulla
Custom CaptionBar, ti assicuro che ti ILLUMINERA' a dovere!
Bye! by Mau
PS.
Se comunque avessi difficoltà, posso provare a postartelo...

 ehm) ... ma il Post che dici tu mi è proprio sfuggito... azz...
Eh, lo so... quando scrivo di fretta va a finire che farfuglio sempre
tutto...
In pratica si tratta di creare una DLL in cui scrivi il codice per attivare
un hook globale.
Questa DLL verrà copiata (dal sistema, automaticamente) nello spazio di
indirizzamento di tutti i processi [attivi e che verranno attivati] quindi è
come se tu fossi all'interno di quei programmi.
(per le tue applicazioni usi la SetWindowLong per subclassare un controllo,
ma non puoi usarla su processi diversi dal tuo...)
Invece, dalla DLL puoi farlo ! in quanto, essendo nello stesso spazio di
indirizzamento, può accedere direttamente agli oggetti del processo
stesso...
Per quanto riguarda il thread (molto interessante tra l'altro) anche a me
GuardaFuori l'ha cancellato.... Sgrunt... :-(


 stesso...
Ok, ora è più chiaro... eh eh
e comunque ero già a conoscenza di tutto ciò (solo che come l'avevi scritto
tu... ;) ...sembrava un'altra cosa. yup!) avevo anche realizzato un piccola
App che installava un Hook di sistema - in una DLL appunto -
(WH_CALLWNDPROC), praticamente intercettavo i msg di disegno della nonclient
area... e ci disegnavo sopra (ma non sembra essere il sistema migliore,
anzi... !!!) l'Hook faceva  una piccola "cernita" e "modificava" solo le
finestre dotate di CaptionBar (e già qui c'era qualche casino...)!
Esaminando efX, ad es., ho scoperto che crea un sua classe di finestre
(POPUP) che contiene lo "SKIN" e che viene associata (anzi disegnata sopra)
ogni finestra presente sul desktop e una "Invisibile" chiamata TITLEBAR o
qualcosa del genere che, invece riceve i msg destinati alla CaptionBar...
in poche parole (ad es.) al Thread MYAPP e relativa finestra viene aggiunto
il Thread EFXSKIN e relativa finestra e questo per tutte le finestre
visibili sul desktop!
ma sul come venga impedito il disegno "di default" della finestra (caption,
bordi, pulsanti, etc.) non so proprio che dire (?)
Mi sono pure Decompilato l'exe e relativa DLL, ma non ci ho ricavato nulla
di utile...
bho...
Mau

Fulvio.
Saluti,
    Mardy

 tu... ;) ...sembrava un'altra cosa. yup!)
Tsz, Tsz, Tsz...
Non hai capito cosa intendo...
Ti rispondo nell'altro msg, questo thread lasciamolo morire ...
Ciao


Grazie, l'ho letto oggi! (avevo tralasciato questo argomento per altri più
urgenti.)
Ciao, Fulvio.


Grazie, ma per il momento ho sospeso la questione in favore di altre più
urgenti.
Ciao, Fulvio.