2010-03-12 3 views
4

J'essaie d'ajouter un texte glisser-déposer à mon application Doc-View. J'ai ajouté la variable COleDropTarget à la classe view, enregistrée dans OnCreate(). J'ai ajouté OnDragEnter(), OnDragOver(), OnDragLeave() et OnDrop() à cette classe comme remplacements virtuels, mais aucun d'eux n'est jamais appelé. J'avais précédemment ajouté m_pMainWnd-> DragAcceptFiles (TRUE); à ma classe App. J'ai essayé de commenter cette déclaration, mais pas d'effet.Glisser et déposer du texte - Qu'est-ce qui me manque?

J'ai essayé d'utiliser Spy ++ pour voir où vont les messages pendant que je fais un glisser, mais il n'enregistre rien du tout pendant que je fais glisser le texte dans l'application.

De quoi ai-je besoin? Ou quoi d'autre puis-je essayer, pour affiner le problème?

TIA,

Harvey

Répondre

1

Résolu:

En utilisant F1 pour obtenir la syntaxe pour OnDrop et les autres, MSDN m'a donné:

virtual BOOL OnDrop(
    CWnd* pWnd, 
    COleDataObject* pDataObject, 
    DROPEFFECT dropEffect, 
    CPoint point 
); 

Mais la fonction virtuelle correcte n'a pas le premier paramètre et devrait être:

virtual BOOL OnDrop(
    COleDataObject* pDataObject, 
    DROPEFFECT dropEffect, 
    CPoint point 
); 

Idem avec les autres. Donc, je ne remplaçais jamais les fonctions par défaut.