VC++6.0使用MFC创建应用程序框架操作步骤

上传人:杰猫 文档编号:122946120 上传时间:2020-03-08 格式:PPT 页数:50 大小:2.10MB
返回 下载 相关 举报
VC++6.0使用MFC创建应用程序框架操作步骤_第1页
第1页 / 共50页
VC++6.0使用MFC创建应用程序框架操作步骤_第2页
第2页 / 共50页
VC++6.0使用MFC创建应用程序框架操作步骤_第3页
第3页 / 共50页
VC++6.0使用MFC创建应用程序框架操作步骤_第4页
第4页 / 共50页
VC++6.0使用MFC创建应用程序框架操作步骤_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《VC++6.0使用MFC创建应用程序框架操作步骤》由会员分享,可在线阅读,更多相关《VC++6.0使用MFC创建应用程序框架操作步骤(50页珍藏版)》请在金锄头文库上搜索。

1、CAsyncSocket类的应用实例 实现目标 应用实例是一个简单的聊天室程序 采用 C S模式 分为客户端程序和服务器端程序 由于服务器只能支持一个客户 实际是一 个点对点通信的程序 客户端程序和服务器程序通过网络交换聊 天的字符串内容 并在窗口的列表框中显示 实例程序的技术要点 如何从CAsyncSocket类派生出自己的 WinSock类 理解WinSock类与应用程序框架的关系 重点学习流式套接字对象的使用 处理网络事件的方法 实例简单 但能说明网络编程的许多问题 下面结合它详细说明MFC编程的细节 创建客户端程序 1 使用MFC AppWizard创建服务器端应用程序框 架 2 为对

2、话框界面添加控件对象 3 为对话框中的控件对象定义相应的成员变量 4 创建从CAsyncSocket类继承的派生类 5 为CAsyncSocket类继承的派生类添加控件对象 事件的响应函数 6 为对话框类添加控件对象事件的响应函数 7 为CTalkcDlg对话框类添加其它的成员函数和成 员变量 8 手工添加代码 创建客户端应用程序 采用对话框架构 1 使用MFC AppWizard创建客户端应用程序框架 1 在New对话框中 选择Projects卡 如图所示 选MFC AppWizard exe 在Project Name处填入工程名Talkc 在Location处选定存放此工程的目录 然后点

3、击OK按钮 2 出现MFC AppWizard设置的第一步对话框 MFC AppWizard Step 1 如图所示 从中选择Dialog based的应用程序类型 语言支持 选择中文 中国 使此工程能够正确地进行中文的输入 输出 显示及处 理 然后点击NEXT按钮 3 出现MFC AppWizard设置的第二步对话框 MFC AppWizards Step 2 of 4 如图所示 在Windows Sockets复选框上打上选择标记 表示应用程序将支持WinSock套接字 接受其它的默认设置 跳过后面的 步骤 直接点击Finsh按钮 4 出现新工程信息对话框 New Project Info

4、rmation 说明了所创建 的骨架工程的有关信息 如图所示 所创建的程序是一个基于对话框的Win32 应用程序 将自动创建两个类 应用程序类CTalkcApp 对应的文件是 talkc h和talkc cpp 对话框类CTalkcDlg 对应的文件是 talkcDlg h和talkcDlg cpp 支持Windows Socket 使用共享的DLL实现MFC42 DLL 2 为对话框界面添加控件对象 在创建了应用程序骨架之后 可以布置程序的主 对话框 在MFC界面左方的工作区 workspace 中选择 resourceView卡 从中选择Dialog 双击 IDD TALKC DIALOG

5、 右边会出现对话框 会 出现控件面板 利用控件面板可以方便地在程序的主对话框界面 中添加相应的可视控件对象 如图所示 在主对话框中添加控件 对话框中的控件属性按照下表修改控件属性 图 Talkc程序的主对话框 控件类型控件IDCaption 静态文本 static textIDC STATIC SERVNAME服务器名称 静态文本 static textIDC STATIC SERVPORT服务器端口 静态文本 static textIDC STATIC MSG消 息 静态文本 static textIDC STATIC SENT发送的消息 静态文本 static textIDC STATIC

6、 RECEIVED接收的消息 编辑框 edit boxIDC EDIT SERVNAME 编辑框 edit boxIDC EDIT SERVPORT 编辑框 edit boxIDC EDIT MSG 命令按钮 buttonIDC BUTTON CONNECT连接 命令按钮 buttonIDC BUTTON CLOSE断开 命令按钮 buttonIDOK发送 列表框 listboxIDC LIST SENT 列表框 listboxIDC LIST RECEIVED 表 Talkc程序主对话框中的控件属性 3 为对话框中的控件对象定义相应的成员变量 在窗口菜单中点查看 建立类向导 进入类向导 Cl

7、ass Wizard 对话框 如图 选择成员变量卡 Member Variables 用类向导为对话框 中的控件对象定义相应的成员变量 确认Class Name是 CTalkcDlg 在左边的列表框中选择一个控件 然后点 Add Variable 按钮 会弹出 Add Member Variable 对话框 如图所示 然后按照表输入即可 图 增加控件成员 变量的对话框 表 客户端程序对话框中的控件对象对应的成员变量 控件ID Control IDs 变量名称Member Variable Name 变量类别 Category 变量类型 Variable Type IDC BUTTON CONN

8、ECTm btnConnectControlCButton IDC EDIT SERVNAMEm strServNameValueCString IDC EDIT SERVPORTm nServPortValueint IDC EDIT MSGm strMsgValueCString IDC LIST SENTm listSentControlCListBox IDC LIST RECEIVEDm listRecetvedControlCListBox 定义了一个枚举变量IDD 值 为IDD TALKC DIALOG 这个对话框类就是通过这个 IDD和对话框资源建立了联系 CTalkcDlg类

