Problème avec Form_MouseMove [Résolu]

figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention - 6 nov. 2006 à 18:39 - Dernière réponse : figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention
- 7 nov. 2006 à 06:49
Bonjours, depuis quelques je cherche un problème à mon problème mais je ne trouve pas de réponse donc je me dirige vers vous avec l'espoir que mon problème soit résolut. Voici le problème :
Ma procédure Form_MouseMove ne répond plus, je n'ai pas aux programmes qu'il y a à l'intérieur et je ne c'est pas pourquoi donc si quelqu'un sais comment je peux la mettre "active" je lui en serait reconnaissant
Afficher la suite 

Votre réponse

36 réponses

Meilleure réponse
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 7 nov. 2006 à 00:16
3
Merci
Re,
si c'est le SStab1 qui prend trop de place
il suffit de le cacher au moment nécessaire

Private Sub Form_Resize()
    If frmServer.WindowState = vbMinimized Then
       frmServer.Hide
       With nid
           .cbSize = Len(nid)
           .hWnd = Me.hWnd
           .uId = vbNull
           .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
           .uCallBackMessage = WM_MOUSEMOVE
           .hIcon = Me.Icon
           .szTip = Me.Caption & vbNullChar
       End With
       Shell_NotifyIcon NIM_ADD, nid
       SSTab1.Visible = False
    Else
       Shell_NotifyIcon NIM_DELETE, nid
    End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim lmsg As Long
    lmsg = x
    Select Case lmsg
        Case WM_LBUTTONDBLCLK
            frmServer.WindowState = vbNormal
            frmServer.Show
            SSTab1.Visible = True
    End Select
End Sub

Daniel

Merci Gobillot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de Gobillot
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 6 nov. 2006 à 18:51
0
Merci
Relis toi.
Si tu te comprends, c'est bien, nous on ne comprends pas (ou alors c'est moi...)

Le problème dans ton texte c'est le mot, bah "problème", répété à maintes reprises, ce qui embrouille la lecture. De plus, je pense que tu dois employer des mots par d'autres !

Si tu pouvais être plus explicite, et n'hésite pas à fournir le code de la procédure qui ne fonctionne pas.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
cboulas 2641 Messages postés mercredi 2 juin 2004Date d'inscription 8 janvier 2014 Dernière intervention - 6 nov. 2006 à 18:53
0
Merci
Salut,

Je pense que cela doit venir de l'obtention du focus ce qui te permettrait de récupérer le MouseMove, malheureusement tu risque de ne pas obtenir plus de choses si tu n'a pas accès au code interne

Chris...
Web : Firstruner
Commenter la réponse de cboulas
figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention - 6 nov. 2006 à 18:55
0
Merci
Voilà le code

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim lmsg As Long
   
    lmsg = x
    Select Case lmsg
        Case WM_LBUTTONDBLCLK
            frmServer.WindowState = vbNormal
            frmServer.Show
    End Select
End Sub

Et même en mettant le débogage je n'ai pas accès cette partie, donc comment faire pour lire cette partie ??
Commenter la réponse de figo566
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 6 nov. 2006 à 19:02
0
Merci
D'apres la constante utilisée : WM_LBUTTONDBLCLK
Tu cherches à déterminer le double click du bouton.

Si c'est ça, je ne pense pas que tu puisses par cette évènement là.

Button : ben c'est quel bouton : gauche, milieu ou droit
Shift : c'est Ctrl, Maj ou Alt
x et y : coordonnée du pointeur.

Est cela que tu cherches à faire ?

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention - 6 nov. 2006 à 19:05
0
Merci
alors le bouton c'est le double-clic gauche

sinon ce que je cherches c'est comment entrer dans cettre procédure ?
Commenter la réponse de figo566
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 6 nov. 2006 à 19:11
0
Merci
Je ne comprends pas vraiment ce que tu appelles par "entrer dans cette procédure".
Tu ne peux pas modifier le code ?
Tu veux l"exécuter pas à pas ?
T'es bien avec Visual Basic 6.0 ?

Sinon, pour ton histoire de double click, regarde avec cet évènement :

Private Sub Form_DblClick()

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
cboulas 2641 Messages postés mercredi 2 juin 2004Date d'inscription 8 janvier 2014 Dernière intervention - 6 nov. 2006 à 19:11
0
Merci
Je ne suis pas sûr que en VB6 tu puisse passer outre cette procédure comme en .Net, mais sait-on jamais on a parfois des surprises

Chris...
Web : Firstruner
Commenter la réponse de cboulas
figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention - 6 nov. 2006 à 19:14
0
Merci
ce qui est bizarre c'est que j'ai d'autre programme utilisant le même code et sa marche parfaitement.

Sinon ce programme a pour but de faire revenir en fenetre normal une fenetre qui avait disparut et qui était dans la barre des tâches à côté de l'horloge. Je c'est que l'écriture du code est bon, mais ce que je demande c'est comment rentrer dans ce code, comment l'utiliser ??

J'espère que vous me comprenez
Commenter la réponse de figo566
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 6 nov. 2006 à 19:18
0
Merci
Si par entrer si entends 'comment faire pour que la procédure s'exécute', c'est simple, il faut que le code soit bon :

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim lmsg As Long 'OK
   
    lmsg = x 'OUPS, tu enregistres une coordonnée
?!
    Select Case lmsg
       Case WM_LBUTTONDBLCLK 'Cette constante, est-elle déclarée qque part ?
