Перетащите текст - Что мне не хватает? - PullRequest
4 голосов
/ 13 марта 2010

Я пытаюсь добавить текст перетаскивания в мое приложение Doc-View. Я добавил переменную COleDropTarget в класс представления, зарегистрировал ее в OnCreate (). Я добавил OnDragEnter (), OnDragOver (), OnDragLeave () и OnDrop () в этот класс в качестве виртуальных переопределений, но ни один из них никогда не вызывался. Ранее я добавил m_pMainWnd-> DragAcceptFiles (TRUE); в мой класс приложений. Я пытался закомментировать это утверждение, но безрезультатно.

Я пытался использовать Spy ++, чтобы видеть, куда отправляются сообщения, когда я выполняю перетаскивание, но он вообще ничего не записывает, пока я перетаскиваю текст в приложении.

Что мне нужно? Или что еще можно попробовать, чтобы сузить проблему?

ТИА

Harvey

1 Ответ

1 голос
/ 13 марта 2010

Решено:

Используя F1 для получения синтаксиса OnDrop и других, MSDN дал мне:

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

Но правильная виртуальная функция не имеет первого параметра и должна быть:

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

То же самое с остальными. Поэтому я никогда не переопределял функции по умолчанию.

...