J'aimerai savoir s'il est possible de changer d'onglet=20
d'un contr=F4le Sstab juste en positionnant le curseur de la=20
souris sur l'onglet d=E9sir=E9. Dans l'affirmative, quel=20
=E9v=E8nement ou propri=E9t=E9 utiliser?
Private Const TCHT_NOWHERE = &H1 'Click en dehors d'un tab 'Les constantes suivantes sont présentes à titre informatif. 'Private Const TCHT_ONITEMICON = &H2 'Click sur l'icône du tab 'Private Const TCHT_ONITEMLABEL = &H4 'click sur le texte du tab 'Private Const TCHT_ONITEM = (TCHT_ONITEMICON Or TCHT_ONITEMLABEL) 'click sur le texte et sur l'icône du tab
Private Type POINT x As Long y As Long End Type Private Type TCHITTESTINFO pt As POINT Flags As Long End Type
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Function TabHitTest(hwnd As Long, x As Single, y As Single) As Long Dim HitTestInfo As TCHITTESTINFO, lngResult As Long 'Récupération des informations de position HitTestInfo.pt.x = x HitTestInfo.pt.y = y
'Envoie du HitTest lngResult = SendMessage(hwnd, TCM_HITTEST, 0&, HitTestInfo) 'Si on a cliqué sur un onglet If HitTestInfo.Flags <> TCHT_NOWHERE Then TabHitTest = lngResult 'On renvoie l'index de l'onglet Else TabHitTest = -1 'Sinon, on renvoie -1 End If End Function
Private Sub TabStrip1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Dim lngTab As Long
lngTab = TabHitTest(TabStrip1.hwnd, x / Screen.TwipsPerPixelX, y / Screen.TwipsPerPixelY) If lngTab > -1 Then TabStrip1.Tabs(lngTab + 1).Selected = True End If End Sub
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Cindy" a écrit dans le message de news:346001c42923$99f32720$
Bonjour à tous,
J'aimerai savoir s'il est possible de changer d'onglet d'un contrôle Sstab juste en positionnant le curseur de la souris sur l'onglet désiré. Dans l'affirmative, quel évènement ou propriété utiliser?
D'avance, merci pour votre aide.
Cindy
Hello,
En employant un Tabstrip (Microsoft Windows Common Controls) c'est possible:
Option Explicit
Private Const TCHT_NOWHERE = &H1 'Click en dehors d'un tab
'Les constantes suivantes sont présentes à titre informatif.
'Private Const TCHT_ONITEMICON = &H2 'Click sur l'icône du tab
'Private Const TCHT_ONITEMLABEL = &H4 'click sur le texte du
tab
'Private Const TCHT_ONITEM = (TCHT_ONITEMICON Or TCHT_ONITEMLABEL) 'click
sur le texte et sur l'icône du tab
Private Type POINT
x As Long
y As Long
End Type
Private Type TCHITTESTINFO
pt As POINT
Flags As Long
End Type
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Function TabHitTest(hwnd As Long, x As Single, y As Single) As Long
Dim HitTestInfo As TCHITTESTINFO, lngResult As Long
'Récupération des informations de position
HitTestInfo.pt.x = x
HitTestInfo.pt.y = y
'Envoie du HitTest
lngResult = SendMessage(hwnd, TCM_HITTEST, 0&, HitTestInfo)
'Si on a cliqué sur un onglet
If HitTestInfo.Flags <> TCHT_NOWHERE Then
TabHitTest = lngResult 'On renvoie l'index de l'onglet
Else
TabHitTest = -1 'Sinon, on renvoie -1
End If
End Function
Private Sub TabStrip1_MouseMove(Button As Integer, Shift As Integer, x As
Single, y As Single)
Dim lngTab As Long
lngTab = TabHitTest(TabStrip1.hwnd, x / Screen.TwipsPerPixelX, y /
Screen.TwipsPerPixelY)
If lngTab > -1 Then
TabStrip1.Tabs(lngTab + 1).Selected = True
End If
End Sub
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Cindy" <anonymous@discussions.microsoft.com> a écrit dans le message
de news:346001c42923$99f32720$a001280a@phx.gbl
Bonjour à tous,
J'aimerai savoir s'il est possible de changer d'onglet
d'un contrôle Sstab juste en positionnant le curseur de la
souris sur l'onglet désiré. Dans l'affirmative, quel
évènement ou propriété utiliser?
Private Const TCHT_NOWHERE = &H1 'Click en dehors d'un tab 'Les constantes suivantes sont présentes à titre informatif. 'Private Const TCHT_ONITEMICON = &H2 'Click sur l'icône du tab 'Private Const TCHT_ONITEMLABEL = &H4 'click sur le texte du tab 'Private Const TCHT_ONITEM = (TCHT_ONITEMICON Or TCHT_ONITEMLABEL) 'click sur le texte et sur l'icône du tab
Private Type POINT x As Long y As Long End Type Private Type TCHITTESTINFO pt As POINT Flags As Long End Type
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Function TabHitTest(hwnd As Long, x As Single, y As Single) As Long Dim HitTestInfo As TCHITTESTINFO, lngResult As Long 'Récupération des informations de position HitTestInfo.pt.x = x HitTestInfo.pt.y = y
'Envoie du HitTest lngResult = SendMessage(hwnd, TCM_HITTEST, 0&, HitTestInfo) 'Si on a cliqué sur un onglet If HitTestInfo.Flags <> TCHT_NOWHERE Then TabHitTest = lngResult 'On renvoie l'index de l'onglet Else TabHitTest = -1 'Sinon, on renvoie -1 End If End Function
Private Sub TabStrip1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Dim lngTab As Long
lngTab = TabHitTest(TabStrip1.hwnd, x / Screen.TwipsPerPixelX, y / Screen.TwipsPerPixelY) If lngTab > -1 Then TabStrip1.Tabs(lngTab + 1).Selected = True End If End Sub
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Cindy" a écrit dans le message de news:346001c42923$99f32720$
Bonjour à tous,
J'aimerai savoir s'il est possible de changer d'onglet d'un contrôle Sstab juste en positionnant le curseur de la souris sur l'onglet désiré. Dans l'affirmative, quel évènement ou propriété utiliser?
D'avance, merci pour votre aide.
Cindy
Cindy
Je vais avoir du boulot pour ce WE, Merci infiniment pour ton aide.
-----Message d'origine----- Hello,
En employant un Tabstrip (Microsoft Windows Common
Controls) c'est possible:
Option Explicit
Private Const TCM_FIRST = &H1300 '//
Tab control messages
Private Const TCM_HITTEST = (TCM_FIRST + 13)
Private Const TCHT_NOWHERE = &H1 'Click
en dehors d'un tab
'Les constantes suivantes sont présentes à titre
informatif.
'Private Const TCHT_ONITEMICON = &H2 'Click
sur l'icône du tab
'Private Const TCHT_ONITEMLABEL = &H4 'click
sur le texte du
tab 'Private Const TCHT_ONITEM = (TCHT_ONITEMICON Or
TCHT_ONITEMLABEL) 'click
sur le texte et sur l'icône du tab
Private Type POINT x As Long y As Long End Type Private Type TCHITTESTINFO pt As POINT Flags As Long End Type
Private Declare Function SendMessage Lib "user32"
Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As
Long, lParam As
Any) As Long
Function TabHitTest(hwnd As Long, x As Single, y As
Single) As Long
Dim HitTestInfo As TCHITTESTINFO, lngResult As Long 'Récupération des informations de position HitTestInfo.pt.x = x HitTestInfo.pt.y = y
'Envoie du HitTest lngResult = SendMessage(hwnd, TCM_HITTEST, 0&,
HitTestInfo)
'Si on a cliqué sur un onglet If HitTestInfo.Flags <> TCHT_NOWHERE Then TabHitTest = lngResult 'On renvoie l'index de
l'onglet
Else TabHitTest = -1 'Sinon, on renvoie -1 End If End Function
Private Sub TabStrip1_MouseMove(Button As Integer, Shift
As Integer, x As
Single, y As Single) Dim lngTab As Long
lngTab = TabHitTest(TabStrip1.hwnd, x /
Screen.TwipsPerPixelX, y /
Screen.TwipsPerPixelY) If lngTab > -1 Then TabStrip1.Tabs(lngTab + 1).Selected = True End If End Sub
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Cindy" a écrit
dans le message
de news:346001c42923$99f32720$
Bonjour à tous,
J'aimerai savoir s'il est possible de changer d'onglet d'un contrôle Sstab juste en positionnant le curseur de
la
souris sur l'onglet désiré. Dans l'affirmative, quel évènement ou propriété utiliser?
D'avance, merci pour votre aide.
Cindy
.
Je vais avoir du boulot pour ce WE, Merci infiniment pour
ton aide.
-----Message d'origine-----
Hello,
En employant un Tabstrip (Microsoft Windows Common
Controls) c'est possible:
Option Explicit
Private Const TCM_FIRST = &H1300 '//
Tab control messages
Private Const TCM_HITTEST = (TCM_FIRST + 13)
Private Const TCHT_NOWHERE = &H1 'Click
en dehors d'un tab
'Les constantes suivantes sont présentes à titre
informatif.
'Private Const TCHT_ONITEMICON = &H2 'Click
sur l'icône du tab
'Private Const TCHT_ONITEMLABEL = &H4 'click
sur le texte du
tab
'Private Const TCHT_ONITEM = (TCHT_ONITEMICON Or
TCHT_ONITEMLABEL) 'click
sur le texte et sur l'icône du tab
Private Type POINT
x As Long
y As Long
End Type
Private Type TCHITTESTINFO
pt As POINT
Flags As Long
End Type
Private Declare Function SendMessage Lib "user32"
Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As
Long, lParam As
Any) As Long
Function TabHitTest(hwnd As Long, x As Single, y As
Single) As Long
Dim HitTestInfo As TCHITTESTINFO, lngResult As Long
'Récupération des informations de position
HitTestInfo.pt.x = x
HitTestInfo.pt.y = y
'Envoie du HitTest
lngResult = SendMessage(hwnd, TCM_HITTEST, 0&,
HitTestInfo)
'Si on a cliqué sur un onglet
If HitTestInfo.Flags <> TCHT_NOWHERE Then
TabHitTest = lngResult 'On renvoie l'index de
l'onglet
Else
TabHitTest = -1 'Sinon, on renvoie -1
End If
End Function
Private Sub TabStrip1_MouseMove(Button As Integer, Shift
As Integer, x As
Single, y As Single)
Dim lngTab As Long
lngTab = TabHitTest(TabStrip1.hwnd, x /
Screen.TwipsPerPixelX, y /
Screen.TwipsPerPixelY)
If lngTab > -1 Then
TabStrip1.Tabs(lngTab + 1).Selected = True
End If
End Sub
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Cindy" <anonymous@discussions.microsoft.com> a écrit
dans le message
de news:346001c42923$99f32720$a001280a@phx.gbl
Bonjour à tous,
J'aimerai savoir s'il est possible de changer d'onglet
d'un contrôle Sstab juste en positionnant le curseur de
la
souris sur l'onglet désiré. Dans l'affirmative, quel
évènement ou propriété utiliser?