毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

VC++的ftp客户端设计论文(流程图+源代码) 第3页

更新时间:2010-5-18:  来源:毕业论文
VC++的ftp客户端设计论文(流程图+源代码) 第3页
3.4.2上传函数OnUpLoad:
     上传函数首先得获得想要上传的本地文件的路径名和文件名,弹出打开对话框,找到所要上传的文件后使用PutFile函数上传文件(调用CFtpConnect类中的PutFile函数),等函数上传完后提示是否上传成功,最后调用查询函数,显示新的文件列表。
   流程图:
3.4.3 删除函数OnDelete:
    删除函数首先判断是否选择项目,如果没有,则弹出对话框没有选择文件。选择了项目后,得到选择项的类型,如果是目录,则提示不能删除目录,然后用m_pConnection->Remove删除文件并提示是否删除成功,最后调用查询函数,更新文件列表。
3.4.4 重命名函数OnRename:
     重命名文件需要新建立一个对话框(CNewNameDlg),后选择要重命名的文件,没有选择项目,提示没有选择文件,激活控件后,弹出新建的对话框,输入新的文件名后用m_pConnection->Rename重新命名文件,最后调用查询函数,更新文件列表。
4 主要的数据结构分析
CMyFtpView类:
    CConnectDlg  m_ConDlg;       //用于连接
 CFtpDlg     m_FtpDlg;         //用于创建一个CFtpDlg对话框,进行操作控制
 CString   m_FtpWebSite;        //服务器站点,用于输入服务器的站点名称或IP地址
 CString   m_UserName;         //登陆服务器的用户名称
 CString   m_UserPwd;          //登陆服务器的密码
 CInternetSession * m_pSession;    //通过CConnectDlg 的设置,得到一个Internet会话
 CFtpConnection* m_pConnection;  //通过m_pSession来实现一个FTP连接
CFtpDlg类:
    CButton m_BtnQuery;           //查询按扭
 CButton m_BtnUpLoad;         //上传按扭
 CButton m_BtnDownLoad;       //下载按扭
    CString m_NewFileName;       //保存文件的新名称
 CListCtrl m_FtpFile;             / / 用于显示目录和文件信息
    CFtpConnection* m_pConnection;  //代表所建立的FTP连接
 CFtpFileFind* m_pFileFind;       // CFtpFileFind指针,用于查找文件
5   Ftp客户端的各个子模块设计过程及代码分析:
5.1  模块一:对程序的外观进行修改:( 何佳 负责)
5.1.1.  删除工具栏:
在CmainFrame的OnCreate函数中,删除与工具栏m_wndToolBar相关的代码,因为在本程序中没有提供相应的工具栏。
5.1.2.  修改菜单:
将原有的菜单项删除,增加“连接”和“退出客户端”子菜单项,(去掉Pop-up前的勾,同时赋以ID值)
      同时,为“连接”和“退出客户端”子菜单项添加COMMAND消息响应,响应的类分别为CMyFtpView类和CMainFrame类.响应函数为OnConnect和OnExit,其中:
OnExit函数代码如下:
void CMainFrame::OnExit()
{
 //退出程序的响应函数
if(IDYES==MessageBox("确定要退出客户端吗?",
"警告",MB_YESNO|MB_ICONWARNING))
  CFrameWnd::OnClose();
}5.1.3.  添加位图背景:
为CMyFtpView类窗口,添加一个位图背景显示,首先为CmyFtpView添加WM_ERASEBKGND消息响应函数,代码如下:
//用于添加背景图
BOOL CMyFtpView::OnEraseBkgnd(CDC* pDC)   
{
CBitmap bitmap;
//前提IDB_BITMAP2代表的位图已经导入资源中
  bitmap.LoadBitmap(IDB_BITMAP2); CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);
//创建与当前DC(pDC)兼容的DC,先用dcCompatible准备图像,再将数据复制到实际DC中 
dcCompatible.SelectObject(&bitmap);
CRect rect;
GetClientRect(&rect);//得到目的DC客户区大小
BITMAP bmp;// BITMAP结构体,用于保存位图的信息
bitmap.GetBitmap(&bmp);
//将兼容DC中的位图Copy到目标DC中
 pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,
 bmp.bmWidth,bmp.bmHeight,SRCCOPY);
return true;}
修改主窗口的大小,在PreCreateWindow函数中添加:cs.cx=450;  cs.cy=550;
5.1.4  修改状态栏:
     使之只具有时间显示窗格
首先MainFrame.cpp中修改indicators,如下:
static UINT indicators[] =
{
 ID_SEPARATOR,           // status line indicator
    IDS_TIMER,
};
同时,在资源视图的String Table中添加字符串资源:  IDS_TIMER  Caption为:  时间

然后,添加时钟显示功能:
1> 在CMainFrame的OnCreate中添加代码:
SetTimer(1,1000,NULL)来设置一个定时器
2> 为CMainFrame添加WM_TIMER的响应函数,代码如下:
void CMainFrame::OnTimer(UINT nIDEvent)
{
 //用于在状态栏显示当前时间
 CTime t=CTime::GetCurrentTime();
 CString str=t.Format("%H:%M:%S");
     CClientDC dc(this);
CSize sz=dc.GetTextExtent(str);//得到Str的长度,用于控制时间窗格    m_wndStatusBar.SetPaneInfo(1,IDS_TIMER,SBPS_NORMAL,sz.cx);
 m_wndStatusBar.SetPaneText(1,str);//将当前时间显示在时间窗格中

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页

VC++的ftp客户端设计论文(流程图+源代码) 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。