为什么ShowWindow(SW_HIDE)之后窗口句柄就不存在了?

Comgarden 2009-08-24 11:31:06
m_explorer是一个web browser类对象
我希望能控制这个控件的显示与隐藏
但是hide之后句柄就释放了
那么HIDE之后该怎么再显示出来这个控件呢
谢谢!

m_explorer.ShowWindow(SW_HIDE); //隐藏html控件

m_explorer.ShowWindow(SW_SHOW); //隐藏html控件
...全文
355 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanshao27 2012-07-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
碰到了类似的问题,的确是这样的,web browser控件隐藏了之后,句柄就空了,搞了半天,不知道哪里出问题了,原来是这样,多谢多谢,帮了大忙了!
[/Quote]
同上
2011-12-07
  • 打赏
  • 举报
回复
非常感谢大大的回答。。。。。。。。。。谢谢了
sumnet 2011-11-03
  • 打赏
  • 举报
回复
碰到了同样在问题,谢谢提供了解决方案。。。
tlm38025 2011-09-07
  • 打赏
  • 举报
回复
碰到了类似的问题,的确是这样的,web browser控件隐藏了之后,句柄就空了,搞了半天,不知道哪里出问题了,原来是这样,多谢多谢,帮了大忙了!
cv_china 2009-08-24
  • 打赏
  • 举报
回复
你用的是CLR?
wltg2001 2009-08-24
  • 打赏
  • 举报
回复
不可能句柄无效的,窗口只是隐藏了,又没有销毁掉
MoXiaoRab 2009-08-24
  • 打赏
  • 举报
回复
句柄不会无效的。

你是怎么确定无效的呢?
雪影 2009-08-24
  • 打赏
  • 举报
回复
你隐藏窗口不用担心窗口句柄无效。
显示窗口
m_explorer.ShowWindow(SW_SHOW); //显示html控件
neohope 2009-08-24
  • 打赏
  • 举报
回复
1.showwindow不会删除对象啊
2.用控件id操作试试
xylicon 2009-08-24
  • 打赏
  • 举报
回复
m_explorer.ShowWindow(SW_HIDE); //隐藏html控件

这个应该不会使句柄失效的吧,第一次听啊。
Comgarden 2009-08-24
  • 打赏
  • 举报
回复
我知道了,晕
这是微软web browser控件的一个bug(或许是ActiveX控件都这样?)
m_explorer.ShowWindow(SW_HIDE); //隐藏html控件
就会释放句柄
解决办法是
::ShowWindow( m_explorer.GetSafeHwnd(), SW_HIDE );
这样就不会释放句柄了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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