看流星社区

 找回密码
 注册账号
查看: 2278|回复: 5

关于MFC的CWebbrowser ShowWindow的问题.

[复制链接]

该用户从未签到

发表于 2013-4-18 08:47:09 | 显示全部楼层 |阅读模式
我在一个DLL添加一个Dlg   
然后在Dlg里面添加一个Webbrowser控件
用一个LoadDLL后 Webbrowser控件正常显示

但是当我点一下任务栏的那个程序的图标后 主窗口(Dlg)隐藏(最小化)

当我再弹出来的时候
Webbrowser控件已经不见了!?
这个情况该怎么解决

该用户从未签到

发表于 2013-4-18 08:47:18 | 显示全部楼层
动态创建web控件看看

该用户从未签到

发表于 2013-4-18 08:47:30 | 显示全部楼层
这个是一个bug 使用全局的API就可以了  ::ShowWindow(hWeb,SW_SHOW);

该用户从未签到

发表于 2013-4-18 08:47:45 | 显示全部楼层
应该是你代码的bug,检查一下Webbrowser变量是不是定义在局部了?
我是这么解释的:
你在局部函数中定义Webbrowser成员变量,创建并已经绘画到窗口。
然后函数过程执行完毕,局部变量被销毁,因为这个时候窗口没有被刷新,所以你发现窗口正常,但实际内存已经被销毁了。
而当你从最小化再显示窗口的时候窗口需要重绘,重新读取内存,但是内存已经被销毁,因此不能正常显示。

当然出现这问题也可能其它原因,希望对你有帮助!

该用户从未签到

发表于 2013-4-18 08:48:00 | 显示全部楼层
微软的WebBroswer控件存在bug, CWebBroswer::ShowWindow存在bug,使用类中的ShowWindow隐藏后就销毁了,再显示就异常了,解决办法就是系统API来显示.

该用户从未签到

发表于 2013-4-24 09:21:45 | 显示全部楼层
看帖就回加成长!!
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-23 20:08

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表