IHTMLImgElement接口应用 能不能从IHTMLImgElement接口,取得image元素的图像数据? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Using QueryInterface on your IHTMLImgElement you should be able to get a pointer to the IHTMLElementRender interface, then call DrawToDC in a memory DC. 试过了,从IHTMLImgElement接口能得到一个有效的IHTMLElementRender指针,但是从这个指针却只能得到一个空的HDC,当然就是无效的HDC..........郁闷! 用CreateCompatibleDC创建内存DC需要一个CDC指针参数,但这个CDC指针所指向的DC是程序父窗体的DC呢或是WEB控件的DC?抑或是img元素本身的DC?如果是最后一个,可就难了!楼上的高手,可不可省点时间,多费点笔墨,祥细指点指点?所谓的'诲人不倦',谢谢........... 内存DC啊!再SelectObject一个Compatible Bitmap进去,Draw之后你就可以取到图了。 CreateCompatibleDC的参数用NULL就行 CDC dc; dc.CreateCompatibleDC(NULL); CBitmap bmp; bmp.CreateCompatibleBitmap(&dc,400,400); HRESULT hre=pred->DrawToDC(dc.m_hDC); 其中pred是一个IHTMLELementRender指针。 结果还是不行呢??该.........? CDC dc; dc.CreateCompatibleDC(NULL); CBitmap bmp; bmp.CreateCompatibleBitmap(&dc,400,400); CObject* pold=dc.SelectObject(&bmp); //如下pred是一个IHTMLELementRender指针。然后.......... hre=pred->DrawToDC(dc.m_hDC); 结果还是不行呢??该.........? 用IHTMLImgElement::get_src获得url之后用RetrieveUrlCacheEntryFile去翻缓存IHTMLElementRender+DrawToDC在IE9下面不支持也可以创建一个只包含这个图像元素的control range然后把图像数据复制到剪贴板(http://support.microsoft.com/kb/293125) 楼上的你好。我不喜欢使用剪贴板。想请你说说'RetrieveUrlCacheEntryFile'这个函数须要预包含哪个头文件,以及其具体的使用方法(如参数及返回值,其实代码最能说明一切....),谢谢。 楼上的你好,根据你提供的网址,在微软的网站上找到了那段代码,真不敢相信那上面有那样丑陋的C++代码,不过,技术思想确实正确的,经我整理已经成功的把IMG元素的图像整到了剪贴板。谢谢。还想请楼上的说说‘翻缓存’的事,务请以代码明示,谢谢,到时会给多分的......... 居然还在问这种问题,你用的不是VC6吧?换个支持Windows 2000的Windows SDK。 楼上的你好,我用的是VC2008、IE8。根据你提供的网址,我在微软的网站上找到了那段代码,真不敢相信现在还有那样丑陋的C++代码,不过技术思想到是正确的,经我整理后已经实现了把IMG元素的图像考贝到剪贴板。但我对你的"翻缓存"很感兴趣,还望不吝赐教,最好是代码,代码最能说明一切..........谢谢! 就一个输入参数,两个输出参数而已……这也需要示例代码啊?输入的是要查的URL。 楼上的不妨就把代码展示出来,说祥细一点,省得我猜。还得请你原谅,我长期以来一直至力于研究C++语言及标准C++聊于兴趣,比较不屑于微软的东西。但现在觉得IE编程也挺好玩的,才想起搞这些名堂。还望楼上的老师一'吐'为快,省得我再去找资料、去猜半天..............谢谢,正准备给你分哦?........... http://www.google.com/codesearch#search/&q=RetrieveUrlCacheEntryFile%20lang:%5Ec%2B%2B$%20cpp&type=cs 下载了那个网址的代码。太长,改天有心情时再看。起码把IMG的图像整到剪贴板上了。还是给分。 脑子迷糊了,发送循环转不过来。。。 一个乘法拆分问题 vc6.0的ListCtrl隔行改变背景色与字体色用CustomDraw怎么做到? 如何通过VGA接口接收屏幕图像? 急问:vc中嵌入sse的问题 Socket::Sendto ()问题请教 请问 .caj是什么文件呀 用什么打开呢? 怎样关闭对话框? 谁会IDL 当我的VC注册ActiveX控件时,编译消息显示Registering ActiveX Control...时,不再进行 MFC 库冲突问题 如何清除Onpaint中上次绘制的内容
dc.CreateCompatibleDC(NULL);
CBitmap bmp;
bmp.CreateCompatibleBitmap(&dc,400,400);
HRESULT hre=pred->DrawToDC(dc.m_hDC); 其中pred是一个IHTMLELementRender指针。 结果还是不行呢??该.........?
CDC dc;
dc.CreateCompatibleDC(NULL);
CBitmap bmp;
bmp.CreateCompatibleBitmap(&dc,400,400); CObject* pold=dc.SelectObject(&bmp);
//如下pred是一个IHTMLELementRender指针。然后..........
hre=pred->DrawToDC(dc.m_hDC);
结果还是不行呢??该.........?
IHTMLElementRender+DrawToDC在IE9下面不支持
也可以创建一个只包含这个图像元素的control range然后把图像数据复制到剪贴板(http://support.microsoft.com/kb/293125)