为何CreateControl创建的控件无法显示
使用CWnd::CreateControl创建了一个WebBroswer控件, 没有任何错误发生, 但是控件无法显示.
从调试的结果来看, 控件已经正常创建, 甚至执行Navigate也可以返回S_OK, 但是界面上就是无法显示.
请求帮忙, 为何执行起来一切正常的代码, 就是无法显示出控件?
环境:
Windows Mobile 6.0模拟器.
Visual Studio 2005.
代码如下:
在OnCreate函数中.
RECT rcClient;
GetClientRect(&rcClient);
rcClient.top += 100;
rcClient.bottom -= 100;
m_wndBrowser.CreateControl(CLSID_WebBrowser, L"",
WS_CHILD|WS_VISIBLE,
rcClient, this,
AFX_IDW_PANE_FIRST);
//确定创建控件可以成功
m_pUnknown = m_wndBrowser.GetControlUnknown();
HRESULT hr = m_pUnknown->QueryInterface(IID_IWebBrowser2,
(void**)&m_pWeb);
//IWebBrowser2 接口也可以正常的获得, 返回S_OK.
HRESULT hRes = m_pWeb->Navigate(L"http://www.google.cn", NULL, NULL, NULL, NULL);
//调用Navigate的过程同样的也能执行, 也是返回S_OK.
if (hRes == S_OK)
return 0;
//说明一下: 获取m_wndBrowser的位置的时候, 也可以保证, 获取到位置是正常的, 足够显示, 父窗口也没有隐藏.
//但是判断m_wndBrowser是否是Visiable的时候, 发现不是Visiable, 就算Show也无用, 仍然不是Visiable.
return FALSE;