2010-03-04 6 views
0

J'ai une application et je veux y déposer un fichier. J'ai utilisé la classe COleDropTarget et en ai dérivé. Dans ma classe CMainFrame dans la méthode OnCreate, je l'enregistre. Ce retour est vrai.glisser-déposer problème

Lorsque OnDrop est appelé pDataObject->GetFileData(CF_TEXT); ou même pDataObject->IsDataAvailable(CF_TEXT) renvoie 0.

Quelqu'un peut-il me dire pourquoi?

Merci

Répondre

1

déposer un fichier n'a pas le type de données CF_TEXT mais CF_HDROP. Vous devez vérifier cela, puis extraire les chemins d'accès à la structure CF_HDROP.

Pour obtenir les chemins à partir de la structure CF_HDROP, utilisez l'API DragQueryFile.

+0

Merci pour votre réponse. J'ai fait ce que vous avez dit et IsDataAvailable retour 1. c'est bon. Mais comment puis-je extraire des données de CF_HDROP? (Parce que cela est défini comme 15 dans winuser.h et non une structure) et après ce fichier CFile * = pDataObject-> GetFileData (CF_HDROP); file-> m_strFileName a la valeur "" – user286207

+0

a édité ma réponse avec un indice sur DragQueryFile – Stefan