我现在要实现一个拖拽操作,但是开始拖拽的时候DoDragDrop总是返回失败,请教大侠们到底是什么原因
代码如下:
HGLOBAL hData = GlobalAlloc(GHND|GMEM_SHARE, sizeof(CRealImageDlg));
if(hData != NULL)
{
memcpy(GlobalLock(hData), this, sizeof(CRealImageDlg));
GlobalUnlock(hData);
COleDataSource source;
source.CacheGlobalData( CF_TEXT, hData );
DROPEFFECT drop = source.DoDragDrop( DROPEFFECT_COPY);
}

解决方案 »

  1.   

    你这个不好看,看不出问题
    如果这个方法不行你可以考虑用别的方法实现拖拽
    你可以去看看微软自己写的drawcli,封装了几个类,调用起来也很简单
    现在工控软件开发很多都是以这个为模板开发的图形组态。
      

  2.   

    sizeof一个类,不知道是否有问题。
      

  3.   

    sizeof一个类没问题的,类里面也有变量和地址
    sizeof(int) int也是一种数据类。
      

  4.   

    俺刚抄完一个拖拽文本的例子,那里面使用的是CF_TEXT,你这个是不是要换一下?
      

  5.   

    声明一个COleDropTarget,然后droptarget.register( this )
      

  6.   

    COleDropTarget是拖拽的目标了,这里是拖拽源都失败了,还没有到拖拽目标那