读书人

WebBrowser 控件 怎么动态控制web页面

发布时间: 2012-03-28 15:40:03 作者: rapoo

WebBrowser 控件 如何动态控制web页面的大小?
我想实现以下功能:
我的程序界面分2部分,左边是功能导航菜单(树状结构),右边是数据显示部分。

1、点击左边的某一项功能按钮,程序自动获取用户账号信息,并自动登录到指定主页例如:http://test.com.cn/cgi-bin/login.cgi 并进行身份验证;
2、打开的主页窗口不是弹出新的IE窗口,而是在程序界面的指定位置显示Web界面。

我在程序界面的指定位置插入 WebBrowser 控件,定义CWebBrowser m_web变量;已经实现上述功能;问题是不知道在调整程序界面大小时,如何实现Web界面大小的动态调整。

此外我尝试过 ShowHTMLDialog 方法,但是该方法是打开新的IE窗口,没有实现在程序指定位置显示Web界面。
还有 CHtmlCtrl/CHtmlViwe 的方法也没有找到相应的方法实现。

请教各位大侠,是否有其他方法实现以上功能!谢谢

[解决办法]
关注,学习!!!
[解决办法]
问题是不知道在调整程序界面大小时,如何实现Web界面大小的动态调整。

响应主程序的onsize, 在这个函数中对m_web调用MoveWindow进行调整
[解决办法]

探讨
楼上说的是 这个吧 
HWND hwnd=(HWND)GetDlgItem(IDC_EXPLORER1);//IDC_EXPLORER1是WebBrowser 控件ID
RECT rc;
GetClientRect(hwnd,&rc);
m_web.MoveWindow(&rc,true);

我尝试了下,把这段代码放到OnSize(UINT nType, int cx, int cy) ,运行报错啊?跟踪了下,发现在执行OnInitDialog()之前,会先执行OnSize(),不知道是不是因为在窗体没有生成之前对象不存在,不能执行上面的代码?

[解决办法]
也可直接判断
if ( ::IsWindow(m_web.GetSafeHWnd()) )
{
...
}
[解决办法]
up

读书人网 >VC/MFC

热点推荐