class CMyDropTarget : public COleDropTarget
{
virtual DROPEFFECT OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
virtual void OnDragLeave(CWnd* pWnd);
virtual DROPEFFECT OnDragOver(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
virtual BOOL OnDrop(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point);
}
class CMyPlayer : public CStatic
{
.... CMyDropTarget dropTarget;
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};int CMyPlayer::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CStatic::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
DragAcceptFiles(TRUE);
BOOL success = dropTarget.Register(this);
return 0;
}class CDlgAVMediaPlayer : public CDialog
{
CMyPlayer m_wndPlayer;
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};int CDlgAVMediaPlayer::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
m_wndPlayer.Create(_T("Player Window"), WS_CHILD|WS_VISIBLE|SS_ENHMETAFILE,rctPlayer,this,IDC_PLAYER_WND);
return 0;
}现在的问题是当我拖动对象到控件上时,OnDragEnter,OnDragOver,OnDrop这些函数都没有响应,这是为什么?
{
virtual DROPEFFECT OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
virtual void OnDragLeave(CWnd* pWnd);
virtual DROPEFFECT OnDragOver(CWnd* pWnd, COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
virtual BOOL OnDrop(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point);
}
class CMyPlayer : public CStatic
{
.... CMyDropTarget dropTarget;
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};int CMyPlayer::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CStatic::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
DragAcceptFiles(TRUE);
BOOL success = dropTarget.Register(this);
return 0;
}class CDlgAVMediaPlayer : public CDialog
{
CMyPlayer m_wndPlayer;
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};int CDlgAVMediaPlayer::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
m_wndPlayer.Create(_T("Player Window"), WS_CHILD|WS_VISIBLE|SS_ENHMETAFILE,rctPlayer,this,IDC_PLAYER_WND);
return 0;
}现在的问题是当我拖动对象到控件上时,OnDragEnter,OnDragOver,OnDrop这些函数都没有响应,这是为什么?
解决方案 »
- CHtmlView::OnDocumentComplete()为什么会被调用多次?
- IE浏览器中的2个ActiveX控件如何交互?
- 请教进程问题
- 如何用API控制声音的大小,及左右声道呢?给个例子,给100分
- 如果学用vc来写驱动之类的(控制硬件方面的),该学些什么?(及时给分)
- 在MFC中要得到一个豪秒级的时间应该用什么?
- 如何使对话框在初始化时就处于最大化
- 请教高手:如何释放ConvertBSTRToStrin分配的内存???用::SysFreeString释放好像不行
- Visual Studio 6.0(VC++)中文注释乱码问题
- 问题出在哪?
- project->Add to project->Components and Controls Gallery里边只有mscreate.dir?
- IE8在保护模式下和其它应用程序的进程间共享内存问题
如果是自己设定的来源,应当有 COleDataSource 启动 DoDragDrop
是后者,有COleDataSource 启动 DoDragDrop的过程,只不过没贴!