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

Windows Discussion :

Glisser-déplacer: Comment le "perçoit" windows


Sujet :

Windows

  1. #1
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut Glisser-déplacer: Comment le "perçoit" windows
    Bonjour

    Je développe actuellement une aplication windows en VB6 (oui, j'ai aussi posté sur le forum aproprié ICI mais je n'ai pas eu de réponses.) qui doit pouvoir controler la souris entre-autre. jusque-ici, je n'ai pas eu de problème car je disposait des fonctions de bases. Cependant, j'essaye depuis récement d'émuler un Glisser déplacer et là , je bloque: je dispose des fonction up et down des trois boutons de la souris ainsi que d'une fonction qui permet de placer le curseur à l'endroit voulu.

    malheureusement, en essayant un down pui un up, il ne peut rien faire (puisque la souris n'est pas déplacée) et ave la fonction de placement du curseur, il déplace bien la souris et fait bien des mouse up et down mais n'a pas de continuité ni d'action (dans le genre selection de groupe)

    Je voulais donc savoir comment fonctionnais le glisser-déplacer du point de vue de windows, c'est à dire, quel type d'instruction (faites comme moi, traduisez svp, pas de code d'impulsion ) elle recevait ou interprétais lors de cette action.

    d'avance merci
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  2. #2
    Membre habitué Avatar de Crisanar
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 162
    Points : 137
    Points
    137
    Par défaut
    Il existe peut-être une solution "toute faite" en VB mais je ne la connais pas.
    Puisque tu postes dans le développement Windows, voici qqes APIs qui pourront t'être utiles :
    DragAcceptFiles : Permet de définir un controle (ou une fenetre) comme étant un 'receveur' de fichiers. Il recevra le message WM_DROPFILES si on drag n drop des fichiers sur lui.
    DragQueryFile : Pour récupérer le(s) fichier(s) qui ont été glissés
    DragFinish : Terminer le drag n drop.

    Je ne sais pas comment faire pour intercepter des messages en VB, mais tu devrais trouver celà assez facilement (subclassing très certainement).

    Sinon voici un petit exemple en ASM de ce à quoi ça ressemble
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .elseif eax == WM_DROPFILES		
    		
    		;----- Ne récupérer que le premier fichier déposé -----
    		invoke DragQueryFile,wParam,0,ADDR szFilePath,SIZEOF szFilePath
    		
    		;----- Drag & Drop terminé -----
    		invoke DragFinish,wParam

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Le drag&drop est géré via OLE. Voir IDropSource, DoDragDrop,...
    http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_programming/transferring/transfer.asp
    http://msdn.microsoft.com/library/en-us/com/html/bba0ddf8-fcf9-4827-bf85-7ac597d33b4b.asp

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