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