WebBrowser如何实现拖放保存图片 如题,现在在用 C++ 做一个东西,一个基于WebBrowser实现的聊天框,如何实现将里面的图片拖放保存到桌面或指定的文件夹?需要实现哪些接口? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 RECT rect ; Liulankuang.GetClientRect(&rect);//可以获得你的浏览控件的大小 CComQIPtr<IHTMLDocument2> pDoc;//假定你已经通过Liulankuang变量(CExplorer1)的变量得到文档 CComQIPtr<IHTMLElement> pElem; pDoc->elementFromPoint(鼠标相对位置X,鼠标相对位置Y,(void**)&pElem); if(!pElem)return E_FAIL; VARIANT pv; pv.vt = VT_BOOL; pElem->get_onmousedown(&pv); if(true == pv.boolVal) { BSTR ourterHTML; pElem->get_outerHTML(&ourterHTML); CString strHTML(ourterHTML); int pos = strHTML.Find(L"<img",0); //此处省略对连接地址的查找 CString Url;//假定找到地址 //创建文件夹 省略N个字 //活得文件名称 省略N个字 //假定URL和文件都存在 URLDownloadToFile(0,Url,L"d:\\down\\xxxx.xxx",0,0); }另外的一些 long left = Liulankuang.get_Left(); long width = Liulankuang.get_Width(); long top = Liulankuang.get_Top(); CPoint point = Liulankuang.GetCaretPos(); 可能对你有用 感谢你的回复,看了下代码,不是我的需求。目前的的研究结果是采用创建IDataObject对象,以及实现IDragSource接口,就相当于将图片或文字抑或其他的东西都通过IDataObject对象以及剪贴板的方式交付给windows系统处理,其他包括桌面、word均会实现IDropTarget接口并接受处理这个对象。目前我市卡在了针对图片文件如何创建IDataObject对象,文字是会了,停在这里很郁闷啊~~~ 挺起来很高深,我也没涉及过这样的领域,不过,图像你是以保存的方式做你的事情 还是以显示的方式,如果是现实的方式,或许你可以使用剪切板的CF_BITMAP等来对你已知领域(clipbrd)进行操作.暂时我不需要用到这方面的知识 应该马上就会用到 到时候再找你讨论^^ 前几天,工作中意外发现的,就是你现在找的。在IE窗口的父窗口中调用DragAcceptFiles();这样网页中的图片就可以向外拖了。我正在想办法如何禁掉这个功能呢。 真心希望高手解答,并不是想干坏事 [请教]界面切换 ShowWindow(SW_HIDE)未有效释放资源 设置画刷原点的目的是什么? 界面程序问题求助 关于监听套接字程序哪种项目问题 请问水平列出一些图片该怎么做啊 各位大哥,在VC++中有没有制作动态变化曲线的控件啊??(简单实用的) 终于把四级考完了,散分100以祝自己有个好运! 修改IDR_MainFrame 后对话框运行图标改变了,但执行文件本身的图标没变,why? 请教为对话框添加位图背景的问题 请教vc中用cwebBrowser2控件实现网页模拟点击的问题 word和excel什么时候能开源?
Liulankuang.GetClientRect(&rect);//可以获得你的浏览控件的大小
CComQIPtr<IHTMLDocument2> pDoc;//假定你已经通过Liulankuang变量(CExplorer1)的变量得到文档
CComQIPtr<IHTMLElement> pElem;
pDoc->elementFromPoint(鼠标相对位置X,鼠标相对位置Y,(void**)&pElem);
if(!pElem)return E_FAIL;
VARIANT pv;
pv.vt = VT_BOOL;
pElem->get_onmousedown(&pv);
if(true == pv.boolVal)
{
BSTR ourterHTML;
pElem->get_outerHTML(&ourterHTML);
CString strHTML(ourterHTML);
int pos = strHTML.Find(L"<img",0);
//此处省略对连接地址的查找
CString Url;//假定找到地址
//创建文件夹 省略N个字
//活得文件名称 省略N个字
//假定URL和文件都存在
URLDownloadToFile(0,Url,L"d:\\down\\xxxx.xxx",0,0);
}另外的一些 long left = Liulankuang.get_Left();
long width = Liulankuang.get_Width();
long top = Liulankuang.get_Top();
CPoint point = Liulankuang.GetCaretPos();
可能对你有用
目前我市卡在了针对图片文件如何创建IDataObject对象,文字是会了,停在这里很郁闷啊~~~
挺起来很高深,我也没涉及过这样的领域,不过,图像你是以保存的方式做你的事情 还是以显示的方式,如果是现实的方式,或许你可以使用剪切板的CF_BITMAP等来对你已知领域(clipbrd)进行操作.暂时我不需要用到这方面的知识 应该马上就会用到 到时候再找你讨论^^
在IE窗口的父窗口中调用DragAcceptFiles();这样网页中的图片就可以向外拖了。我正在想办法如何禁掉这个功能呢。