QQ聊天工具开发碰到的几个难题。。。 本帖最后由 laj0600310219 于 2010-11-08 17:34:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关闭A窗体的时候可以判断 B窗体是否已经打开。From2 frm;if (frm== null || frm.IsDisposed) { } 1.richtextbox可以当容器使用, PictureBox pb = new PictureBox(); pb.Image = (new Icon("App.ico")).ToBitmap(); this.richTextBox1.Controls.Add(pb);这个PictureBox弹出菜单,保存PictureBox的内容就行了2.肯定要存在前电脑上,多个头像,就是多个用户,分开不同的目录或文件,读出来肯定不混杂3.那是特殊的窗体4.用线程 1、在richtextbox中,对方发过来的图片,如何实现右键保存到本地的功能?如何取得选中的图片? 右键选中并保存吧,你应该能获取当前的图片(一个对象)2、对方发信息过来的时候,一般都会有头像跳动提示。当点击跳动的头像的时候,就弹出聊天窗口,但是如果不点击头像的时候,对方发送过来的信息,该怎么处理?是保存在本地,点击窗口的时候,再读取到窗口中,还是怎么处理?但是如果有多个头像在跳动的时又该怎么处理?未接收的消息保存到服务器和本地,当接收了,从服务器删除消息,多个头像跳动就排队吧,弹出一个窗口再弹出另一个窗口3、系统托盘的弹窗是怎么实现的?C#很简单,就一个NotifyIcon控件(好像叫这个名字)4、有一父窗体A,在A中new了一个子窗口B。怎么实现在关闭A的同时,B也一起关闭?望高手指点迷津谢过(关闭A的时候,B自然会关闭,不用担心) frm是窗口A中的某个按钮中实例化的,属于局部变量,所以,在关闭事件中,对于局部变量是不能引用的所以这个方法好像不太可行 之前也有试过类似的方法,但是报错,说richtextbox不能当容器使用 1. 不会RichTextbox。对于较轻、需要跨平台、跨不同应用程序的聊天消息显示,使用web browser来显示更合适一点点。2. 不知道你问什么。保存在本地或者不保存,没有什么太大的区别。你说的“对方发送过来的消息”,我猜你第一个感觉设计就是这个消息push到了客户端,那么就没有必要修改成客户端再去取消息的机制。(但是你确实深入一步想到如何push消息了吗?如果没有定好就这样做,就不要轻易用这个词汇来说明业务)3和4并非一个产品的设计师所考虑问题,属于临时编程不会时简单goolgle一下然后几分钟可能就能解决的问题。 回答能回答的:2.没读的信息在数据库有个状态,只有当双击时那个状态才会改,否则你现在登录看到是未读状态时,图像还得闪,当然这状态是保存在服务器的,如果有多个也只不过是对应多条记录对应多个用户ID 只是状态是未读的,都闪。4.这也不难,因为他们都处于同一父窗体中,所以你很容易拿到父窗体,然后用父窗体对像.Controls 这样可以拿出父窗体下的所有控件,用FOREACH 用每个对象.Name 如果 NAME等于A and .getType()=="Form" 的话,就将对象obj as Form 然后obj.close();就行了。3.应该也不难,在网上找下资料就能找到。1.的话可能会难点,考虑到对图像流的操作,GOOGLE一下吧。呵。个人感觉,希望对你有帮助。 1、我采用的是将图片也以rtf的格式与文本信息一起发送的,发送到对方之后,也是直接读取rtf格式在richtextbox中显示出来,所以,要实现右键保存图片就不知道该怎么获取到图片的对象 1.RichTextBox嵌入图片,实际上是嵌入的一个Ole对象, 创建Ole对象时, 订约相应事件2.有消息时,托盘处图标闪动,实际上是多个图标, 循环显示而已,剩下的问题都很简单吧, 对于一个聊天系统而言,这些都是一些细节问题问题4更不是问题, 父窗口关闭时, 子窗口会自动关闭的. 建议不要传Rtf, 体积太大,不适合在网络上传输, 传输表情,可以仅传输表情相对应的表情符号. 表情就是传输对应的符号图片也考虑过以文件的形式传输,传输到对方之后,保存到本地,再从本地读取显示到richtextbox中这样效率是要比rtf快许多 计算器求助 UltraTextEditor的Text属性问题 有30个文件下载地址,怎么让3个线程同时下载,每个线程分别下载10个地址呢? c#中模式窗体隐藏后怎么显示? vs.net2005 中word 打印问题? 请问数字的十六进制表示 C# 为什么我只使用了sqlcommand,但是会报错“已有打开的与此命令相关联的 DataReader,必须首先将它关闭。” 关于如何不让3721屏蔽页面的问题 ===大家有没有调试Windows服务的工具或好的方法,介绍一下=== 如何开发类QQ聊天软件? 江湖告急 关于nhibernate 使用问题
From2 frm;
if (frm== null || frm.IsDisposed)
{
}
PictureBox pb = new PictureBox();
pb.Image = (new Icon("App.ico")).ToBitmap();
this.richTextBox1.Controls.Add(pb);
这个PictureBox弹出菜单,保存PictureBox的内容就行了
2.肯定要存在前电脑上,多个头像,就是多个用户,分开不同的目录或文件,读出来肯定不混杂
3.那是特殊的窗体
4.用线程
右键选中并保存吧,你应该能获取当前的图片(一个对象)
2、对方发信息过来的时候,一般都会有头像跳动提示。当点击跳动的头像的时候,就弹出聊天窗口,但是如果不点击头像的时候,对方发送过来的信息,该怎么处理?是保存在本地,点击窗口的时候,再读取到窗口中,还是怎么处理?但是如果有多个头像在跳动的时又该怎么处理?
未接收的消息保存到服务器和本地,当接收了,从服务器删除消息,多个头像跳动就排队吧,弹出一个窗口再弹出另一个窗口3、系统托盘的弹窗是怎么实现的?
C#很简单,就一个NotifyIcon控件(好像叫这个名字)4、有一父窗体A,在A中new了一个子窗口B。怎么实现在关闭A的同时,B也一起关闭?望高手指点迷津谢过(关闭A的时候,B自然会关闭,不用担心)
2.没读的信息在数据库有个状态,只有当双击时那个状态才会改,否则你现在登录看到是未读状态时,图像还得闪,当然这状态是保存在服务器的,如果有多个也只不过是对应多条记录对应多个用户ID 只是状态是未读的,都闪。4.这也不难,因为他们都处于同一父窗体中,所以你很容易拿到父窗体,然后用父窗体对像.Controls 这样可以拿出父窗体下的所有控件,用FOREACH 用每个对象.Name 如果 NAME等于A and .getType()=="Form" 的话,就将对象obj as Form 然后obj.close();就行了。
3.应该也不难,在网上找下资料就能找到。
1.的话可能会难点,考虑到对图像流的操作,GOOGLE一下吧。呵。
个人感觉,希望对你有帮助。
2.有消息时,托盘处图标闪动,实际上是多个图标, 循环显示而已,
剩下的问题都很简单吧, 对于一个聊天系统而言,这些都是一些细节问题
问题4更不是问题, 父窗口关闭时, 子窗口会自动关闭的.
建议不要传Rtf, 体积太大,不适合在网络上传输, 传输表情,可以仅传输表情相对应的表情符号.