Newsgroup: it.comp.lang.visual-basic
Titolo: pulsante sulla barra del titolo

Gentili colleghi,
sapete come si può aggiungere un pulsante personalizzato (ovviamente della
stessa dimensione) sulla barra del titolo insieme o al posto di quelli
esistenti (minimizza,massimizza e x) ?
ho cercato parecchio in rete qualche trucco ma niente ....
grazie per il vostro aiuto
Alessandro



 ho cercato parecchio in rete qualche trucco ma niente ....
lascia stare.. ci ho gia' provato io.
ho gia' postato un messaggio del genere e dopo un paio
di risposte siamo giunti alla conclusione che nessuno qui sappia
come fare. :)
--
Fibia "Sakamoto" FBI
URL: 
www.geocities.com/fibiafbi
E-Mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Membro #25 delle Brigate Takahashi Sez. Sud

Gentili colleghi,
sapete come si può aggiungere un pulsante personalizzato (ovviamente della
stessa dimensione) sulla barra del titolo insieme o al posto di quelli
esistenti (minimizza,massimizza e x) ?
ho cercato parecchio in rete qualche trucco ma niente ....
grazie per il vostro aiuto
Alessandro

ho cercato parecchio in rete qualche trucco ma niente ....
io son forte sulla teoria, ma in pratica nisba... allora, ecco cosa devi 
fare, nell'ordine:
COSA:
 1- ottenere le dimensioni dei pulsanti nella barra del titolo
 2- caricare la bitmap da mostrare nel pulsante
 3- sapere la posizione in cui disegnare il pulsante
 4- disegnare il pulsante
 5- gestire il pulsante
COME:
 1- funzione GetSystemMetrics, come indici specifica SM_CXMENUSIZE e 
SM_CYMENUSIZE (larghezza e altezza, rispettivamente)
 2- passo ai guru delle GDI (comunque anzichč una bitmap consiglio un 
metafile o, come fa Windows, un font True Type, in modo da poter facilmente 
- si fa per dire - scalare l'immagine)
 3- abbastanza carogna. Ho troppo sonno per fare una funzione ad hoc, 
adesso... supponiamo una funzione GetCaptionRect(ByVal hWnd as Long, lRect as 
RECT) As Boolean che ci dia il Rect della barra del titolo, relativo 
all'angolo in alto a sinistra della finestra...
 4- HO SONNO!!! Ahem... DrawFrameControl č quello che fa per te... fai che 
ridisegnare tutti i pulsanti, ti conviene: DrawFrameControl č capace di 
disegnare automaticamente i pulsanti standard della barra del titolo
 5- subclassa la finestra (non ti dico come. Non adesso...) e intercetta tutti 
i messaggi WM_NC*. In caso di WM_NCLBUTTONDOWN controlli se l'utente sta 
cliccando uno dei pulsanti: se sě, di nuovo DrawFrameControl, ma stavolta con 
lo stile DFCS_PUSHED, e ti segni quale pulsante č stato cliccato... poi ad 
ogni WM_NCMOUSEMOVE controlli se il cursore del mouse si trova ancora nel 
pulsante: se sě, controlla se il tasto sinistro č cliccato. Se no, allora 
scatena l'evento click (azzera lo stato del pulsante e fagli fare qualcosa, 
sennň che ce l'hai messo a fare?), se sě, "desisti" (© by Totň). Se il cursore 
non si trova piů nel pulsante, "alzalo", ossia disegnalo "raised", ma segnati 
che č ancora cliccato... ma ora vedo che dovresti, in piů: catturare il 
cursore del mouse (ma cosě non riceverai i messaggi WM_NC*, mumble mumble...), 
gestire il messaggio WM_NCHITTEST, ridisegnare tutta la caption... insomma, un 
macello... damn, avessi VB mi metterei al lavoro!!! (non oggi... ronf)

cursore del mouse (ma così non riceverai i messaggi WM_NC*, mumble mumble...), 


4) nessun crash
5) viola il principio primo di VB (e di C++ ...): riutilizzabilitą

come fare. :)
OK, OK, ho già capito che mi toccherà fare l'amanuense...
Un annetto e passa fa, ho letto un articolo su VBPJ nel quale Dan Appleman spiegava appunto come
fare... avevo chiesto se qualcuno era abbonato alla rivista e aveva il sorgente già pronto, di
inviarlo al SC, ma giacché sembra che nessuno ce l'abbia, lo ricopierò io e lo invierò al SC quanto
prima (dopo le feste...).
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

 prima (dopo le feste...).
del 2000, nel casino devx, ho ricevuto vari numeri sia su carta sia su cd.
se fossi cosi' bravo da ricordarti il mese, prob posso rintracciare tutto il
codice e risparmiarti almeno la copia.

 wrote in message
2as05ts1kso7cid0n...@4ax.com...


5) viola il principio primo di VB (e di C++ ...): riutilizzabilità
6) col tuo codice che ti riutilizzi, S. Crispino?
Noseda
Meditare...sempre

 le feste...).
vai Moreno, posta per il bene comune... questa e' una cosa
che interessa un po' tutti.


Gentili colleghi,
sapete come si può aggiungere un pulsante personalizzato (ovviamente della
stessa dimensione) sulla barra del titolo insieme o al posto di quelli
esistenti (minimizza,massimizza e x) ?
ho cercato parecchio in rete qualche trucco ma niente ....
grazie per il vostro aiuto
Alessandro

 ho cercato parecchio in rete qualche trucco ma niente ....
guarda nei post qui attorno.
c'e' un post di Moreno (grande Moreno) sull'argomento.
e funziona alla grande!


 > sapete come si può aggiungere un pulsante personalizzato (ovviamente

L'esempio è anche presente sul sito comune:
Come dice giustamente Moreno:
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------
Ciao VB