Glisser déposer

Glisser déposer - C++ - Programmation

Marsh Posté le 28-04-2005 à 11:42:09    

Bonjour tout le monde, voila je voudrais pouvoir faire dans Borland C++ builder 5, un glisser deposer. je mexplique, enfaite je voudrais que dans la fenetre de mon programme on puisse y glisser un fichier (par glisser deposer avec la souris)et que le programme le reconnaisse et sache quel est ce fichier, son nom, son arboresence pour que je puisse louvrir.
 
 
Voila si quelquun n'a pas compris, je lui réepliquerais.

Reply

Marsh Posté le 28-04-2005 à 11:42:09   

Reply

Marsh Posté le 28-04-2005 à 12:13:50    

il faut "catcher" le Message windows WM_DROPFILES correspondant au glisser-deposer.
apres consulte la msdn pour l'utiliser

Reply

Marsh Posté le 28-04-2005 à 13:20:20    

ca ve dire quoi "catcher" ????

Reply

Marsh Posté le 28-04-2005 à 13:25:34    

Attraper, littéralement.
 
Tu dois intercepter le message.

Reply

Marsh Posté le 28-04-2005 à 14:38:20    

et comment je pourrais faire ça, y a pas une fonction qui permet de faire ca sous borland ?

Reply

Marsh Posté le 28-04-2005 à 15:52:25    

Tu utilises la VCL je suppose. C'est elle qui s'occupe de "catcher" les messages. Il doit y avoir un évènement associé à ça...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 28-04-2005 à 16:42:14    

oui je lai vu mais je croyer que qqun connaissait une  fonction qui permettait de faire ce que je demande.  
 
La jai ete voir sur www.msdn.com et jai trouver DragAccepteFile un truc de se genre mais ca ne fait rien.  
 
Merci de m'avoir aider

Reply

Marsh Posté le 29-04-2005 à 16:29:21    

Plus personne n'a des idées pour mon problemes ?

Reply

Marsh Posté le 29-04-2005 à 18:42:48    

poule55 a écrit :

oui je lai vu mais je croyer que qqun connaissait une  fonction qui permettait de faire ce que je demande.  
 
La jai ete voir sur www.msdn.com et jai trouver DragAccepteFile un truc de se genre mais ca ne fait rien.  
 
Merci de m'avoir aider


 
 
le m de msdn etant pour microsoft et le V de VCL etant celui de Borland, jpense helloworld de suggere de regarder plutot la doc de cette derniere [:god] (si evidemment tu utilises la VCL, et si non, bin fodrait que tu nous dises quoi)


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 02-05-2005 à 11:04:57    

Ahhh d'accord, je vais regarder ça chrisbk ... merci je vous dis quoi

Reply

Marsh Posté le 02-05-2005 à 11:04:57   

Reply

Marsh Posté le 02-05-2005 à 14:19:44    

J'ai découvert récemmetn que Borland avait son bdn.
http://bdn.borland.com/


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 11-05-2005 à 10:54:58    

je n'ai rien trouvé dans le bdn :( on dirait qu'il n'y a pas de fonction toute faite pour réaliser ce genre de fonction ... ca me parait peu probable quand même pas vous ? ou alors c'est moi qui ne sais pas chercher

Reply

Marsh Posté le 11-05-2005 à 17:37:00    

ce que tu veux faire n'a rien a voir avec borland ou visual,  
c'est de la programmation windows tout simplement, tout les  
IDE c++ tournant sous windows permettent donc d'utiliser les fonctions d'api windows!
 
donc pour faire ca 3 etapes
1/ dire a ton appli qu'elle accepte le glisser/deposer
2/ Attraper le message WM_DROPFILES ca c'est windows qui     l'envoit a ton application lorsque tu glisses un fichier dedans!
3/ coder les actions a effectuer lors de la recption du fichier
 
http://bcbjournal.com/articles/vol [...] _drag!.htm
ca devrait beaucoup t'aider!

Reply

Marsh Posté le 11-05-2005 à 18:49:52    

poule55 a écrit :

je n'ai rien trouvé dans le bdn :( on dirait qu'il n'y a pas de fonction toute faite pour réaliser ce genre de fonction ... ca me parait peu probable quand même pas vous ? ou alors c'est moi qui ne sais pas chercher


on t'a dit qu'il fallait intercepter WM_DROPFILES dans la procédure de fenêtre de ton programme. tu dois donc créer un handler dans ta TForm qui réagira à ce message. y'a pas 36 façons de faire, c'est comme ça et point barre.
 
dans le .h de ta classe correspondante à la Form qui recevra le drag'n'drop :

Code :
  1. class TForm1 : public TForm
  2. {
  3. private:
  4.    void virtual __fastcall WMDropFiles(TWMDropFiles &message);
  5. BEGIN_MESSAGE_MAP
  6.         MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WMDropFiles);
  7. END_MESSAGE_MAP (TForm);


 
dans le fichier source de ta classe :

Code :
  1. void __fastcall TForm1::WMDropFiles (TWMDropFiles &message)
  2. {
  3.    // ton traitement en cas de drag'n'drop
  4. }


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 12-05-2005 à 09:34:07    

connaissais pas le message WM_DROPFILES, moi j'ai utilisé  
l'interface COM IDropTarget.
 
http://msdn.microsoft.com/library/ [...] 3c65c8.asp

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed