1、密码编辑框 edit boxIDC_SERVERIDC_USERIDC_PASSCHECK BOXIDC_DEL是否删除邮件RichEditIDC_INFO命令按钮 buttonIDC_CONN连接IDC_VIEW查看邮件IDC_DISC断开IDCANCAL退出CChooseDlgCComboBoxIDC_MSGLISTCViewDlgIDC_MSGTEXTIDC_SAVE存储3定义控件的成员变量按照表6-14,用类向导(Class Wizard)为对话框中的控件对象定义相应的成员变量。表6-14 控件对象的成员变量Control IDs变量名称Member Variable Name变量类别
2、Category变量类型Variable TypeserverValueCStringuserpassdelBOOLinfoctllnfoControlCRichEditCtrlctlListtext4添加成员变量的初始化代码在FtpDlg.cpp文件的OnInitDialog()函数中添加成员变量的初始化代码。对服务器名,登录用户名,登录口令的控件变量赋初值。BOOL CFtpDlg:OnInitDialog(). / 前面是MFC应用程序向导和类向导自动生成的代码/ TODO: Add extra initialization herem_strFtp=_T(); / 初始化服务器域名m_
3、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命令按钮BN_CLICKEDOnConnOnViewOnDiscIDOKOnOKOnSa
4、ve6为CFtpDlg类添加其它的成员函数 Download (CString strSName, CString strDName); Upload (CString strSName, CString strDName);分别用于文件的下载和上传。7手工添加包含语句在CFtpDlg类的FtpDlg.cpp文件中添加对于Afxinet.h的包含命令,来获得对于MFC WinInet类的支持。8添加事件函数和成员函数的代码9进行测试4创建从CAsyncSocket类继承的派生类(1)为了能够捕获并响应socket事件,应创建用户自己的套接字类,它应当从CAsyncSocket类派生,还能将套接
5、字事件传递给对话框,以便执行用户自己的事件处理函数。选择菜单“插入/新建类”,进入“New Class”对话框,如图5-12所示。图5-12 添加自己的套接字类选择或输入以下信息:Class Type:选择MFC ClassClass Infoumation下的Name: 输入mySockClass Infoumation下的Base class:选择CAsyncSocket点击“OK”按钮,系统会自动生成CMySocket类对应的包含文件mySock.h和mySock.cpp文件,在VC界面的Class View中就可以看到这个类。(2)利用类向导ClassWizard为这个套接字类添加响应
6、消息的事件处理成员函数。点菜单View/ClassWizard.,进入类向导对话框,选择Message Maps(消息映射)卡,确认Class name是mySock,从Messages(消息)栏中选择事件消息,然后点击Add Function按钮,就会看到在Member Function栏中添加了相应的事件处理函数。如图5-13所示,此程序中需要添加OnConnect,OnClose和OnReceive三个函数。这一步会在CMySocket类的mySock.h中自动生成这些函数的声明,在mySock.cpp中生成这些函数的框架,以及消息映射的相关代码。可参看后面的程序清单。图5-13 为套接
7、字类添加响应消息的事件处理成员函数(3)为套接字类添加一般的成员函数和成员变量在VC+的界面中,在工作区窗口选择ClassView卡,用右键单击CMySocket类,会弹出快捷菜单,选择其中的Add Member Function 可以为该类添加成员函数;选择Add Member Variable可以为该类添加成员变量。如图5-14所示。图5-15和图5-16是添加操作的对话框。图5-14 为指定的类添加成员变量或成员函数对这个套接字类,添加一个私有的成员变量,是一个对话框类的指针。private:CPop3Dlg * m_pDlg;图5-15 为套接字类添加一般的成员变量再添加一个成员函数:
8、void SetParent(CPop3Dlg * pDlg);图5-16 为套接字类添加一般的成员函数这一步同样会在mySock.h中生成变量或函数的声明,在mySock.cpp中生成函数的框架代码。如果熟悉的话,这一步的代码也可以直接手工添加。(4)手工添加其他代码在VC+的界面中,在工作区窗口选择FileView卡,双击要编辑的文件,在右面的窗口中就会展示该文件的代码,可以编辑添加。对于mySock.h,应在文件开头,添加对于此应用程序对话框类的声明。class CPop3Dlg;对于mySock.cpp,有四处添加: 应在文件开头,添加包含文件说明。这是因为此套接字类用到了对话框类的变
9、量。#include “pop3Dlg.h” 在构造函数中,添加对于对话框指针成员变量的初始化代码:mySock:mySock() m_pDlg = NULL; 在析构函数中,添加对于对话框指针成员变量的初始化代码:mySock() m_pDlg = NULL; 为成员函数setParent和事件处理函数OnConnect,OnClose和OnReceive添加代码。详见后面的程序清单。/ pop3.h : main header file for the POP3 application#if !defined(AFX_POP3_H_INCLUDED_)#define AFX_POP3_H_
10、INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER #ifndef _AFXWIN_H_#error include stdafx.h before including this file for PCH#endif#include resource.h / main symbols/ CPop3App:/ See pop3.cpp for the implementation of this classclass CPop3App : public CWinApppublic:CPop3App();/ Overrides/ Clas
11、sWizard generated virtual function overrides/AFX_VIRTUAL(CPop3App)virtual BOOL InitInstance();/AFX_VIRTUAL/ Implementation/AFX_MSG(CPop3App)/ NOTE - the ClassWizard will add and remove member functions here./ DO NOT EDIT what you see in these blocks of generated code !/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif /
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1