首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

自定义拖放,传自定义结构的有关问题

2012-01-14 
自定义拖放,传自定义结构的问题。1开始拖放COleDataSourceOleDataSrcHGLOBALhgDropDROPFILES*pDropFiles

自定义拖放,传自定义结构的问题。
1   开始拖放

COleDataSourceOleDataSrc;
HGLOBALhgDrop;
DROPFILES*pDropFiles;
FORMATETCFormat   =   {CF_HDROP/*|CF_TEXT*/,   NULL,   DVASPECT_CONTENT,   -1,   TYMED_HGLOBAL   };

    int   BufSize   =   ;//

        //Allocate   memory   from   the   heap   for   the   DROPFILES   struct.
        hgDrop   =   GlobalAlloc(GHND,   BufSize);
        if(hgDrop   ==   NULL)
{
return   0;
}

//锁
        pDropFiles   =   (DROPFILES*)GlobalLock(hgDrop);
        if(pDropFiles   ==   NULL)
{
                GlobalFree(hgDrop);
                return   0;
}


TCHAR   *pBuf   =   (TCHAR   *)((LPBYTE(pDropFiles)   +   DropSize));
//把自定义的结构copy到pBuf的后面。


GlobalUnlock(hgDrop);
OleDataSrc.CacheGlobalData(CF_HDROP,   hgDrop,   &Format);

2   拖放结束
    在OnDropFiles(HDROP   hDropInfo)中得到结构。

发现得到的结构不对。

3   有知道的朋友说下:
    3.1   可以这样传自定义结构么?
    3.2   我发现   hDropInfo   这个地址,在开始拖放   和   拖放结束   中不一样。这是正常的么?

4   谢谢。


 


[解决办法]
OnDropFiles(HDROP hDropInfo)
怎么写的?
HGLOBAL hg = pDataObject-> GetGlobalData ( CF_HDROP );
这样看看

热点排行