' si c'est NON, la condition ne se fera jamais (et si tenté, que
par le plus
' grand des hasards, le pointeur de la
souris "x" correspond à la valeur
' de la
constante déclarée
            frmServer.WindowState = vbNormal
            frmServer.Show
    End Select
End Sub

' *** Bref, tout simplement
:

Private Sub Form_DblClick()
            frmServer.WindowState = vbNormal
            frmServer.Show
            ' et
peut-être    Unload Me    ?
End Sub


--Mortalino--

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention - 6 nov. 2006 à 19:22
0
Merci
Non sa ne marche pas, la fenetre ne fait pas son apparition sur l'écran, l'icone est toujours dans la barre des tâches.

Et quand je disais entrer c'était bien le fait pour que la procédure s'exécute. (excuse moi pour la mauvaise compréhension que j'ai fait)

Concernant les variables, oui elles sont toutes bien déclarées
Commenter la réponse de figo566
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 6 nov. 2006 à 19:30
0
Merci
Je ne sais pas quoi te dire, j'ai mis 2 form dans un projet, depuis cet évènement (dblclick), je demande l'apparition d'une autre Form, et elle apparait bien.

Je ne met pas en doûte ton code, s'il a déjà fonctionné, peut-être, mais je ne comprends pas vraiment comment, qque chose m'échappe.
(confère commentaire que j'ai mis sur ton code) et en plus, lmsg est de type Long (sans décimales), alors qu'il doit récupérer la valeur de x, qui lui est de type Single(donc avec possibilité de décimales).

Voilà, c'est pour ça et les commentaires que là je sèche (+ essais)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
cboulas 2641 Messages postés mercredi 2 juin 2004Date d'inscription 8 janvier 2014 Dernière intervention - 6 nov. 2006 à 19:37
0
Merci
D'accord si tu est sûr d'être en VB6 je ne comprend pas, mais si tu est en VB.Net alors il te manque le handle sur l'objet ;)

Chris...
Web : Firstruner
Commenter la réponse de cboulas
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 6 nov. 2006 à 19:46
0
Merci
De plus, lmsg & WM_LBUTTONDBLCLK, ça sent l'API.
Je dirai même une api pour le systray.

Regarde sur ta barre des tâches, tu devrais avoir l'icone de ta form (systray = zone icones systèmes), il te suffira peut-être de double cliquer dessus pour qu'elle s'affiche

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 6 nov. 2006 à 20:05
0
Merci
essaye ça  (ou plus simplement le scalemode en pixels)

<strike>lmsg = x
</strike>lmsg  = ScaleX(x, Me.ScaleMode, vbPixels)

Daniel
Commenter la réponse de Gobillot
figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention - 6 nov. 2006 à 20:11
0
Merci
oui c'est ça, je double clic et rien ne se passe. La form ne s'exécute pas
Commenter la réponse de figo566
figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention - 6 nov. 2006 à 20:47
0
Merci
donc m'a question est : comment exécuter cette form ??
Commenter la réponse de figo566
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 6 nov. 2006 à 20:57
0
Merci
en corrigeant ton code:

Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim lmsg As Long
    If Me.ScaleMode = vbPixels Then
       lmsg = x
       Else
       lmsg = x \ Screen.TwipsPerPixelX
       End If
    Select Case lmsg
       Case WM_MOUSEMOVE:     
       Case WM_LBUTTONUP:    
       Case WM_LBUTTONUP:      
       Case WM_LBUTTONDBLCLK:
               frmServer.WindowState = vbNormal
               frmServer.Show  
       Case WM_RBUTTONDOWN:     
       Case WM_RBUTTONUP:        
       Case WM_RBUTTONDBLCLK:   
       End Select
End Sub

Daniel
Commenter la réponse de Gobillot
figo566 59 Messages postés mercredi 19 janvier 2005Date d'inscription 1 mai 2011 Dernière intervention - 6 nov. 2006 à 21:01
0
Merci
désolé mais rien ne se passe, j'ai toujours le même problème, si quelqu'un veut je peux lui filer mon programme et il testera chez lui
Commenter la réponse de figo566
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 6 nov. 2006 à 21:28
0
Merci
il doit avoir une erreur dans ton code
voila un exemple le plus simple possible et qui marche:

Option Explicit

Private Type IconeTray
    cbSize As Long
    hwnd As Long
    uID As Long
    uFlags As Long
    uCallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type

Dim IconeT As IconeTray

Private Const AJOUT = &H0
Private Const MODIF = &H1
Private Const SUPPRIME = &H2
Private Const MOUSEMOVE = &H200
Private Const MESSAGE = &H1
Private Const Icone = &H2
Private Const TIP = &H4

Private Const WM_LBUTTONDBLCLK = &H203

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As IconeTray) As Boolean

Private Sub Form_Load()
    IconeT.cbSize = Len(IconeT)
    IconeT.hwnd = Me.hwnd
    IconeT.uID = 1&
    IconeT.uFlags = Icone Or TIP Or MESSAGE
    IconeT.uCallbackMessage = MOUSEMOVE
    IconeT.hIcon = Me.Icon
    IconeT.szTip = App.Title & Chr$(0)
    Shell_NotifyIcon AJOUT, IconeT
    App.TaskVisible = False
    Me.ScaleMode = vbPixels
    Me.Hide
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Select Case X
       Case WM_LBUTTONDBLCLK:
            frmServer.WindowState = vbNormal
            frmServer.Show
       End Select
End Sub

Daniel
Commenter la réponse de Gobillot

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.