2创建应用程序的过程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

6.6.2创建应用程序的过程1.使用MFCAppWizard创建应用程序框架工程名是pop3,应用程序的类型是基于对话框的,对话框的标题是“接收电子邮件客户端程序”,需要WindowsSockets的支持,其它部分接受系统的默认设置就可以。应用程序包括两个类:应用程序类:CPop3App,基类是CWinApp,对应的文件是pop3.h和pop3.cpp。对话框类:CPop3Dlg,基类是CDialog,对应的文件是pop3Dlg.h和pop3Dlg.cpp。2.为对话框添加控件在程序的主对话框界面中按照图6-13添加相应的可视控件对象,并按照表6-13修改控件的属性。表6-13对话框中的控件属性控件类型控件IDCaption静态文本statictextIDC_STATIC服务器地址静态文本statictextIDC_STATIC用户名静态文本statictextIDC_STATIC密码编辑框editboxIDC_SERVER编辑框editboxIDC_USER编辑框editboxIDC_PASSCHECKBOXIDC_DEL是否删除邮件RichEditIDC_INFO命令按钮buttonIDC_CONN连接命令按钮buttonIDC_VIEW查看邮件命令按钮buttonIDC_DISC断开命令按钮buttonIDCANCAL退出CChooseDlgCComboBoxIDC_MSGLISTCViewDlg编辑框editboxIDC_MSGTEXT命令按钮buttonIDC_SAVE存储3.定义控件的成员变量按照表6-14,用类向导(ClassWizard)为对话框中的控件对象定义相应的成员变量。表6-14控件对象的成员变量控件IDControlIDs变量名称MemberVariableName变量类别Category变量类型VariableTypeIDC_SERVERserverValueCStringIDC_USERuserValueCStringIDC_PASSpassValueCStringIDC_DELdelValueBOOLIDC_INFOinfoValueCStringctllnfoControlCRichEditCtrlCChooseDlgIDC_MSGLISTctlListControlCComboBoxCViewDlgIDC_MSGTEXTtextValueCString4.添加成员变量的初始化代码在FtpDlg.cpp文件的OnInitDialog()函数中添加成员变量的初始化代码。对服务器名,登录用户名,登录口令的控件变量赋初值。BOOLCFtpDlg::OnInitDialog(){.................//前面是MFC应用程序向导和类向导自动生成的代码//TODO:Addextrainitializationherem_strFtp=_T();//初始化服务器域名m_strName=_T();//初始化登录用户名m_strPwd=_T();//初始化登录口令UpdateData(FALSE);//更新界面returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}5.为对话框中的控件对象添加事件响应函数按照表6-15,用类向导(ClassWizard)为对话框中的控件对象添加事件响应函数。表6-15对话框控件的事件响应函数控件类型对象标识ObjectID消息Message函数Memberfunctions命令按钮IDC_CONNBN_CLICKEDOnConn命令按钮IDC_VIEWBN_CLICKEDOnView命令按钮IDC_DISCBN_CLICKEDOnDiscCChooseDlg命令按钮IDOKBN_CLICKEDOnOKCViewDlg命令按钮IDC_SAVEBN_CLICKEDOnSave6.为CFtpDlg类添加其它的成员函数BOOLCFtpDlg::Download(CStringstrSName,CStringstrDName);BOOLCFtpDlg::Upload(CStringstrSName,CStringstrDName);分别用于文件的下载和上传。7.手工添加包含语句在CFtpDlg类的FtpDlg.cpp文件中添加对于Afxinet.h的包含命令,来获得对于MFCWinInet类的支持。8.添加事件函数和成员函数的代码9.进行测试4.创建从CAsyncSocket类继承的派生类(1)为了能够捕获并响应socket事件,应创建用户自己的套接字类,它应当从CAsyncSocket类派生,还能将套接字事件传递给对话框,以便执行用户自己的事件处理函数。选择菜单“插入/新建类”,进入“NewClass”对话框,如图5-12所示。图5-12添加自己的套接字类选择或输入以下信息:ClassType:选择MFCClassClassInfoumation下的Name:输入mySockClassInfoumation下的Baseclass:选择CAsyncSocket点击“OK”按钮,系统会自动生成CMySocket类对应的包含文件mySock.h和mySock.cpp文件,在VC界面的ClassView中就可以看到这个类。(2)利用类向导ClassWizard为这个套接字类添加响应消息的事件处理成员函数。点菜单View/ClassWizard...,进入类向导对话框,选择MessageMaps(消息映射)卡,确认Classname是mySock,从Messages(消息)栏中选择事件消息,然后点击AddFunction按钮,就会看到在MemberFunction栏中添加了相应的事件处理函数。如图5-13所示,此程序中需要添加OnConnect,OnClose和OnReceive三个函数。这一步会在CMySocket类的mySock.h中自动生成这些函数的声明,在mySock.cpp中生成这些函数的框架,以及消息映射的相关代码。可参看后面的程序清单。图5-13为套接字类添加响应消息的事件处理成员函数(3)为套接字类添加一般的成员函数和成员变量在VC++的界面中,在工作区窗口选择ClassView卡,用右键单击CMySocket类,会弹出快捷菜单,选择其中的AddMemberFunction可以为该类添加成员函数;选择AddMemberVariable可以为该类添加成员变量。如图5-14所示。图5-15和图5-16是添加操作的对话框。图5-14为指定的类添加成员变量或成员函数对这个套接字类,添加一个私有的成员变量,是一个对话框类的指针。private:CPop3Dlg*m_pDlg;图5-15为套接字类添加一般的成员变量再添加一个成员函数:voidSetParent(CPop3Dlg*pDlg);图5-16为套接字类添加一般的成员函数这一步同样会在mySock.h中生成变量或函数的声明,在mySock.cpp中生成函数的框架代码。如果熟悉的话,这一步的代码也可以直接手工添加。(4)手工添加其他代码在VC++的界面中,在工作区窗口选择FileView卡,双击要编辑的文件,在右面的窗口中就会展示该文件的代码,可以编辑添加。对于mySock.h,应在文件开头,添加对于此应用程序对话框类的声明。classCPop3Dlg;对于mySock.cpp,有四处添加:①应在文件开头,添加包含文件说明。这是因为此套接字类用到了对话框类的变量。#include“pop3Dlg.h”②在构造函数中,添加对于对话框指针成员变量的初始化代码:mySock::mySock(){m_pDlg=NULL;}③在析构函数中,添加对于对话框指针成员变量的初始化代码:mySock::~mySock(){m_pDlg=NULL;}④为成员函数setParent和事件处理函数OnConnect,OnClose和OnReceive添加代码。详见后面的程序清单。//pop3.h:mainheaderfileforthePOP3application#if!defined(AFX_POP3_H__INCLUDED_)#defineAFX_POP3_H__INCLUDED_#if_MSC_VER1000#pragmaonce#endif//_MSC_VER1000#ifndef__AFXWIN_H__#errorinclude'stdafx.h'beforeincludingthisfileforPCH#endif#includeresource.h//mainsymbols///////////////////////////////////////////////////////////////////////////////CPop3App://Seepop3.cppfortheimplementationofthisclassclassCPop3App:publicCWinApp{public:CPop3App();//Overrides//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CPop3App)public:virtualBOOLInitInstance();//}}AFX_VIRTUAL//Implementation//{{AFX_MSG(CPop3App)//NOTE-theClassWizardwilladdandremovememberfunctionshere.//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!//}}AFX_MSGDECLARE_MESSAGE_MAP()};///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!defined(AFX_POP3_H__INCLUDED_)//pop3.cpp:Definestheclassbehaviorsfortheapplication.#includestdafx.h#includepop3.h#includepop3Dlg.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CPop3AppBEGIN_MESSAGE_MAP(CPop3App,CWinApp)//{{AFX_MSG_MAP(CPop3App)//NOTE-theClassWizardwilladdandremovemappingmacroshere.//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!//}}AFX_MSGON_COMMAND(ID_HELP,CWinApp::OnHelp)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CPop3AppconstructionCPop3App::CPop3App(){//TODO:addconstructioncodehere,//PlaceallsignificantinitializationinInitInstance}/////////

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功