最近想做一个Wince下的程序,能在程序中显示网页。
由于wince不支持htmlview类,所以使用了IWebBrowser2来实现
参考http://www.vckbase.com/document/viewdoc/?id=1145做了一个,
但是程序窗口本身不能显示网页,是另外打开了IE来显示网页。
大家说说问题出在哪里呢?还是我的思路就不对呢?
代码如下:
public:
IWebBrowser2 *m_pBrowser;
CWnd m_wndBrowser; ////IWebBrowser2 的容器
void Navigate(CString); ///调用IWebBrowser2的Navigate接口
CIEView:: CIEView ()
{
m_pBrowser = NULL;
}
void CIEView::Navigate(CString strURL)
{
COleVariant empty;
BSTR bstrURL = strURL.AllocSysString();
m_pBrowser->Navigate (bstrURL, COleVariant((long) 0, VT_I4), empty, empty, empty);
}
在IEView.cpp文件里定义消息处理函数: ///响应WM_CREATE
int CIEView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
////////////////////////////////////////////////////
RECT rectClient;
GetClientRect(&rectClient); ///在客户端整个区域显示
///创建控件
if (! m_wndBrowser.CreateControl(CLSID_WebBrowser, NULL, WS_VISIBLE | WS_CHILD,
rectClient, this, AFX_IDW_PANE_FIRST))
{
DestroyWindow();
return FALSE;
}
///得到指针
LPUNKNOWN lpUnk = m_wndBrowser.GetControlUnknown();
HRESULT hr = lpUnk->QueryInterface(IID_IWebBrowser2, (void**) &m_pBrowser);
if (! SUCCEEDED(hr))
{
m_pBrowser = NULL;
m_wndBrowser.DestroyWindow();
DestroyWindow();
return FALSE;
}
Navigate(_T("\\FLASH_Storage\\HTEST\\index.html"));}
return 0;
}
PPC 问题,就是wince,不知道是系统生成时那里设置不对?或者不支持?不可能啊。
没搞过,你也可以参考WINCE提供的IESimple代码,\PUBLIC\IE\OAK\IESIMPLE
我也在做一个类似的,不过是要求能在对话框中显示网页,用的是STHtmlDialog,出现的问题是这个类的示例程序在我的PDA上没有显示,但这个类应该是可用的,你可以试试,我怀疑我的有可能是平台的问题,armv4i,wince5.0
wince5的sdk里就没有Htmlctrl.h这个头文件,所以这个方法也不能用。
可能只能需要IWebBrowser2来实现。
继续关注高手解答...
wince 4.2 支持IWebBrowser2吗?
IWebBrowser2组件哪里可以找到?