毕业论文--基于vc的局域网聊天室设计与实现内容摘要:
indow SW_HIDE。 SetDlgItemText IDC_EDIT3,亡羊哺狼。 SetDlgItemText IDC_EDIT4,1025。 CBitmap bitmap。 IDB_BITMAP1。 0,SS_BITMAP。 HBITMAP。 return TRUE。 // return TRUE unless you set the focus to a control 代码中又涉及到了虚函数多态性,实现了动态联编。 先定义了个 CWnd 的指针。 CWnd 封装了函数 GetDlgItem ,这样对于其派生的比如编辑框类,静态文本类,按钮类等都继承了此函数。 这样只需 在最前面定义一个 CWnd 的指针就可以动态的获取相应消息。 这些代码首先对窗口进行了一些文本设置和某些窗口的隐藏。 还设置了服务器的昵称为 亡羊哺狼 void CTcpseverDlg::Onsend CString str,history。 GetDlgItemText IDC_EDIT1,history。 GetDlgItemText IDC_EDIT2,str。 str severname+:+str。 int len。 for int i 1。 i csnum。 i++ if csrev[i] if sended csrev[i].Send str,len SetDlgItemText IDC_EDIT2,。 SetDlgItemText IDC_EDIT1,history+\r\n+str。 CEdit *ce CEdit* GetDlgItem IDC_EDIT1。 ce LineScroll ce GetLineCount 1。 这是点击控件“发送”的消息响应函数。 函数先把以前聊天区的内容存储下来,再把其要发送的内和以前的内容都打印到屏幕上。 做完这些工作向各个登入用户发送信息。 图 8 用户登入后聊天图 void CTcpseverDlg::Onlisten CString ipstr,portstr。 int port。 GetDlgItemText IDC_EDIT3,ipstr。 severname ipstr。 GetDlgItemText IDC_EDIT4,portstr。 port atoi portstr。 if port 1024amp。 amp。 port 65536 SetDlgItemText IDC_listen,正在监听„„。 if port。 this,csnum。 CWnd *cw GetDlgItem IDC_EDIT3。 cw EnableWindow false。 cw GetDlgItem IDC_EDIT4。 cw EnableWindow false。 cw GetDlgItem IDC_listen。 cw EnableWindow false。 cw GetDlgItem IDC_EDIT1。 cw SetWindowText 本服务器名称为 : +severname+\r\n 正在后台等待用户连接 ,监听端口 :+portstr+„„。 else MessageBox 绑定监听端口失败 ,请确认该端口没有被其它程序占用。 CString strServ,strPort。 CWnd* wnd。 wnd GetDlgItem IDC_EDIT3。 wnd GetWindowText strServ。 wnd GetDlgItem IDC_EDIT4。 wnd GetWindowText strPort。 wnd GetDlgItem IDC_SERVINFORM。 wnd SetWindowText \n**************** 服务器名称:\n+strServ+\n\n 端口号 : +strPort+\n\n 协议类型: TCP\n 传输控制协议\n****************。 else MessageBox 端口输入有误 ,请重新输入。 前面一部分代码捕捉了端口号,但是端口号是以字符串的形式处理的,而不是数字。 函数 TrimLeft 和 TrimRight 分别意为裁掉该端口字符串的左边空格和右 边空格。 这样防止了用户某些习惯性输入错误。 当正确输入端口号后,创建了一个监听套接字并对端口进行监听。 然后通过 EnableWindow 把某些窗体设置为不可点击。 最后再把信息反馈到屏幕上打印出来。 右边有个图片设置,可以点击图片更改到下一幅。 再下面就是服务器信息。 打印出了服务器的监听端口号,昵称等等,这些由程序动态获取。 最后是个公告信息,可以直接点击进行编辑。 贴出部分实现代码: void CTcpseverDlg::OnPic static int index。 index++。 index index%5。 CBitmap bitmap。 int bit[5] IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP5。 bit[index]。 0,SS_BITMAP。 HBITMAP。 这是点击改变图片的代码,在 VC 中, ID 号其实就是一些整数的标记,把 ID存 入一个整型数组中,实现没点击图片一次自动更换 ID。 这样可以实现动态改变图片。 void CTcpseverDlg::OnMarkst CWnd* wnd。 CString str。 wnd GetDlgItem IDC_MARKST。 wnd GetWindowText str。 wnd ShowWindow SW_HIDE。 wnd GetDlgItem IDC_MARK。 wnd ShowWindow SW_SHOW。 wnd SetWindowText str。 这是公布框的设计,其实在同一区域中摆放了两个控件,一个静态文本,一个编辑框。 在设计的过程中对话框的初始化函数中对两个控件做了设置。 将静态文本显示,编编辑框隐藏,并且设置静态文本中的内容和编辑框一样。 这样当启动服务端后显示出来的就是静态文本了,这样比较美观。 上面函数意思为当点击静态文本时,先获取文本中的内容,然后将其隐藏。 再将编辑框显示出来,设置编辑框中的内容为开始获取的静态文本中内容。 这样就可以和设置心情一样的设置文本内容了。 这样实现起来比较简单,方便,无需弹出一个对话框设置。 设置好文本后,点击编辑框以外的任何地方,都可以把内容做更新。 然后隐藏编辑框,显示静态文本。 这样就要建立一个系统响应函数,对 MouseClick 消息做一个捕获。 代码见下: void CTcpseverDlg::OnLButtonDown UINT nFlags, CPoint point CWnd* wnd。 CString str。 wnd GetDlgItem IDC_MARK。 wnd GetWindowText str。 wnd ShowWindow SW_HIDE。 wnd GetDlgItem IDC_MARKST。 wnd ShowWindow SW_SHOW。 wnd SetWindowText str。 CDialog::OnLButtonDown nFlags, point。 该函数当点击对话框时会被系统自动调用,函数将编辑框中上的内容设置到了静态文本中,然后显示静态文本,隐藏了编辑框。 有一个问题就是在初始化函数中为什么要将静态文本的内容复制到编辑框中呢。 这个必须要复制的,不然在启动程序后任何时候点击对话框都会将静态文本内容置空。 这个可以去 理解一下。 下图显示了点击公告栏和图片后的情况: 图 9 修改资料效果图 在服务器中有个” ”收缩符号,当点击它以及它所在位置的垂直方向时可以把右边区域收缩起来。 这样可以去掉不是很关心的内容。 当点击后,侧边栏又显示出” ”符号。 再次点击又会还原出来。 图 10 精简视图 void CTcpseverDlg::OnShow // TODO: Add your control notification handler code here CString str。 static CRect rectLarge。 static CRect rectSmall。 CRect rectSeparate。 if GetWindowRect amp。 rectLarge。 GetDlgItem IDC_SEPARATE GetWindowRect amp。 rectSeparate。 if GetDlgItemText IDC_SHOW,str ,str \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n str \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n。 SetDlgItemText IDC_SHOW,str。 SetWindowPos NULL,0,0, , ,SWP_NOMOVE|SWP_NOZORDER。 else str \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n。 SetDlgItemText IDC_SHOW,str。毕业论文--基于vc的局域网聊天室设计与实现
相关推荐
2 探讨了 ASP 技术的五个主要的内置对象和 ActiveX 服务器组件在学校新闻发布系统中的应用,并介绍了如何利用 ASP 技术向数据库添加、修改和删除数据。 3 重点讨论了如何利用数据库访问组件, ADO 技术实现新闻数据库与服务器的连接,并利用其属性和方法完成对新闻的访问。 4 详尽介绍了新闻发布系统的总体框架、工作流程和系统使用的主要技术。 全文概要 第一章
存信号ALE 在每个机器周期中两次有效一次在 S1P2 与 S2P1 期间另一次在 S4P2 与 S5P1期间 对于单周期指令当操作码被送入指令寄存器时便从 S1P2 开始执行指令如果是双字节单机器周期指令则在同一机器周期的 S4 期间读入第二个字节若是单字节单机器周期指令则在 S4 期间仍进行读但所读的这个字节操作码被忽略程序计数器也不加 1在 S6P2结束时完成指令操作图 17的 a 和 b
for int i 0。 i 31。 i++ i + 1 .ToString。 else //其他月份则为 30 天 for int i 0。 i 30。 i++ i + 1 .ToString。 protected void Button2_Click object sender, EventArgs e //把出生年月转换为时间 if ! 0 amp。 amp。 ! 0 amp。 amp。
利用 PLC 的高速计数功能网络通信功能故障检测及诊断功能信号显示功能等来增加一些新的控制功能安全性将大大提高运行将更加平稳准确完全能够满足矿山生产的苛刻要求而且投资相对较少性价比较高具有很强的实用价值 调速装置 矿井提升机从电力拖动而言可分为交流拖动和直流拖动两大类我国目前正在服务的矿井提升机的电控系统中属于交流拖动的有转子电路串电阻的调速系统属于直流拖动的有直流 发电机与直流电动机组成的
模具工作者的经验,仅凭计算机的数值计算功能去完成诸如模具设计方案的选择、工艺参数与模具结构的优化、成型缺陷的诊断以及模具成形性能的评价是不现实的。 新一代模具 CAD/CAE/CAM系统正在利用 KBE(基于知识的工程)技术进行脱 胎换骨的改造。 知识集成的主要目的是将分散的知识按照一定的逻辑规则有机的结合起来,使知识有序化、层次化,从而高效地利用知识资源,有利于知识创新。
期间,为检测工程建筑物的安全情况,了解设计是否合理,验证设计理论是否正确,需要对工程建筑物的水平位移,沉陷、倾斜以及摆动等进行定期或持续的检测。 这些工作,就是通常所说的变形检测。 对于大型的工业设备,还要进行经常性的检测和调校,以保证其 设计安全运行。 为了对工程进行有效的管理、维护,为了日后扩展的需要,还应建立工程信息系统。 土木工程勘测设计阶段测量工作