IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

clipcursor sous vb 2008


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 17
    Par défaut clipcursor sous vb 2008
    Bonjour, je débute pardonné moi!
    j'ai un petit prog qui tourne très bien en vb6,mais je voudrais le rajouter a mon projet actuel qui lui est sous vb 2008.Mais voila ça ne marche pas comme ça!!
    J'obtient trop d'erreurs lors de la mise a niveau,est comme je suis un peu beaucoup débutant, j'essay tant bien que mal des corrections mais ça marche pas! quelqu'un peut-il m'aider a traduire ça en code pour vb 2008?
    Ce code a pour fonction de limiter les déplacements de la souris a mon form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     Option Explicit
     
          Private Type RECT
             left As Integer
             top As Integer
             right As Integer
             bottom As Integer
          End Type
     
          Private Type POINT
             x As Long
             y As Long
          End Type
     
          Private Declare Sub ClipCursor Lib "user32" (lpRect As Any)
          Private Declare Sub GetClientRect Lib "user32" _
                                                (ByVal hWnd As Long, _
                                                 lpRect As RECT)
          Private Declare Sub ClientToScreen Lib "user32" _
                                                (ByVal hWnd As Long, _
                                                 lpPoint As POINT)
          Private Declare Sub OffsetRect Lib "user32" (lpRect As RECT, _
                                              ByVal x As Long, _
                                              ByVal y As Long)
     
          Private Sub Form_Load()
             Command1.Caption = "Limit Cursor Movement"
             Command2.Caption = "Release Limit"
          End Sub
     
          Private Sub Command1_Click()
          'Limits the Cursor movement to within the form.
             Dim client As RECT
             Dim upperleft As POINT
     
             GetClientRect Me.hWnd, client
             upperleft.x = client.left
             upperleft.y = client.top
             ClientToScreen Me.hWnd, upperleft
             OffsetRect client, upperleft.x, upperleft.y
             ClipCursor client
          End Sub
     
          Private Sub Command2_Click()
          'Releases the cursor limits
             ClipCursor ByVal 0&
          End Sub
     
          Private Sub Form_Unload(Cancel As Integer)
          'Releases the cursor limits
             ClipCursor ByVal 0&
          End Sub

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    • Type n'existe plus en VB.NET, on utilise Structure à la place.
    • Je suppose que Command1 et Command2 sont des boutons ? L'équivalent Windows Forms de la propriété Caption est Text
    • L'évènement Unload n'existe plus, il est remplacé par FormClosed
    • Toutes les API Win32 pour lesquelles tu fais des Declare sont disponibles directement en .NET, donc tu n'as plus besoin de les déclarer (pas la peine non plus de déclarer les structures associées) :
      • GetClientRect => propriété ClientRectangle
      • ClipCursor => propriété statique (Shared) Cursor.Clip
      • OffsetRect => méthode Rectangle.Offset
      • ClientToScreen => méthode PointToScreen


    Mais de toutes façons, il ne faut plus raisonner par rapport aux API Win32, le .NET framework propose plein de méthodes et de propriétés qui simplifient le code. Au final ton code devient quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'Limits the Cursor movement to within the form.
            Cursor.Clip = Me.RectangleToScreen(Me.ClientRectangle)
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            'Releases the cursor limits
            Cursor.Clip = Rectangle.Empty
        End Sub
     
        Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
            Cursor.Clip = Rectangle.Empty
        End Sub
    Pour les boutons, le plus simple est bien sûr de les créer dans le Designer (et donc plus besoin d'initialiser leur texte dans le Form_Load)

Discussions similaires

  1. Fichier .rar sous Mandriva 2008
    Par amvs_ dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 04/03/2008, 21h19
  2. Xemacs et OCaml sous Mandriva 2008
    Par amvs_ dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 03/03/2008, 13h45
  3. Eclipse sous Mandriva 2008
    Par amvs_ dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 03/03/2008, 11h27
  4. Problèmes avec les webservices sous VS 2008 ( CTP )
    Par Amokrane dans le forum Framework .NET
    Réponses: 3
    Dernier message: 25/12/2007, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo