大意如题,我该如何实现呢?

解决方案 »

  1.   

    MFC程序的话在
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {

    DragAcceptFiles();
    }
    那么在DOC的OnOpenDocument就会传入文档的路径,你就可以在这里操作文件了,当然具体的读取文件操作还是要自己来做的
    BOOL CMyDoc::OnOpenDocument(LPCTSTR lpszPathName)
    {
    if (!CDocument::OnOpenDocument(lpszPathName))
    return FALSE; MessageBox(NULL,lpszPathName,lpszPathName,MB_OK);
    // TODO:  在此添加您专用的创建代码 return TRUE;
    }
      

  2.   

    如果你是将目标拖动到你程序的图标上,那你程序启动的时候有一个命令行指示被拖动目标文件名;如果你是将目标拖动到你程序的窗口上,那你程序窗口会收到一个 WM_DROPFILES 消息,前提是你的窗口先要调用 DragAcceptFiles 设置窗口接收开关.
      

  3.   

    关于Drag and Drop参考以下文章:扩展COleDropTarget类来支持任意窗口拖放
    http://www.vckbase.com/document/viewdoc/?id=258
      

  4.   

    首先在APP文件中的InitInstance函数中加入:
    BOOL CXXXXXApp::InitInstance()
    {
        if ( _T('\0') != m_lpCmdLine[0])
        {
            // 获取被拖放的文件名,m_csDroppedFile是用户加入的这个类的成员变量。m_lpCmdLine是基类CWinApp中的变量
            m_csDroppedFile = m_lpCmdLine;
        }
        ....
        ...
    }然后在OnInitDialog函数中获取APP类中的成员变量m_csDroppedFile的值并打开这个文件即可。
      

  5.   

    另外在OnInitDialog函数中需要加入DragAcceptFiles()来允许程序接受被拖放的文件。 
      

  6.   

    然后通过DragQueryFile提取拖放文件名称。怎么打开时你程序的事了。