您的位置:C++老鼠窝编程 专题讨论 Drag&Drop托拽 正文
 添加时间:2008-07-23 原文发表时间:2008-07-23 人气:2


我有一个对话框程序,想让它实现拖放。但无论用OnDrag或OnDrop等等,所有的的消息都发送给CView类而不是CDialog类,为什么?

你应该使用COleDropTarget类,试一下这些:

class CMyOleDropTarget: public COleDropTarget
{
protected:
    virtual DROPEFFECT OnDragEnter( CWnd* pWnd, COleDataObject*
pDataObject, DWORD dwKeyState, CPoint point )
    {
        TRACE( "DRAG Enter\n" );
        return DROPEFFECT_MOVE;
    };

    virtual DROPEFFECT OnDragOver( CWnd* pWnd, COleDataObject*
pDataObject, DWORD dwKeyState, CPoint point )
    {
        TRACE( "DRAG Over\n" );
        return DROPEFFECT_MOVE;
    };
};

CMyOleDropTarget DropTarget;

BOOL CDlgDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    DropTarget.Register( this );

不要忘记调用AfxOleInit()
BOOL CDlgApp::InitInstance()
{
    AfxEnableControlContainer();
    AfxOleInit();

}
本页地址
相关文章

利用MFC实现对象拖放
使用DragSourceHelper 在MFC实现托拽
怎样在你的程序和IE浏览器之间实现托拽或托
怎样在你的程序和IE浏览器之间实现托拽或托
怎样在你的程序和IE浏览器之间实现托拽或托
怎样在你的程序和IE浏览器之间实现托拽或托
怎样在你的程序和IE浏览器之间实现托拽或托
在VC/MFC中怎样实现托拽功能(4)
在VC/MFC中怎样实现托拽功能(3)
在VC/MFC中怎样实现托拽功能(2)

相关评论


本文章所属分类:首页 专题讨论 Drag&Drop托拽