9、的 构造函数 类向导生成的 对话框控件和 对应的控件变 量的映射语句 把控件ID与类的成员 变量匹配起来 4 创建从CAsyncSocket类继承的派生类 1 为了能够捕获并响应socket事件 应创建用户自己的套接字类 它应 当从CAsyncSocket类派生 还能将套接字事件传递给对话框 以便执行用 户自己的事件处理函数 选择菜单 插入 类 进入 New Class 对 话框 如图所示 图 添加自己的套 接字类 选择或输入以下信息 Class Type 选择MFC Class Class Infoumation下的Name 输入CMySocket Class Infoumation下的Ba

10、se class 选择 CAsyncSocket 点击 OK 按钮 系统会自动生成CMySocket类对 应的包含文件MySocket h和MySocket cpp文件 在VC界面的Class View中就可以看到这个类 类CMySocket的定义 CMySocket的构造函数 CMySocket的析构函数 2 利用类向导ClassWizard为这个套接字类添加 响应消息的事件处理成员函数 点菜单View ClassWizard 进入类向导对话框 选择Message Maps 消息映射 卡 确认Class name是CMySocket 从Messages 消息 栏中选 择事件消息 然后点击Ad

11、d Function按钮 就会看 到在Member Function栏中添加了相应的事件处理 函数 如图所示 此程序中需要添加OnConnect OnClose和OnReceive三个函数 这一步会在 CMySocket类的MySocket h中自动生成这些函数的 声明 在MySocket cpp中生成这些函数的框架 以 及消息映射的相关代码 可参看后面的程序清单 图 为套接字类添加响应消息的事件处理成员函数 3 为套接字类添加一般的成员函数和成员变量 在VC 的界面中 在工作区窗口选择ClassView卡 用右键 单击CMySocket类 会弹出快捷菜单 选择其中的Add Member Fu

12、nction 可以为该类添加成员函数 选择Add Member Variable可以为该类添加成员变量 对这个套接字类 添加一个私有的成员变量 对话框类的指针 private CTalkcDlg m pDlg 图 为套接字类添加一般的成员变量 再添加一个成员函数 void SetParent CTalkcDlg pDlg 这一步同样会在MySocket h中生成变量或函数的声明 在 MySocket cpp中生成函数的框架代码 如果熟悉的话 这 一步的代码也可以直接手工添加 4 手工添加其他代码 在VC 的界面中 在工作区窗口选择FileView卡 双击要 编辑的文件 在右面的窗口中就会展示该

13、文件的代码 可以编 辑添加 对于MySocket h 应在文件开头 添加对于此应用程序对 话框类的声明 class CTalkcDlg 对于MySocket cpp 有四处添加 应在文件开头 添加包含文件说明 这是因为此套接字类用 到了对话框类的变量 include TalkcDlg h 在构造函数中 添加对于对话框指针成员变量的初始化代码 CMySocket CMySocket m pDlg NULL 在析构函数中 添加对于对话框指针成员变量的终止处理代 码 CMySocket CMySocket m pDlg NULL 为成员函数setParent和事件处理函数OnConnect OnCl

14、ose和OnReceive添加代码 详见后面的程序清单 5 为对话框类添加控件对象事件的响应函数 按照表 用类向导 Class Wizard 为对话框中的控件对象添加 事件响应函数 主要是对于三个按钮的单击事件的处理函数 如 图所示 其他函数是原有的 表 为对话框中的控件对象添加事件响应函数 控件类型对象标识 Object IDs消息 Messages函数Member functions 命令按钮IDC BUTTON CLOSEBN CLICKEDOnButtonClose 命令按钮IDC BUTTON CONNE CT BN CLICKEDOnButtonConnect 命令按钮IDOKBN

15、 CLICKEDOnSendMsg 图 为对话框类添加控件事件的处理函数 这一步会在talkcDlg h中自动添加这三个事件处理函数的声明 在talkcDlg cpp中生成消息映射的代码 和这三个函数的框 架代码 6 为CTalkcDlg对话框类添加其它的成员函数和成员变量 成员变量 CMySocket m sConnectSocket 用来与服 务器端连接的套接字 成员函数 void OnClose 用来处理与服务器端的通 信 void OnConnect void OnReceive 7 手工添加的代码 在CTalkcDlg对话框类的talkcDlg h中添加对于 MySocket h的包

16、含命令 来获得对于套接字支持 include MySocket h 在CTalkcDlg对话框类的talkcDlg cpp中添加对于控件变 量的初始化代码 TODO Add extra initialization here 用户添加的控件变量的初始化代码 BOOL CTalkcDlg OnInitDialog m strServName 127 0 0 1 m nServPort 1000 服务端口 1000 UpdateData FALSE 更新用户界面 设置套接字类的对话框指针成员变量 m sConnectSocket SetParent this 8 添加事件函数和成员函数的代码 主要在CTalkcDlg对话框类的talkcDlg cpp中和CMySocket 类的Mysocket cpp中 添加用户自己的事件函数和成员函数 的代码 要注意 这些函数的框架已经在前面的步骤中 由 VC 的向导生成 只要将用户自己的代码填入其中即可 9 进行测试 测试应分步进行 在上面的步骤中 每作一步 都可以试着编 译执行 3 客户端程序的类与消息驱动 图 Talkc客户端程序的类与消息驱动的关

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号