欢迎来到天天文库
浏览记录
ID:27202707
大小:2.00 MB
页数:76页
时间:2018-12-01
《仿qq设计程序教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章MyQQ的设计8.1项目的创建8.2数据包的设计8.3主界面的设计8.4聊天窗口的设计8.5读者完成部分知识点链接L8.1项目的创建L8.3主界面的设计L8.5读者完成部分1.MyQQ的介绍当双击所要聊天对象时弹出聊天窗口,聊天窗口如图8.2所示,用于发送信息和显示聊天信息。图8.1MyQQ主界面图8.2聊天窗口2.所要掌握的主要知识点(1)网络通信知识点,Socket、TcpListener、TcpClient和UdpClient类。(2)线程知识点,Thread类。(3)熟悉ListView控件、NotifyIco
2、n组件的使用。8.1项目的创建MyQQ应用程序主要讲述网络通信和多线程,包括主界面窗体和聊天窗口窗体这两个窗体,主界面主要显示在线的人物以及选择聊天对象,聊天窗口用于发送聊天信息和接受聊天信息。此项目中同时还包括封装数据包的类DataPacket。项目的创建步骤:1.创建项目运行VS2008,执行【文件】→【新建】→【项目】命令,在弹出的“新建项目”对话框中选中“Windows窗体应用程序”模板,选择项目存放位置并输入项目名称为“MyQQ”,单击“确定”按钮完成项目的创建。2.添加窗体打开“解决方案资源管理器”窗口,右击项目
3、名“MyQQ”,依次执行快捷菜单中的“添加”→“新建项”命令,在弹出的“添加新项”对话框中选中“Windows窗体”模板,使用默认名称“Form1”,单击“添加”按钮完成窗体的添加。按照同样的方法再添加一个窗体,使用默认命名。其中“Form1”为主界面窗体,“Form2”为聊天窗口窗体。8.1项目的创建3.添加类DataPacket在“解决方案资源管理器”窗口中,右击项目名“MyQQ”,依次执行快捷菜单中的“添加”→“新建项”命令,在弹出的“添加新项”对话框中选中“类”模板,命名为“DataPacket.cs”并单击“添加”
4、按钮。到此完成了整个项目的创建。8.2数据包的设计数据包格式包括“命令号”、“发送端IP”、“用户名长度”、“用户名”、“接受端IP”和“内容”6个部分。命令号是说明此数据包用于所要执行的任务,发送端IP是指发送信息端的IP地址,用户名为发送端的用户名,用户名的字节数是指发送端的用户名的字节数,接受端IP是指所要发送到对方的IP地址,内容是指数据包所附带的信息。数据包的结构如图8.3所示。图8.3数据包结构8.2数据包的设计设计步骤:1.添加命名空间打开类DataPacket,因为此类中涉及网络,所以要添加如下命名空间:us
5、ingSystem.Net;2.添加其他代码代码如下。8.3主界面的设计主界面窗体运行后如图8.1所示,通过ListView控件和ImageList显示在线的人物以及选择聊天对象,通过StatusStrip控件显示在线人数以及包括“上线”和“下线”功能。设计步骤:1.添加控件和组件在解决方案资源管理器中打开“Form1.cs”。将Form1窗体调整到适当大小,从工具箱中拖放1个“NotifyIcon”组件、1个“ListView”和1个“ImageList”控件到此窗体中。参考图8.1所示摆放控件。8.3主界面的设计2.设置
6、窗体和控件组件的属性Form1的Text属性值设置为“MyQQ”,Icon设置为已经准备好的图标,MaximizeBox设置为“False”。(1)notifyIcon1的属性设置。Icon选择已经准备好的图标,Text设置为“MyQQ”。(2)imageList1的属性设置。在其属性窗口中打开“”按钮图标,弹出“图像集合编辑器”窗口,分别添加一些用于显示聊天对象的图标,如图8.4所示。图8.4图像集合编辑器8.3主界面的设计(3)listView1的属性设置。打开listView1属性窗口,FullRowSelect和Vi
7、ew属性值分别设置为“True”和“Title”,MultiSelect设置为“False”,StateImageList属性选择为“imageList1”,Columns集合中分别添加3个“columnHeader”成员。(4)statusStrip1的设置。分别添加一个“toolStripStatusLabel”和一个“toolStripDropDownButton”。toolStripStatusLabel1的Text属性设置为“在线人数人”,选中toolStripDropDownButton1Text,分别添加“上线
8、”和“下线”选项,如图8.5所示,Image选择准备好的图标。图8.5添加上下线8.3主界面的设计3.添加事件及代码主窗口窗体包含有“窗体加载”、“上线”、“下线”、“选择聊天对象”和“调整大小”事件。(1)添加命名空间。因为涉及线程和网络的操作,所以添加命名空间如下:usingSyste
此文档下载收益归作者所有