QQ/MSN在传送图文混排信息的时候,大多是将图片转换成特殊符号再传送出去的,因为如果直接把16制的图片信息连同文字一起传送,信息量可能太大,那么怎么样实现呢?
例如用richtextbox来实现图象和文字混排,将图象插入到richtextbox中可以用:
1.复制剪贴板里的图象内容
2.利用OLEobjects.add方法
问题是:
1.如何将特殊符号替换成相应的图片进行显示?
2.因为OLEobjects.add方法使用的时候会调用ole容器里的相应程序,如何避免?
3.如何才能保证复制到richtextbox里的图片不能被拖放大小?
4.有没有其他方法可以实现类似QQ/MSN的信息处理模式?问题很多,先写到这里,讨论过程中发现问题再提出来。

解决方案 »

  1.   

    先看看这个代码吧
    可以动态地把『:)』替换成笑脸图片http://www.5ivb.net/down/20/5ivb_1591.asp
      

  2.   

    谢谢你的回复,这个方法我知道,它模拟的是当信息接收到的时候将特殊字符转换成图片,但是问题是,当MSN/QQ在输入信息的时候就已经将特殊字符转换成了图片显示出来,而发送信息的时候却又是将特殊字符传递过去的,这就是问题,因为将特殊符号转换成图片的时候,这个时候TEXTRTF就已经记录了图片信息,为了转换方便,最容易想到的就是有一个RTFBUFFER在记录原始信息,那么它是怎样记录编辑(输入)过程中的图片在文字中的位置的?而且当编辑信息时如果将图片位置移动,删除时又是如何修改这个RTFBUFFER的?同时如果图片是怎样插入到RICHTEXTBOX里,才能确保图片不能被拖放大小,而且不能复制MSN/QQ规定范围外的图片……………………
      

  3.   

    难道对QQ/MSN原理感兴趣的人这么少?
      

  4.   

    wo 我研究1个月的结果,使用的是html而不是文本,而且处理上很复杂,我基本上已经试验通过了,但是是公司的代码不能给你共享,可以告诉你采用的是dhtml控件
      

  5.   

    呵呵,满分相送!如果用DHTMEDIT来做当然可以,我已经实现了,但是这里面有个问题:如果使用者将带有恶意代码的FLASH和GIF一起复制过来,那么显示的时候如果用的是webbrowser,那就麻烦了,呵呵继续探讨……
      

  6.   

    因为DHTML支持显示其他网站上图片,(如果图片用的是绝对路径),那么当你从其他网页上COPY一个绝对路径的图片的时候,就可以复制到你的“信息输入框”,那么发送HTML信息过去后,对方也能看到这个图片,但是,如果这个图片含有恶意代码或病毒,那不就很麻烦了?
      

  7.   

    而QQ/MSN是不允许复制来自其他地方的图片的
      

  8.   

    QQ可以啊...QQ可以支持从剪贴板中的内容复制到里边!
      

  9.   

    回复人: fping() ( ) 信誉:100  2005-03-14 12:58:00  得分: 0  
     
     
       而QQ/MSN是不允许复制来自其他地方的图片的
      
     
    哪他就一定有个图片库
      

  10.   

    to zyg0(影子(如影随行) :
    你是如何实现表格垂直合并的啊?还有其他OLE控件的插入?
      

  11.   

    我有个提示,(因为我自己都不是很清楚对不) DHTML可以啊,安全嘛~UBB code怎么样?
      

  12.   

    QQ的确采用RichEdit,但牵涉到底层的OLE操作, 这种操作在VB里是实现不了的。如果想简单一些就用WebBrowser来实现好了。
      

  13.   

    http://www.vckbase.com/document/viewdoc/?id=1087
      

  14.   

    我的Blog上可能有两篇文章有点用:
    http://blog.csdn.net/dtianx
      

  15.   

    又发现一个问题:使用DHTMLEdit控件,为什么老是提示安装OFFICE,但是不安装OFFICE也照样可以使用这个控件,请问要打包程序控件才不会提示OFFICE安装呢?发布后客户也会遇到这样事情,总不能要求客户安装你的系统后再安装office吧?
      

  16.   

    我仔细看看,发现如果安装office的时候安装好了HTML编辑器,或选择不安装HTML编辑器,应用程序都不提示安装office,而且可以使用,偏偏奇怪的是,office默认安装,选择HTML编辑器是:“第一次使用安装”,那这个时候一运行程序就要跳出“需要office安装盘”的窗口了,但是如果关掉“需要office安装盘”的窗口,程序仍然可以使用,DHTML控件使用不受什么影响
      

  17.   

    那个是盗版office的问题,你把office安装盘安上 让他安装一遍,以后就不会再出现了
      

  18.   

    就算是盗版office,只要安装的时候选择HTML编辑器安装或不安装都没问题,一旦选择"第一次使用安装"就会有这个现象,所以我不这么认为
      

  19.   

    关于这个DHTMLED.OCX的问题有了进一步的进展,参考下面的文章:
    http://support.microsoft.com/default.aspx?scid=kb;zh-cn;304107
    这就是microsoft做的烂东西,可是有什么办法可以用VB来把安装信息从注册表里改掉吗?