Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Controllo Slider VB e TOOLTIP del C@~~°

Olà, ciao
ho fra le mani lo stile TBS_TOOLTIPS ( = &H100) del controllo Slider dei
Common Controls di VB6.
Non sono però riuscito a capire se in qualche modo riesco ad affibbiarlo
(a dir la verità mi serve per *disabilitare* quello stramaledetto
tooltip) al mio slider. Non esiste un messaggio di tipo TBM_SETSTYLE, e
immagino che sia possibile impostare questo stile con l'uso di
SetWindowsLong o simili. Sto provando, ma metto le mani avanti e chiedo
aiuto. Caspita: possibile che si debbano perdere delle ore su questioni
così stupide? Ma non potevano predisporre una proprietà ToolTips??? Il
mio slider utilizza una scala diversa da quella che viene visualizzata,
e il tooltip confonde le idee all'utente (per intenderci: visualizza
valori negativi, questo per poter invertire la posizione dello zero e
del fondoscala). Se proprio vogliono perder tempo ad aggiungere 'ste
cazzate, almeno lo facciano bene. Ci metto più tempo a cercare di
toglierlo che se volessi crearlo ad hoc con le API. Anzi, forse si fa
col VB puro e semplice. @#££@##!!!
Grazie
Flavio Ronco
--
f.ronco@*NonMiServeNiente*
flashnet.it
http:\\
www.geocities.com
\Paris\3461\
-------------------------------------------------------------
"Che pubblico in gamba! Se ci dite dove lavorate,
domani mattina se abbiamo tempo vi veniamo a vedere"
[Paolo Rossi]

Mah,
per ora l'ho risolto cosě:
- in MouseDown dello slider leggo l'Handle al Tooltip, tramite l'invio del
messaggio TBM_GETTOOLTIPS, lo memorizzo in una variabile globale
m_hHandleTT. Poi lo imposto a NULL (funziona) tramite l'invio di
TBM_GETTOOLTIPS. MouseDown viene attivato *prima* che il tooltip compaia.
- in MouseUp imposto nuovamente l'Handle al ToolTip secondo la var
m_hHandleTT, cosě tutto ritorna a posto. Altrimenti, impostando
semplicemente a zero l'handle e inviando WM_DESTROY al ToolTip non la si
passava liscia.
Ma non so ancora quali sono gli effetti collaterali... per ora tutto bene.
ecco il codice:
 - A livello di Modulo:
'Dichiarazioni
Public m_lHandleTT As Long
Public Const WM_USER = &H400
Public Const TBM_SETTOOLTIPS = WM_USER + 29
Public Const TBM_GETTOOLTIPS = WM_USER + 30
Public Declare Function SendMessageLong _
    Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long
 - Sullo Slider (sldLevel):
Private Sub sldLevel_MouseDown(Button As Integer, Shift As Integer, x As
Single, Y As Single)
    Dim lResult As Long
    m_lHandleTT = SendMessageLong(sldLevel.hwnd, TBM_GETTOOLTIPS, 0, 0)
    lResult = SendMessageLong(sldLevel.hwnd, TBM_SETTOOLTIPS, 0, 0)
End Sub
Private Sub sldLevel_MouseUp(Button As Integer, Shift As Integer, x As
Single, Y As Single)
    Dim lResult As Long
    lResult = SendMessageLong(sldLevel.hwnd, TBM_SETTOOLTIPS, m_lHandleTT,
0)
End Sub
------------------------------------------------------------------------------------
Ma resto dell'idea che sia pazzesco...
Flavio Ronco

Ho provato a inviare il messaggio prima di visualizzare lo slider
(Form_Load) e sembra funzionare correttamente, questo semplifica le cose in
quanto basta usare:
SendMessage slMeas.hwnd, TBM_SETTOOLTIPS, 0, ByVal 0
Ciao,
Corrado

Corrado Cavalli ha scritto:

Hai ragione... che gnocco!! Se non gli do il tempo di visualizzarlo, non viene
implementata nessuna classe ToolTip. Di conseguenza, non ci sarà il tentativo
di destruction.
Ma la tua è stata curiosità o ti serviva la stessa cosa? o lo sapevi già, come
fare? ;->
Grazie
Flavio
--
f.ronco@*NonMiServeNiente*
flashnet.it
http:\\
www.metabrains.com


Avevo lo stesso problema e l'avevo momentaneamente accantonato, il tuo msg č
stato utilissimo!
Ciao,
Corrado

 Corrado
Grazie. Io, però ho qualche problema, da quando ho rimosso le righe che mi
memorizzavano e ripristinavano l'handle del tooltip. Ogni tanto il prog va in
crash all'uscita (non sempre, diciamo una volta su 5). Prima non succedeva...
Non sono però sicuro che dipenda da questo. Proverò a bypassare completamente
per un po' la nostra soluzione, e vedrò se è lei l'incriminata. Se dovessi avere
problemi del genere fammi sapere.
Ciao
Flavio
--
f.ronco@*NonMiServeNiente*
flashnet.it
http:\\
www.geocities.com
\Paris\3461\
-------------------------------------------------------------
