FTP客户端(改进)
来源:互联网 发布:单片机算嵌入式系统 编辑:程序博客网 时间:2024/04/26 09:29
上一篇中Ftp客户端是基于Dialog,这里使用SDI基于CListView类。
其ui如下所示:
一、浮动对话框
Style设置为Child,Border设置为None。
用到如下几个函数:
CDialogBar::Create
virtual BOOL Create(CWnd* pParentWnd, //指向装载浮动对话框父窗口指针UINT nIDTemplate, //对话框资源IDUINT nStyle, //对话框在框架窗口的位置UINT nID //对话框控件ID);
EnableDocking()
DockControlBar() 框架指定浮动对话框停靠
二、客户区的分割
分为三个区,即三个视图CMsgShow, CFileTree,CFtpTreeView,分别基于类CEditview,CTreeView,CListView
用到如下几个函数:
virtual BOOL CreateStatic
virtual BOOL CreateStatic(CWnd* pParentWnd, //分割窗口的父框架窗口int nRows, //分割行int nCols, //分割列DWORD dwStyle = WS_CHILD | WS_VISIBLE, //指定窗口样式UINT nID = AFX_IDW_PANE_FIRST //子窗口的ID);
virtual BOOL CreateView(int row, int col,CRuntimeClass* pViewClass, //指定一个CRuntimeClass作为新视图SIZE sizeInit, //指定新视图的初始大小CCreateContext* pContext //为用来创建上下文的指针创建视图);
SetRowInfo()
SetColumnInfo()
三、客户端的连接
通过调用WinInet API来实现,用到两个类:CInternetSession和CFtpConnection
CInternetSession(LPCTSTR pstrAgent = NULL, DWORD_PTR dwContext = 1,DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS,LPCTSTR pstrProxyName = NULL,LPCTSTR pstrProxyBypass = NULL,DWORD dwFlags = 0 );CFtpConnection* GetFtpConnection(LPCTSTR pstrServer, //包含FTP服务器IP地址的字符串LPCTSTR pstrUserName = NULL, //用户名字符串,若为NULL,则为默认匿名登录LPCTSTR pstrPassword = NULL, //密码字符串INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER, //服务器的端口号,对FTP默认为21BOOL bPassive = FALSE //会话指定为被动或主动,默认为主动模式);
BOOL PutFile(LPCTSTR pstrLocalFile, //上传文件的路径字符串LPCTSTR pstrRemoteFile, //保存在FTP服务器上文件路径DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, //指定文件的传输模式DWORD_PTR dwContext = 1 //文件的标识符);
GetFile()
BOOL GetFile(LPCTSTR pstrRemoteFile, //FTP服务器上文件路径LPCTSTR pstrLocalFile, //本地创建的文件路径BOOL bFailIfExists = TRUE, //当下载路径上有同名文件时,是否会导致下载失败DWORD dwAttributes = FILE_ATTRIBUTE_NORMAL, //文件属性DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, //调用时的条件DWORD_PTR dwContext = 1 //文件检索上下文标识);
四、遍历本地文件夹资源
调用CFileFind类
InsertItem()HTREEITEM InsertItem(LPCTSTR lpszItem, //插入项的文本指针int nImage, //插入项未被选中时的图标索引int nSelectedImage, //插入项被选中时的图标索引HTREEITEM hParent = TVI_ROOT, //父节点项的句柄,默认为根节点HTREEITEM hInsertAfter = TVI_LAST //新插入项的位置,默认最后);
效果图如下:
源代码
0 0
- FTP客户端(改进)
- ftp 客户端实现(1)--FTP格式
- 开启FTP客户端(编程)
- ftp客户端
- ftp客户端
- FTP客户端
- FTP 客户端
- FTP客户端
- FTP客户端
- FTP客户端
- ftp客户端
- FTP客户端
- ftp客户端
- FTP客户端
- FTP客户端程序(org.apache.commons.net.ftp)
- 使用FTP(IOS FTP客户端开发教程)
- 使用FTP(IOS FTP客户端开发教程)
- FTP客户端(利用sun.net.ftp.FtpClient实现)
- 你可知道我一直在等一个人
- java的实体类
- mysql删除注册
- Oracle Partition 分区详细总结
- 移动App服务端架构设计
- FTP客户端(改进)
- druid获取连接超时异常排查
- 汶川地震六周年纪念日
- Redis学习笔记1--入门篇
- JQuery判断radio是否选中,获取选中值
- Android adb 命令图解
- 如何把数据库中的数据刷到缓存中?
- 二维数组指针
- windows启动eclipse报错