嵌入式IE控件(CHtmlView)在拖动时不向下传递WM_SIZE

问题描述 投票:0回答:1

我已经注意到,使用嵌入式IE控件(CHtmlView),通过拖动父窗口的边框来调整大小的任何尝试都不会调整IE控件的内部工作。我启动了Spy ++,并比较了嵌入式控件和IE浏览器,而且我很确定这是“ Shell Embedding”窗口,可防止任何大小调整事件传播到Internet Explorer_Server控件。

enter image description here

我可以看到WM_SIZE,WM_WINDOWPOSCHANGED等命中了Shell嵌入控件,但是Shell DocObject View没有任何结果。但是,它将通过“最大化/还原”来接收这些消息,并适当调整内部IE_Server的大小。

查看IE本身:

enter image description here

我确实看到大小,位置更改等事件击中了壳DocObject视图,显然IE在拖动边框时调整了页面的大小。唯一有意义的是“外壳嵌入”窗口不允许通过拖动来调整大小来调整大小。

这是否准确,如果可以,是否有解决方法,除了可以通过手动将WM_SIZE事件手动发送给Shell Embedding子项以强制其调整大小的方法之外,还可以使它调整大小。

c++ visual-c++ mfc mshtml afx
1个回答
0
投票

当子MFC窗口的数量超过最大堆栈大小,并且消息不再完全发送时,我们最终成为Windows堆栈大小限制的受害者。

发送PostMessage来将大小调整到几级以返回到消息泵中的方法可以解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.