关于TWebBrowser,帮助我翻译成DELPHI语言?遇到问题,搜索很久,发现这个解决方法,不懂语言翻译,需要懂行的朋友翻译成为DELPHI语言,谢谢了。===============================最近做一个小程序,需要用到WebBrowser控件,并且需要屏掉它的右键菜单 msgbox WebBrowser1.hwnd 但是一获取其hwnd属性就提示 对象 'HWND' 的方法 'IWebBrowser2' 失败
于是乎,搜索了一下,结果发现很多人都遇一这样的问题,最终还是在微软官方帮助中找到了点说明
原来WebBrowser本来就没有hwnd这个属性,一个虚的属性,其值为NULL,微软官方说法是:HWND 属性是不 WebBrowser 控件的有效属性。以下是微软官方帮助文档:症状
承载 WebBrowser 控件在 VisualBasic 或 VisualC++ 应用程序并调用其 HWND 属性通常返回 E _ 下列 HRESULT 是 FAIL:
方法是 HWND IWebBrowser 2 失败。原因
HWND 属性是不 WebBrowser 控件的有效属性。解决方案警告 : 这些技术可能不适用于框架窗口将来 InternetExplorer 版本 5.01 后。 建议遵循只保证能够对顶层 WebBrowser 控件。VisualC++ 开发人员可使用 WebBrowser 控件的 IOleWindow 接口并调用其 GetWindow() 方法来检索 WebBrowser 是 HWND:IOleWindow *pOWin;
HWND hBWnd;HRESULT hRes = m_pBrowserApp->QueryInterface(IID_IOleWindow, (void **)&pOWin);
if (SUCCEEDED(hRes)) {
hRes = pOWin->GetWindow(&hBWnd);
if (SUCCEEDED(hRes)) {
// Place hBWnd-manipulating code here
}
}
于是乎,搜索了一下,结果发现很多人都遇一这样的问题,最终还是在微软官方帮助中找到了点说明
原来WebBrowser本来就没有hwnd这个属性,一个虚的属性,其值为NULL,微软官方说法是:HWND 属性是不 WebBrowser 控件的有效属性。以下是微软官方帮助文档:症状
承载 WebBrowser 控件在 VisualBasic 或 VisualC++ 应用程序并调用其 HWND 属性通常返回 E _ 下列 HRESULT 是 FAIL:
方法是 HWND IWebBrowser 2 失败。原因
HWND 属性是不 WebBrowser 控件的有效属性。解决方案警告 : 这些技术可能不适用于框架窗口将来 InternetExplorer 版本 5.01 后。 建议遵循只保证能够对顶层 WebBrowser 控件。VisualC++ 开发人员可使用 WebBrowser 控件的 IOleWindow 接口并调用其 GetWindow() 方法来检索 WebBrowser 是 HWND:IOleWindow *pOWin;
HWND hBWnd;HRESULT hRes = m_pBrowserApp->QueryInterface(IID_IOleWindow, (void **)&pOWin);
if (SUCCEEDED(hRes)) {
hRes = pOWin->GetWindow(&hBWnd);
if (SUCCEEDED(hRes)) {
// Place hBWnd-manipulating code here
}
}
解决方案 »
- 调用了个外部程序,怎么获取一个程序的返回值??
- 如何在delphi中通过adoquery把一个mdb数据库的所有表名查询输出到dbgrid中,大家多多帮忙!!!
- 请问哪里能下载荷Report Machine 2.5(最新版),我觉得它很好用的。
- 我有个帖子没人答,100分,快来,前四位每人25!
- 用delphi写了一个万年历,请大家看看
- 请问如何设置多重菜单,我用mainmenu时只能实现一重菜单,请指教!
- 怎样实现一个特定程序启动的时候另外一个也启动?
- 一个关于背景图像问题向高手请教
- 在同一个socket连接中能不能同时用sendtext和sendstream???
- 简单问题:快来抢分!!!!
- 获取TWebBrowser的窗口句柄
- I/O错误
uses ActiveX;procedure TForm1.Button1Click(Sender: TObject);
var
vOleWindow: IOleWindow;
vHandle: HWND;
begin
vOleWindow := IDispatch(WebBrowser1.OleObject) as IOleWindow;
if not Assigned(vOleWindow) then Exit;
if not Succeeded(vOleWindow.GetWindow(vHandle)) then Exit;
ShowMessage(IntToStr(vHandle));
end;