![点击分享此内容可以赚币 分享](/master/images/share_but.png)
MFC+WinInet说课讲解.doc
《MFC+WinInet说课讲解.doc》由会员分享,可在线阅读,更多相关《MFC+WinInet说课讲解.doc(12页珍藏版)》请在咨信网上搜索。
1、MFC+WinInet精品文档MFC WinInet类应用程序编程实例在因特网上有很多FTP服务器,他们存有丰富的软件和信息资源,至今仍然是因特网提供的主要服务之一。现在也有很多FTP客户端软件,比如CuteFtp程序等,本小节就通过一个使用MFC WinInet类编制的FTP客户端程序的例子,说明MFC WinInet应用程序的编程方法。6.4.1 程序要实现的功能程序能实现基本的FTP客户端功能,能登陆FTP服务器,显示登录客户目录下的文件和目录名,能从该目录中选择下载服务器的文件,也能向服务器上传文件。应用程序的类型是基于对话框的,主对话框用户界面如图6.10所示:图6.10 Ftp客户
2、端程序的主对话框三个文本编辑框,分别用于输入FTP服务器域名,登录用户名和登录口令。一个列表框,用来显示FTP服务器当前目录的内容,并允许用户从中选择文件下载。四个命令按钮分别执行查询、上传、下载和退出的功能。用户执行程序的流程是:进行各种操作之前,应首先输入服务器域名,登录用户名和口令。如果要进行查询,可以点击查询按钮,调用OnQuery函数。该函数获得用户当前输入的服务器名、登录用户名和口令等信息,清除列表框的内容;然号创建Internet会话类对象,进行服务器的登录,试图建立与指定FTP服务器的连接;如果连接成功,就创建CFtpFileFind文件检索类对象,查找服务器上当前目录的任意文
3、件,找到了第一个文件后,继续找其它的文件,并将找到的文件或目录名显示在列表框中。所有文件找到后,结束查询,并依次删除文件查询对象、FTP连接对象和Internet 会话对象,结束会话。此时,可以从服务器下载文件。从列表框中选择一个文件,会产生LBN_SELCHANGE事件,自动调用相应的OnSelchangeListFile函数,禁用用来输入的文本框控件,禁用查询和上传按钮,激活下载按钮。此时,用户可以点击下载按钮,产生BN_CLICKED事件,自动调用OnDownload函数,调用Download函数,下载该文件。下载完毕,禁用下载按钮,激活查询和上传按钮,激活用来输入的文本框控件。而Dow
4、nload函数重新创建Internet会话,建立FTP连接,下载文件后,将会话对象和连接对象清除。如果要向FTP服务器上传文件,点击“上传“按钮,产生BN_CLICKED事件,调用OnUpload函数,该函数获得当前输入的服务器名、登录用户名和口令,禁用用于输入的文本框控件,禁用查询按钮,禁用用于输入的文本框控件,弹出小对话框,获得待上传的本地机文件路径和文件名,调用Upload函数上传文件。上传完毕,激活查询按钮,激活用于输入的文本和编辑控件。Upload函数也重新创建Internet会话,建立FTP连接,上传文件后,然后清除会话对象和连接对象。可见,此程序的查询、下载和上传功能基本是独立的
5、。每次都要创建会话,建立连接,执行操作,然后清除对象。这时为了简单清楚起见而这样做的。此程序的主要的技术要点是:如何创建一个Internet会话,即创建CInternetSession对象;如何建立与FTP服务器的连接,即创建CFtpConnection对象;如果连接成功,如何获得当前登录的目录下的文件和目录名称,即检索一个目录下的文件,并显示文件信息;如何下载文件、上传文件以及关闭连接。6.4.2 创建应用程序的过程1使用MFC AppWizard创建应用程序框架工程名是Ftp,应用程序的类型是基于对话框的,其它部分接受系统的默认设置就可以。应用程序包括两个类:应用程序类:CFtpApp,对
6、应的文件是Ftp.h和Ftp.cpp。对话框类:CFtpDlg,对应的文件是FtpDlg.h和FtpDlg.cpp。2为对话框添加控件在程序的主对话框界面中按照图6-13添加相应的可视控件对象,并按照表6.13修改控件的属性。表6.13 对话框中的控件属性控件类型控件IDCaption静态文本 static textIDC_STATIC_FTP服务器域名静态文本 static textIDC_STATIC_NAME用户登录名静态文本 static textIDC_STATIC_PWD登录口令静态文本 static textIDC_STATIC_FILE目录文件列表编辑框 edit boxIDC
7、_EDIT_FTP编辑框 edit boxIDC_EDIT_NAME编辑框 edit boxIDC_EDIT_PWD命令按钮 buttonIDOK查询命令按钮 buttonIDC_DOWNLOAD下载命令按钮 buttonIDC_UPLOAD上传命令按钮 buttonIDCANCLE退出列表框 listboxIDC_LIST_FILE(sort不选)3定义控件的成员变量按照表6.14,用类向导(Class Wizard)为对话框中的控件对象定义相应的成员变量。表6.14 控件对象的成员变量控件IDControl IDs变量名称Member Variable Name变量类别Category变量
8、类型Variable TypeIDC_STATIC_FTPm_staFtpControlCStaticIDC_STATIC_NAMEm_staNameControlCStaticIDC_STATIC_PWDm_staPwdControlCStaticIDC_EDIT_FTPm_strFtpValueCStringm_editFtpControlCEditIDC_EDIT_NAMEm_strNameValueCStringm_editNameControlCEditIDC_EDIT_PWDm_strPwdValueCStringm_editPwdControlCEditIDOKm_btnQuer
9、yControlCBottonIDC_DOWNLOADm_btnDownloadControlCBottonIDC_UPLOADm_btnUploadControlCBottonIDC_LIST_FILEm_listFileControlCListBox4添加成员变量的初始化代码在FtpDlg.cpp文件的OnInitDialog()函数中添加成员变量的初始化代码。对服务器名,登录用户名,登录口令的控件变量赋初值。BOOL CFtpDlg:OnInitDialog(). / 前面是MFC应用程序向导和类向导自动生成的代码/ TODO: Add extra initialization here
10、m_strFtp=_T(); / 初始化服务器域名m_strName=_T(); / 初始化登录用户名m_strPwd=_T(); / 初始化登录口令UpdateData(FALSE); /更新界面return TRUE; / return TRUE unless you set the focus to a control5为对话框中的控件对象添加事件响应函数按照表6.15,用类向导(Class Wizard )为对话框中的控件对象添加事件响应函数。表6.15 对话框控件的事件响应函数控件类型对象标识 ObjectID消息 Message函数Member functions命令按钮IDOKB
11、N_CLICKEDOnQuery命令按钮IDC_DOWNLOADBN_CLICKEDOnDownload命令按钮IDC_UPLOADBN_CLICKEDOnUpload列表框IDC_LIST_FILELBN_SELCHANGEOnSelchangeListFile6为CFtpDlg类添加其它的成员函数BOOL CFtpDlg: Download (CString strSName, CString strDName);BOOL CFtpDlg: Upload (CString strSName, CString strDName);分别用于文件的下载和上传。7手工添加包含语句在CFtpDlg类
12、的FtpDlg.cpp文件中添加对于Afxinet.h的包含命令,来获得对于MFC WinInet类的支持。8添加事件函数和成员函数的代码9进行测试关于测试,有一点必须指出,如果在本机测试,必须在本机安装一个FTP服务器,并将它运行起来,然后才能运行此程序。FTP服务器软件很多,可以从网上下载,例如比较简单的NetFtpd.exe。运行这个例子程序时,在服务器域名文本框中输入“localhost”,保持登录用户名和口令文本框为空,单击“查询”按钮,用户将获得FTP服务器的默认目录下的文件名和目录名。如果在局域网上测试,同样要安装FTP服务器,不过输入的服务器名等信息要根据配置来定。6.4.3
13、主要功能实现的代码和分析这个程序的类比较少,只需要在CFtpDlg类的FtpDlg.cpp文件中添加事件函数和成员函数的代码。以下按照它们执行的功能分别介绍。1查询并显示FTP服务器的当前目录内容当用户输入了服务器名、登录用户名和口令后,点击查询按钮,会产生BN_CLICKED事件,导致执行对应的函数OnQuery()。代码如下:void CFtpDlg:OnQuery() CInternetSession* pSession; /定义会话对象指针变量CFtpConnection* pConnection; /定义连接对象指针变量CFtpFileFind* pFileFind; /定义文件查询
14、对象指针变量CString strFileName;BOOL bContinue;pConnection=NULL; /初始化pFileFind=NULL;UpdateData(TRUE); / 获得用户的当前输入(服务器名,用户名和口令)while(m_listFile.GetCount()!=0) m_listFile.DeleteString(0); / 清除列表框的内容pSession=new CInternetSession( / 创建Internet会话类对象AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);try / 试图建立与指定FTP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MFC WinInet 讲解
![提示](https://www.zixin.com.cn/images/bang_tan.gif)
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。