截获CHtmlView中的DragDrop事件并处理

CHtmlView类中嵌入了一个WebBrower控件,当我们向其中拖入一个文件时,WebBrower控件会用默认处理方式来处理此文件,如果我们想自己处理Drag&Drop事件,应该怎么办呢?
1、在ChtmlView类的OnInitialUpdate中加入三行语句。

void  CHtmlViewDropView::OnInitialUpdate()
{
    CHtmlView::OnInitialUpdate();

    
// TODO: This code navigates to a popular spot on the web.
   
    
/////////////////////////////////////////////////////////////
    // 此处加下以下三行
    SetRegisterAsBrowser(FALSE);
    SetRegisterAsDropTarget(FALSE);
    DragAcceptFiles();
    
/////////////////////////////////////////////////////////////

    
//  change the code to go where you'd like.
    Navigate2(_T("http://www.microsoft.com/visualc/"),NULL,NULL);
}
 


2、处理DropFiles事件
void  CHtmlViewDropView::OnDropFiles(HDROP hDropInfo)
{
    
// TODO: This code navigates to a popular spot on the web.
    //////////////////////////////////////////////////////////////////////////
    // 加入下面这几行,以取得Drag&Drop来的Files
    UINT  uNumFiles;
    TCHAR szNextFile [MAX_PATH];
    uNumFiles 
= DragQueryFile ( hDropInfo, -1, NULL, 0 );
    
for ( UINT uFile = 0; uFile < uNumFiles; uFile++ )
    
{
        
if ( DragQueryFile ( hDropInfo, uFile, szNextFile, MAX_PATH ) > 0 )
        
{
            ::MessageBox(NULL, szNextFile, 
"File", MB_OK);
        }

    }

    DragFinish ( hDropInfo );
   
    
// 这个注释了
    
//CHtmlView::OnDropFiles(hDropInfo);
}

你可能感兴趣的:(File,null,Path)