ImageVerifierCode 换一换
格式:DOC , 页数:31 ,大小:142KB ,
资源ID:1887755      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1887755.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(2创建应用程序的过程.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

2创建应用程序的过程.DOC

1、6.6.2 创建应用程序的过程1使用 MFC AppWizard 创建应用程序框架工程名是 pop3,应用程序的类型是基于对话框的,对话框的标题是 “接收电子邮件客户端程序”,需要 Windows Sockets 的支持,其它部分接受系统的默认设置就可以。应用程序包括两个类:应用程序类:CPop3App,基类是 CWinApp,对应的文件是 pop3.h 和pop3.cpp。对话框类:CPop3Dlg,基类是 CDialog,对应的文件是 pop3Dlg.h 和pop3Dlg.cpp。2为对话框添加控件在程序的主对话框界面中按照图 6-13 添加相应的可视控件对象,并按照表 6-13 修改控件

2、的属性。表 6-13 对话框中的控件属性控件类型 控件 ID Caption静态文本 static text IDC_STATIC 服务器地址静态文本 static text IDC_STATIC 用户名静态文本 static text IDC_STATIC 密码编辑框 edit box IDC_SERVER编辑框 edit box IDC_USER编辑框 edit box IDC_PASSCHECK BOX IDC_DEL 是否删除邮件RichEdit IDC_INFO命令按钮 button IDC_CONN 连接命令按钮 button IDC_VIEW 查看邮件命令按钮 button ID

3、C_DISC 断开命令按钮 button IDCANCAL 退出CChooseDlgCComboBox IDC_MSGLISTCViewDlg编辑框 edit box IDC_MSGTEXT命令按钮 button IDC_SAVE 存储3定义控件的成员变量按照表 6-14,用类向导(Class Wizard)为对话框中的控件对象定义相应的成员变量。表 6-14 控件对象的成员变量控件 IDControl IDs变量名称Member Variable Name变量类别Category变量类型Variable TypeIDC_SERVER server Value CStringIDC_USER

4、user Value CStringIDC_PASS pass Value CStringIDC_DEL del Value BOOLinfo Value CStringIDC_INFOctllnfo Control CRichEditCtrlCChooseDlgIDC_MSGLIST ctlList Control CComboBoxCViewDlgIDC_MSGTEXT text Value CString4添加成员变量的初始化代码在 FtpDlg.cpp 文件的 OnInitDialog()函数中添加成员变量的初始化代码。对服务器名,登录用户名,登录口令的控件变量赋初值。BOOL CFt

5、pDlg:OnInitDialog(). / 前面是 MFC 应用程序向导和类向导自动生成的代码/ TODO: Add extra initialization herem_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、话框中的控件对象添加事件响应函数。表 6-15 对话框控件的事件响应函数控件类型 对象标识 ObjectID消息 Message 函数 Member functions命令按钮 IDC_CONN BN_CLICKED OnConn命令按钮 IDC_VIEW BN_CLICKED OnView命令按钮 IDC_DISC BN_CLICKED OnDiscCChooseDlg命令按钮 IDOK BN_CLICKED OnOKCViewDlg命令按钮 IDC_SAVE BN_CLICKED OnSave6为 CFtpDlg 类添加其它的成员函数BOOL CFtpDlg: Download (CStr

7、ing strSName, CString strDName);BOOL CFtpDlg: Upload (CString strSName, CString strDName);分别用于文件的下载和上传。7手工添加包含语句在 CFtpDlg 类的 FtpDlg.cpp 文件中添加对于 Afxinet.h 的包含命令,来获得对于MFC WinInet 类的支持。8添加事件函数和成员函数的代码9进行测试4创建从 CAsyncSocket 类继承的派生类(1)为了能够捕获并响应 socket 事件,应创建用户自己的套接字类,它应当从CAsyncSocket 类派生,还能将套接字事件传递给对话框,以

8、便执行用户自己的事件处理函数。选择菜单“插入/新建类 ”,进入“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

9、为这个套接字类添加响应消息的事件处理成员函数。点菜单 View/ClassWizard.,进入类向导对话框,选择 Message Maps(消息映射)卡,确认 Class name 是 mySock,从 Messages(消息)栏中选择事件消息,然后点击Add Function 按钮,就会看到在 Member Function 栏中添加了相应的事件处理函数。如图 5-13 所示,此程序中需要添加 OnConnect,OnClose 和 OnReceive 三个函数。这一步会在 CMySocket 类的 mySock.h 中自动生成这些函数的声明,在 mySock.cpp中生成这些函数的框架,以

10、及消息映射的相关代码。可参看后面的程序清单。图 5-13 为套接字类添加响应消息的事件处理成员函数(3)为套接字类添加一般的成员函数和成员变量在 VC+的界面中,在工作区窗口选择 ClassView 卡,用右键单击 CMySocket 类,会弹出快捷菜单,选择其中的 Add Member Function 可以为该类添加成员函数;选择Add Member Variable 可以为该类添加成员变量。如图 5-14 所示。图 5-15 和图 5-16是添加操作的对话框。图 5-14 为指定的类添加成员变量或成员函数对这个套接字类,添加一个私有的成员变量,是一个对话框类的指针。private:CPo

11、p3Dlg * m_pDlg;图 5-15 为套接字类添加一般的成员变量再添加一个成员函数:void SetParent(CPop3Dlg * pDlg);图 5-16 为套接字类添加一般的成员函数这一步同样会在 mySock.h 中生成变量或函数的声明,在 mySock.cpp 中生成函数的框架代码。如果熟悉的话,这一步的代码也可以直接手工添加。(4)手工添加其他代码在 VC+的界面中,在工作区窗口选择 FileView 卡,双击要编辑的文件,在右面的窗口中就会展示该文件的代码,可以编辑添加。对于 mySock.h,应在文件开头,添加对于此应用程序对话框类的声明。class CPop3Dlg

12、;对于 mySock.cpp,有四处添加: 应在文件开头,添加包含文件说明。这是因为此套接字类用到了对话框类的变量。#include “pop3Dlg.h” 在构造函数中,添加对于对话框指针成员变量的初始化代码:mySock:mySock() m_pDlg = NULL; 在析构函数中,添加对于对话框指针成员变量的初始化代码:mySock:mySock() m_pDlg = NULL; 为成员函数 setParent 和事件处理函数 OnConnect,OnClose 和 OnReceive 添加代码。详见后面的程序清单。/ pop3.h : main header file for the

13、POP3 application#if !defined(AFX_POP3_H_INCLUDED_)#define AFX_POP3_H_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#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 t

14、his classclass CPop3App : public CWinApppublic:CPop3App();/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CPop3App)public:virtual BOOL InitInstance();/AFX_VIRTUAL/ Implementation/AFX_MSG(CPop3App)/ NOTE - the ClassWizard will add and remove member functions here./ DO NOT ED

