相关疑难解决方法(0)

如何将WebBrowser呈现给设备上下文?

我想将网页(即TWebBrowser)呈现给设备上下文.我想使用Internet Explorer的布局引擎将内容呈现给设备上下文(即图元文件,pdf图元文件).


从Internet Explorer 9开始,IHTMLElementRender不再支持该接口:

IHTMLElementRender接口

使用此接口将元素的内容绘制到指定的设备上下文,通常是打印机.

会员
IHTMLElementRender接口从继承的IUnknown接口,但没有其他成员.

至于他们不再提及DrawToDC方法甚至存在:

IHTMLElementRender :: DrawToDC方法

已过时.将元素的内容绘制到指定的设备上下文.

句法

HRESULT DrawToDC(
     HDC hDC
);
Run Code Online (Sandbox Code Playgroud)

参数

  • hDC
    [in] 指定要绘制的设备的HDC,通常是打印机.

回报价值

如果成功则返回S_OK,否则返回错误值.

备注

从Windows Internet Explorer 9开始,不推荐使用此方法,不应使用此方法.

对于某些打印机,运行IHTMLElementRender :: DrawToDC可能会导致问题.通过首先运行IHTMLElementRender :: SetDocumentPrinter方法,然后将修改后的设备上下文传递给IHTMLElementRender :: DrawToDC,可以确保IHTMLElementRender :: DrawToDC在所有打印机上正常工作.

注意:我引用了所有文档,以便在Microsoft最终将其从MSDN中完全删除时仍可以找到它.随着接口声明:

IHTMLElementRender = interface(IUnknown)
   ['{3050F669-98B5-11CF-BB82-00AA00BDCE0B}']
   function DrawToDC(hdc: HDC): HResult; stdcall;
   function SetDocumentPrinter(const bstrPrinterName: WideString; hdc: HDC): …
Run Code Online (Sandbox Code Playgroud)

delphi winapi rendering delphi-5 internet-explorer-9

9
推荐指数
1
解决办法
3486
查看次数