现有一个PictureBox响应拖放事件,并将拖放的内容(来自word或网页,包含文字、图片和表格)显示在RichTextBox控件中,如同在word中拖放的效果一样。可是响应PictureBox的OLEDragDrop事件时,无法用Data.GetData(vbCFRTF)识别,有什么办法解决?

解决方案 »

  1.   

    试试
    Data.GetData(vbCFRTF)
    换为
    Data.GetData(-16)
      

  2.   

    sorry!-16也不行参考一下RTF的转换
    http://search.csdn.net/Expert/topic/2595/2595831.xml?temp=8.420962E-02
      

  3.   

    这-16害我VB6死了 ~~T T~~剪贴板常数就只有这些吧~Constant        Value   Description 
    =======================================================
    vbCFRTF         -16639  Rich Text Format (.rtf file) 
    vbCFLink        -16640  DDE conversation information 
    vbCFText        1       Text (.txt file) 
    vbCFBitmap      2       Bitmap (.bmp file) 
    vbCFMetafile    3       Metafile (.wmf file) 
    vbCFDIB         8       Device-independent bitmap 
    vbCFPalette     9       Color palette 
    vbCFEMetaFile   14      Enhanced metafile (.emf file) 
    vbCFFiles       15      File list from Windows Explorer
      

  4.   

    Data.GetData(vbCFRTF)的意思是拖动源为Rich Text
    然后取这个源中的数据
    而不是把这个放到Rich Text中去
    是不是这里搞错了?
      

  5.   

    楼上理解的不对,RichText是用来显示拖放的东西,当然如果有其它控件能显示也行。
    现在我从网页中拖动包含文字和图片的一块内容到图片框,用Data.GetFormat测试数据类型,只有vbCFText一项为真,从word中拖动的文字+图片,有三项为真:vbCFText:True、vbCFMetafile:True、vbCFRTF:True,测试内容为 AprilSong(X) 提供的常数列表。如何才能像word一样接受来自网页的拖动内容呢?
      

  6.   

    我的意思是要么OLEStartDrag是RichTextBox发起的
    要么用SetData加了vbCFRTF格式的内容到Data中去
    才能用Data.GetData(vbCFRTF)取出vbCFRTF格式的数据至于要『像word一样接受来自网页的拖动内容』……
    试着多拖一点东西看看
    明显可以感觉得出格式转换用了不少时间
    肯定不是Data.GetData这么简单
    不明白怎么实现的……