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 6 et antérieur Discussion :

Modifier le curseur de la souris


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Modifier le curseur de la souris
    Bonjour,


    J'aimerais savoir s'il existe un code VB SIMPLE me permettant de remplacer le curseur par défaut de la souris par un curseur que j'ai créé. Je voudrais qu'à l'événement Form_Load, le curseur change, puis qu'il redevienne normal à la fermeture de l'application. J'ai trouvé des tas de codes compliqués sur internet, j'en ai essayé quelques uns sans succès. Je précise : je ne souhaite pas que mon curseur change en passant sur un label ou autre, mais qu'il reste pendant toute mon application et ce, quelle que soit la Form chargée...

    Est-ce possible (commençons par les questions de base) ?


    Serana

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Il faut charger le curseur au form_load de chaque feuille de ton projet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Load()
      Me.MouseIcon = LoadPicture("C:\Program Files\Microsoft Visual Studio\Common\Graphics\Cursors\4WAY01.CUR")
      Me.MousePointer = 99
    End Sub

  3. #3
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 091
    Points : 16 643
    Points
    16 643
    Par défaut
    OUI
    Pour chaque Form
    MousePointer (= 99)
    MouseIcon = MonIconAmoi.ICO
    Les composants posés sur ces Forms auront le curseur du Form ou il sont posés, a moins que tu ne changes de MousePointer pour ces composants, en design ou au cours du run.
    L'icon curseur ne sera pour autant que pour ces Forms, si tu passes sur une fenêtre d'un programme externe, l'icon sera celui de cette fenêtre.

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 416
    Points : 5 806
    Points
    5 806
    Par défaut
    Ou encore une solution qui ne renvoie d'erreur que si le chemin est invalide:
    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
    Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
    Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
    Private Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Long) As Long
    Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
     
    Private Const GCW_HCURSOR = (-12)
    Private Const IDC_WAIT = 32514&
     
    Dim hSysCurs As Long, hCurs1 As Long, hCurs2 As Long
    ' On doit ajouter sur l'objet Form1 un CommandBbutton appelé par défaut Command1
    Private Sub Form_Load()
        ' Charge un curseur par défaut
        hCurs1 = LoadCursor(ByVal 0&, IDC_WAIT)
        '  Charge un curseur à partir d'un fichier
        hCurs2 = LoadCursorFromFile("F:\Windows\Cursors\pen_m.cur")
        ' Curseur pour Form
        hSysCurs = SetClassLong(Me.hwnd, GCW_HCURSOR, hCurs1)
        ' Curseur pour le bouton Command1
        hSysCurs = SetClassLong(Command1.hwnd, GCW_HCURSOR, hCurs2)
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
        ' Restauration du curseur par défaut
        SetClassLong Me.hwnd, GCW_HCURSOR, hSysCurs
        '  Suppression des handles créés : Nettoyage
        DestroyCursor hCurs1
        DestroyCursor hCurs2
    End Sub
    Pour n'avoir qu'un seul curseur pendant toute l'exécution, il suffit d'adapter le code pour les différents objets Forms s'il y en a plusieurs.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup pour les réponses !


    Serana

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Euh... j'ai essayé, mais apparemment ça ne marche pas. VB me détecte une erreur 481, ce qui correspond à Image incorrecte. J'ai vu que cela pouvait provenir du type de fichier utilisé, mais le mien est un .cur, ça devrait fonctionner. De plus j'ai trouvé le même problème dans des forums, avec des jpg, des bmp, etc. mais je n'ai pas réussi à trouver de solutions.

    Est-ce quelqu'un aurait une idée ?


    Serana

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    si tu veux que le curseur change uniquement sur ton application et pas sur Windows, pourquoi tu ne mets pas simplement :
    sur le load de ta forme principale , ou sur le load de chacune de tes formes quelque chose du genre :

    Form1.MouseIcon = LoadPicture("c:\MonCurseur.ico")
    Form2.MouseIcon = LoadPicture("c:\MonCurseur.ico")
    Form3.MouseIcon = LoadPicture("c:\MonCurseur.ico")

    ...
    Ceci Biensure après avoir mis la propriété des curseurs de tes formes à :

    99-Custom

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Mais c'est exactement ce que je fais ^^'...

    Le problème c'est qu'il ne reconnaît pas mon curseur.cur comme Image "correcte". Alors que dans la MSDN c'est marqué que ce type d'extension est bien pris en compte par VB6. Il me sort son Erreur 481 et j'ai beau essayer avec un jpg ou autre, ça ne fonctionne pas.

    Je désespère... (soit pour VB6 soit pour moi)


    Serana

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    comment t'as fais pour créér ton curseur.cur ?
    Si tu as une image .jpeg et tu modifies uniquement l'extension, ça ne marchera pas , il te faut un programme (y en a un tas gratuit sur le net) qui crée des .cur !

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Je me suis servie de aniFX, mon curseur marche très bien quand je change les paramètres depuis le panneau de configuration, mais je n'arrive pas à y accéder avec VB6. J'ai essayé avec un .ico, un .jpg, ça marche pas non plus...

  11. #11
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 091
    Points : 16 643
    Points
    16 643
    Par défaut
    Peux tu nous mettre exactement le code que tu as mis dans le Form_Load et aussi le fichier image que tu charges et qui pose probléme.

  12. #12
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 416
    Points : 5 806
    Points
    5 806
    Par défaut
    Erreur 481 : Image incorrecte.
    Il peut s'agir de la résolution(ou nombre de couleurs) utilisée. Si c'est 256 ou plus, tu peux avoir ce message d'erreur. Essaie de créer un fichier .cur avec ImagEdit.exe(de Microsoft).
    Je t'invite par la même occasion à lire cet article

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Exact, l_autodidacte.

    J'ai fait un test avec un curseur en 256 couleurs, ça marche, il s'affiche bien. C'était donc ça le problème. Par contre, du coup, il est en noir et blanc, et les codes pour afficher des curseurs en couleurs ont l'air d'être trèèèès compliqués. Et je ne veux pas avoir à rajouter 50 lignes sur chacune de mes forms...

    Et un grand merci aussi pour l'article, c'est exactement ce qu'il me fallait. Je vais essayer de trouver ImagEdit !

    En tout cas merci pour votre aide !

    Serana

  14. #14
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 416
    Points : 5 806
    Points
    5 806
    Par défaut
    Tu peux télécharger ImagEdit si tu ne l'as pas trouvé sur ton CD d'installation VB5,VB6 ou VS6.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup, je l'ai trouvé, mais je n'ai pas l'éditeur de ressources. En fait je n'ai qu'un seul complément. Mais sur mon PC portable, j'ai tout ce qu'il faut.

    Encore merci.


    Serana

  16. #16
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 416
    Points : 5 806
    Points
    5 806
    Par défaut
    mais je n'ai pas l'éditeur de ressources. En fait je n'ai qu'un seul complément.
    Un peu bizarre mais si tu veux l'avoir, réinstalle VB6(Visual Studio 6) selon ta version et regarde bien dans les options d'installation si le programme te propose d'installer l'éditeur de ressources ou non. Normalement, son installation est automatique.
    Tu peux également créer une entrée dans la BD en ajoutant ce qui suit au registre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Windows Registry Editor Version 5.00
    [HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Microsoft Visual Basic AddIns\VB 6 Resource Editor]
    "ColumnSizes"=""
    "STWidth"="7095"
    "STHeight"="4380"
    "DisplayOnConnect"="Faux"
    Cela pourrait le faire apparaître dans les compléments.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2009, 11h16
  2. Probleme+modifier le curseur de la souris
    Par nonna dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 11/04/2008, 09h27
  3. reposition du curseur de la souris!
    Par bakonu dans le forum Windows
    Réponses: 2
    Dernier message: 09/06/2004, 18h17
  4. [TP][FAQ]Curseur de la souris
    Par nounetmasque dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 29/06/2003, 23h22
  5. Comment masquer le curseur de la souris ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/06/2002, 18h54

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