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 :

Comment ajouter un curseur personnel ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut Comment ajouter un curseur personnel ?
    Bonjour,

    Dans une pictureBox1 je tente sans succès de la lier à un curseur personnel fait avec imageEdit et déposé dans mes ressources, comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Using laPipette As System.IO.FileStream = System.IO.File.Open(My.Resources.CURpipette16c, System.IO.FileMode.Create)
     PictureBox1.Cursor = laPipette
    End Using
    My.Resources.CURpipette16c (REFUSE)
    = laPipette (REFUSE)

    Si tu voulais bien me faire un exemple qui marche (fonctionne) ?

    Merci, cordialement.

  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
    Ben tu essaies d'affecter un objet de type Stream à une propriété de type Cursor, ça peut pas marcher...

    A priori, si tu as ajouté le cursor comme ressource à ton application, l'objet My.Resources.CURpipette16c doit être de type Byte() (tableau d'octets). Pour créer le curseur à partir des données binaires, il faut utiliser un MemoryStream :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Using ms As New MemoryStream(My.Resources.CURpipette16c)
        PictureBox1.Cursor = New Cursor(ms)
    End Using
    Attention, tous les types de curseurs ne sont pas supportés... par exemple les curseurs animés (.ani) ne passent pas. Et il semblerait que le format de fichier des curseurs "normaux" (.cur) a changé, certains curseurs fournis avec Win7 ne passent pas non plus

  3. #3
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut
    Citation Envoyé par tomlev Voir le message
    My.Resources.CURpipette16c doit être de type Byte() (tableau d'octets). Pour créer le curseur à partir des données binaires, il faut utiliser un MemoryStream :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Using ms As New System.IO.MemoryStream(My.Resources.CURpipette16c)
        PictureBox1.Cursor = New Cursor(ms)
    End Using
    Cher ami merci !

    C'est exactement ce que je voulais, ça marche à merveille, j'ai juste rajouté "System.IO" omis (ou implicite ?)...

    Un petit problème subsiste, il reste en monochromie, mais bon, passons si on ne peut faire mieux ?

    Ce curseur c'est moi qui l'ai fait avec ImageEdit en type ".cur" 16 couleurs de VB6, alors donc un *.cur ce n'est pas une image mais une suite d'octets, une chaîne quoi, fallait le savoir...

    Ils sont ici mes curseurs, y en a un 2c et un 16c :


    http://cjoint.com/?inmILudG2X

    http://cjoint.com/?inmKO5l5a1


    Cordialement.

    Joe.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    une autre approche pour des curseurs en couleurs, fixes ou animés :

    http://social.msdn.microsoft.com/For...8-4262c0577679

  5. #5
    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
    Citation Envoyé par Ehjoe Voir le message
    alors donc un *.cur ce n'est pas une image mais une suite d'octets, une chaîne quoi, fallait le savoir...
    Ben c'est une image pour un programme qui sait l'interpréter

  6. #6
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Par défaut Répone à TomLev
    Citation Envoyé par tomlev Voir le message
    Ben c'est une image pour un programme qui sait l'interpréter
    Bonjour,

    Merci, toutefois j'ai posé la question sur le forum MS, et les écrits de la personne vers qui tu me renvoies, ben c'est lui qui m'a répondu, mais imparfaitement puisque c'est toi qui a trouvé, alors...

    Je ne suis pas assez bon en vbNet, je nage encore pas mal dans les brouillards de la syntaxe, a contrario de vb6, donc un bon dictionnaire ça a des exemples (le Robert), en programmation c'est pareil, un bon exemple qui fonctionne c'est la meilleure réponse, car ensuite je peux comprendre le principe, le mécanisme, etc... Tandis que si tu me fais chercher dans des truc que je ne connais même pas, j'ai peu de chance de trouver.

    De facto, si tu as sur ta lancée un exemple qui tourne, ok, sinon ça restera en monochrome car je ne comprends "la totalité" du texte sur lequel tu me renvoies.

    Cordialement et encore merci.

    Joe.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    la réponse de l'article est très claire et largement suffisante pour ce que tu as besoin, même mieux... elle permet de charger n'importe quel type de curseurs, y compris des animés.

    Là ce que tu ne comprend pas ne l'est pas plus en C#... c'est juste qu'il y a là usage de P/Invoke... cette technique permet d'invoquer des méthodes/fonctions hors code managé, hors dotnet et d'invoquer directement du code natif, et ici en l'occurrence des fonctions de l'api Windows.

    cette méthode va donc charger un curseur et retourner un pointeur sur ce curseur, interprété non plus par dotnet, mais directement par windows.
    de là tu affecte le résultat de cette méthode au constructeur de ton Curseur et le reste de ton code ne change pas.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/11/2006, 21h26
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  3. Réponses: 14
    Dernier message: 28/08/2003, 23h29
  4. Comment mettre le curseur d'un Memo sur le Canvas d'une Form ?
    Par julie20 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/08/2003, 13h24
  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