15、IT 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 / !defined(AFX_POP3_H_INCLUDED_)/ pop3.cpp : Defines the class behaviors for the application.#inc

16、lude “stdafx.h“#include “pop3.h“#include “pop3Dlg.h“#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CPop3AppBEGIN_MESSAGE_MAP(CPop3App, CWinApp)/AFX_MSG_MAP(CPop3App)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT what you see i

17、n these blocks of generated code!/AFX_MSGON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()/ CPop3App constructionCPop3App:CPop3App()/ TODO: add construction code here,/ Place all significant initialization in InitInstance/ The one and only CPop3App objectCPop3App theApp;/ CPop3App initializationB

18、OOL CPop3App:InitInstance()if (!AfxSocketInit()AfxMessageBox(IDP_SOCKETS_INIT_FAILED);return FALSE;AfxEnableControlContainer(); /MFC 自动创建的AfxInitRichEdit(); /自己加的/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove fr

19、om the following/ the specific initialization routines you do not need.#ifdef _AFXDLLEnable3dControls(); / Call this when using MFC in a shared DLL#elseEnable3dControlsStatic(); / Call this when linking to MFC statically#endifCPop3Dlg dlg;m_pMainWnd = int nResponse = dlg.DoModal();if (nResponse = ID

20、OK)/ TODO: Place code here to handle when the dialog is/ dismissed with OKelse if (nResponse = IDCANCEL)/ TODO: Place code here to handle when the dialog is/ dismissed with Cancel/ Since the dialog has been closed, return FALSE so that we exit the/ application, rather than start the applications mes

21、sage pump.return FALSE;/ pop3Dlg.h : header file#if !defined(AFX_POP3DLG_H_INCLUDED_)#define AFX_POP3DLG_H _INCLUDED_#include “pop31.h“#include “resource.h“#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ CPop3Dlg dialogclass CPop3Dlg : public CDialog/ Constructionpublic:CPop3 pop3;void Dispatch

22、(LONG param);CPop3Dlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CPop3Dlg)enum IDD = IDD_POP3_DIALOG ;CRichEditCtrl ctlInfo;CString info;CString pass;CString server;CString user;BOOL del;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CPop3Dlg)protect

23、ed:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CPop3Dlg)virtual BOOL OnInitDialog();afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnConn();afx_msg void OnDisc()

24、;afx_msg void OnView();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_POP3DLG_H_INCLUDED_)/ pop3Dlg.cpp : implementation file#include “stdafx.h“#include “pop3.h“#include “pop31.h“#

25、include “Gniazdo.h“#include “ChooseDlg.h“#include “pop3Dlg.h“#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CPop3Dlg dialogCPop3Dlg:CPop3Dlg(CWnd* pParent /*=NULL*/): CDialog(CPop3Dlg:IDD, pParent)/AFX_DATA_INIT(CPop3Dlg)info = _T(“);pass = _T(“wxpwxp“);serv

26、er = _T(““);user = _T(“busywxp“);del = FALSE;/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CPop3Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CPop3Dlg)DDX_Control(pDX, IDC_INFO

27、, ctlInfo);DDX_Text(pDX, IDC_INFO, info);DDX_Text(pDX, IDC_PASS, pass);DDX_Text(pDX, IDC_SERVER, server);DDX_Text(pDX, IDC_USER, user);DDX_Check(pDX, IDC_DEL, del);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CPop3Dlg, CDialog)/AFX_MSG_MAP(CPop3Dlg)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_CONN, OnConn)

28、ON_BN_CLICKED(IDC_DISC, OnDisc)ON_BN_CLICKED(IDC_VIEW, OnView)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CPop3Dlg message handlersBOOL CPop3Dlg:OnInitDialog()CDialog:OnInitDialog();/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE); / Set big iconSetIcon(m_hIcon, FALSE); / Set small icon/ TODO: Add extra initialization hereCHARFORMAT cf; /设置默认的字符格式cf.cbSize=sizeof(cf);cf.dwMask=CFM_COLOR | CFM_FACE;cf.dwEffects=0;cf.crTextColor=RGB(255,0,0);strcpy(cf.szFaceName,“Verdana“);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。