在MFC SDI程序中使用IWebBrowser2接口,怎么让它能执行页面中的onkeydown事件?

hxingz 2009-07-04 10:36:43
用MFC SDI写了一个浏览器,里面用到了IWebBrowser2接口,但是用它显示我的网页的时候,不能执行页面中的事件(主要是document.onkeydown,input标签的KeyDown),请问这个如何解决,好像CHtmlView默认实现了的,可以执行!可是在用VC++2005对SmartDevice编程时找不到CHtmlView这个类,该如何编程使IWebBrowser2执行页面的事件呢?

我是这样是用这个接口的:
CBrowserView头文件继承自CView
public:
CTSBrowserDoc* GetDocument() const;

IWebBrowser* m_pBrowser;
CWnd m_wndContainer;

// 操作
public:
CString GetURL();


CPP实现文件的OnCreate:
int CTSBrowserView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: 在此添加您专用的创建代码
CRect rectClient;
GetClientRect(&rectClient);

if (!m_wndContainer.CreateControl(CLSID_WebBrowser, NULL, WS_VISIBLE | WS_CHILD,
rectClient, this, AFX_IDW_PANE_FIRST))
{
DestroyWindow();
return -1;
}

//////////////////////////////////////////////////////////////////////////
LPUNKNOWN pUnk = m_wndContainer.GetControlUnknown();
ASSERT(pUnk != NULL);

HRESULT hr = pUnk->QueryInterface(IID_IWebBrowser, (void**)&m_pBrowser);
if (FAILED(hr))
{
m_pBrowser = NULL;
m_wndContainer.DestroyWindow();
DestroyWindow();
return -1;
}

return 0;
}
...全文
233 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxingz 2009-07-08
  • 打赏
  • 举报
回复
无满意结贴!
hxingz 2009-07-06
  • 打赏
  • 举报
回复
麻烦做过的,给个意见啊!
Gothic_girl 2009-07-05
  • 打赏
  • 举报
回复
参考一下这个,也是IWebBrowser onkeydown问题:
http://topic.csdn.net/u/20080111/10/04e51c84-1b82-4839-94f2-a98ad2cacffa.html
蒋晟 2009-07-05
  • 打赏
  • 举报
回复
SmartDevice IE的接口未必和windows上的一样,找个SmartDevice论坛问问。
skyxie 2009-07-04
  • 打赏
  • 举报
回复
既然CHtmlView已经实现了这个功能, 那你把VS2005的这个类copy到你的SmartDevice项目中,直接用...

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