如题,请给个例子,因为我司无法上外网,除了CSDN啊,博客园等,如果给链接最好给个CSDN的,十分感谢

解决方案 »

  1.   

    简单的就是创建一个编辑框,指定父窗口为listctrl,需要的时候就显示在特定位置上,不需要用时就隐藏起来
      

  2.   

    #include "stdafx.h"
    #include "FtpLoad.h"
    CFtpLoad::CFtpLoad()
    {
    m_pInetSession = new   CInternetSession;
        m_bConnected = FALSE;
    }
    CFtpLoad::~CFtpLoad()
    {
        delete m_pInetSession;
    }
    BOOL CFtpLoad::FtpConn()
    {
        try
        {
            m_pFtpConnection = m_pInetSession->GetFtpConnection(m_ConnParam.m_csIp,
                m_ConnParam.m_csUser,m_ConnParam.m_csPwsd ,m_ConnParam.m_Port,true);  
            if(!m_pFtpConnection)
            {
                m_bConnected = FALSE;
                TRACE("GetFtpConnection   FAILED!\n");  
                return FALSE;
            } 
        }
        catch (...)
        {
            m_bConnected = FALSE;
            TRACE("GetFtpConnection   FAILED!\n");  
            return FALSE;
        }    m_bConnected = TRUE;    return TRUE;
    }
    BOOL CFtpLoad::FtpUpLoadExcute(CString csLocalFile,CString csRemoteFile)
    {
        BOOL ret;
        if (m_bConnected == FALSE)
        {
            ret = FtpConn();
        }
    if(!ret)
    {
    return FALSE;
    }   //csRemoteFile = csRemoteFile+csLocalFile.Right(csLocalFile.ReverseFind('/')) ;
     ret = m_pFtpConnection->PutFile(csLocalFile,m_ConnParam.m_csRemotePath + "/" + csRemoteFile);
    if(!ret)
    {
            ret = FtpConn();
            if (ret == FALSE)
            {
                return FALSE;
            }        ret = m_pFtpConnection->PutFile(csLocalFile,m_ConnParam.m_csRemotePath + "/" + csRemoteFile); return FALSE;
    }
    else
    {  
    //AfxMessageBox("上传成功");
    return TRUE;
    }

    }
    BOOL CFtpLoad::FtpDownLoadExcute(CString csLocalFile,CString csRemoteFile)
    {
        BOOL ret;
        if (m_bConnected == FALSE)
        {
            ret = FtpConn();        if (ret == FALSE)
            {
                return FALSE;
            }
        }
    if(!m_pFtpConnection)
    {
    return FALSE;
    } ret = m_pFtpConnection->GetFile(m_ConnParam.m_csRemotePath + "/" + csRemoteFile,csLocalFile,FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,1);
         
    if(!ret)
    {
             ret = FtpConn();
             if (ret == FALSE)
             {
                 return FALSE;
             }
             m_pFtpConnection->GetFile(m_ConnParam.m_csRemotePath + "/" + csRemoteFile,csLocalFile,FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,1
      

  3.   

    ); return FALSE; }
    else
    {
    //AfxMessageBox("下载成功");
    //delete ConnInfom;
    return TRUE;
        }
    }
    void CFtpLoad::ParseRecvMsg(CString RecvMsg )
    {
        //解析FTP上传所需参数
        CString csRecvMsg("");
        csRecvMsg = RecvMsg;
        int ipos =csRecvMsg.Find("ftp:/");
        ipos = csRecvMsg.GetLength() -ipos;
        csRecvMsg = csRecvMsg.Right(ipos - 6);    CString csUserName("");
        csUserName = csRecvMsg.Left(csRecvMsg.Find(':'));        //用户名    ipos = csRecvMsg.Find(":");
        ipos = csRecvMsg.GetLength() -ipos;
        csRecvMsg = csRecvMsg.Right(ipos-1);  
        CString csPassWord("");                                  //密码
        csPassWord = csRecvMsg.Left(csRecvMsg.Find('@'));    //csRecvMsg = csRecvMsg.Right(csRecvMsg.Find('@'));    ipos = csRecvMsg.Find("@");
        ipos = csRecvMsg.GetLength() -ipos;
        csRecvMsg = csRecvMsg.Right(ipos-1);
        CString csIp("");                                          //IP
        csIp = csRecvMsg.Left(csRecvMsg.Find(':'));    ipos = csRecvMsg.Find(":");
        ipos = csRecvMsg.GetLength() -ipos;
        csRecvMsg = csRecvMsg.Right(ipos-1);    CString csPort("");
        csPort =csRecvMsg.Left(csRecvMsg.Find("/"));                //Port
        char * szPort = csPort.GetBuffer();    INTERNET_PORT iPort;
        iPort=(INTERNET_PORT) atoi(szPort);    ipos = csRecvMsg.Find("/");
        ipos = csRecvMsg.GetLength() -ipos;
        csRecvMsg = csRecvMsg.Right(ipos-1);    CString csRemotePath("");                         
        csRemotePath = csRecvMsg.Left(csRecvMsg.ReverseFind('//')); //远程路径    CString csFilePath("");    //CString csFileName("");
        
        m_ConnParam.m_csIp = csIp;
        m_ConnParam.m_csUser = csUserName;
        m_ConnParam.m_Port = iPort;
        m_ConnParam.m_csPwsd = csPassWord;
        m_ConnParam.m_csRemotePath = csRemotePath;}
    BOOL CTL1DefaultReply::UpLoadFileWithFTP(CString csPathFile,OperateType operType)
    {
        if (csPathFile.Find("/") == -1 && csPathFile.Find("\\") == -1)
        {
            return FALSE;
        }    int index = csPathFile.ReverseFind('\\');
        if (index == -1)
        {
            index = csPathFile.ReverseFind('/');
        }
        CString FileName = csPathFile.Right(csPathFile.GetLength() - index - 1);
        switch(operType)
        {
        case NONE_DOING:
            break;
        case UP_FILE:
            m_FtpClient.ParseRecvMsg(m_csRevMsg);
            m_FtpClient.FtpUpLoadExcute(csPathFile,FileName);
            break;
        case DOWN_FILE:
            m_FtpClient.ParseRecvMsg(m_csRevMsg);
            m_FtpClient.FtpDownLoadExcute(csPathFile,FileName);
            break;
        default:
            break;
        }
        return TRUE;
    }