能不能从IHTMLImgElement接口,取得image元素的图像数据?

解决方案 »

  1.   

    Using QueryInterface on your IHTMLImgElement you should be able to get a pointer to the IHTMLElementRender interface, then call DrawToDC in a memory DC.
      

  2.   

    试过了,从IHTMLImgElement接口能得到一个有效的IHTMLElementRender指针,但是从这个指针却只能得到一个空的HDC,当然就是无效的HDC..........郁闷!
      

  3.   

    用CreateCompatibleDC创建内存DC需要一个CDC指针参数,但这个CDC指针所指向的DC是程序父窗体的DC呢或是WEB控件的DC?抑或是img元素本身的DC?如果是最后一个,可就难了!楼上的高手,可不可省点时间,多费点笔墨,祥细指点指点?所谓的'诲人不倦',谢谢...........
      

  4.   

    内存DC啊!再SelectObject一个Compatible Bitmap进去,Draw之后你就可以取到图了。
      

  5.   

    CreateCompatibleDC的参数用NULL就行
      

  6.   

     CDC dc;
       dc.CreateCompatibleDC(NULL); 
       CBitmap bmp;
       bmp.CreateCompatibleBitmap(&dc,400,400); 
      
       HRESULT hre=pred->DrawToDC(dc.m_hDC);    其中pred是一个IHTMLELementRender指针。   结果还是不行呢??该.........?
      

  7.   


       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); 
      
      结果还是不行呢??该.........?
      

  8.   

    用IHTMLImgElement::get_src获得url之后用RetrieveUrlCacheEntryFile去翻缓存
    IHTMLElementRender+DrawToDC在IE9下面不支持
    也可以创建一个只包含这个图像元素的control range然后把图像数据复制到剪贴板(http://support.microsoft.com/kb/293125)
      

  9.   

    楼上的你好。我不喜欢使用剪贴板。想请你说说'RetrieveUrlCacheEntryFile'这个函数须要预包含哪个头文件,以及其具体的使用方法(如参数及返回值,其实代码最能说明一切....),谢谢。
      

  10.   

    楼上的你好,根据你提供的网址,在微软的网站上找到了那段代码,真不敢相信那上面有那样丑陋的C++代码,不过,技术思想确实正确的,经我整理已经成功的把IMG元素的图像整到了剪贴板。谢谢。还想请楼上的说说‘翻缓存’的事,务请以代码明示,谢谢,到时会给多分的.........
      

  11.   

    居然还在问这种问题,你用的不是VC6吧?换个支持Windows 2000的Windows SDK。
      

  12.   

    楼上的你好,我用的是VC2008、IE8。根据你提供的网址,我在微软的网站上找到了那段代码,真不敢相信现在还有那样丑陋的C++代码,不过技术思想到是正确的,经我整理后已经实现了把IMG元素的图像考贝到剪贴板。但我对你的"翻缓存"很感兴趣,还望不吝赐教,最好是代码,代码最能说明一切..........谢谢!
      

  13.   

    就一个输入参数,两个输出参数而已……这也需要示例代码啊?输入的是要查的URL。
      

  14.   

    楼上的不妨就把代码展示出来,说祥细一点,省得我猜。还得请你原谅,我长期以来一直至力于研究C++语言及标准C++聊于兴趣,比较不屑于微软的东西。但现在觉得IE编程也挺好玩的,才想起搞这些名堂。还望楼上的老师一'吐'为快,省得我再去找资料、去猜半天..............谢谢,正准备给你分哦?...........
      

  15.   

    http://www.google.com/codesearch#search/&q=RetrieveUrlCacheEntryFile%20lang:%5Ec%2B%2B$%20cpp&type=cs
      

  16.   

    下载了那个网址的代码。太长,改天有心情时再看。起码把IMG的图像整到剪贴板上了。还是给分。