如何使用子窗口中的句柄获取父窗口的调整大小事件?

Posted

技术标签:

【中文标题】如何使用子窗口中的句柄获取父窗口的调整大小事件?【英文标题】:How to get the resize event of a parent window using its handle in child window? 【发布时间】:2014-01-10 09:17:04 【问题描述】:

我已经使用 mfc 制作了浏览器窗口。 然后使用SetParent 将其添加为 VLC 播放器的子级。 我的子进程中有 VLC 播放器的句柄。

现在我想在调整 VLC 窗口大小时调整子窗口(浏览器)的大小。

有什么方法可以在子代码中使用父窗口的句柄来获取父窗口的调整大小事件,这样我也可以调整子对话框的大小?

【问题讨论】:

自从我使用 Windows SDK 以来已经有一段时间了,但是您能否不替换捕获 WM_SIZE 的窗口 proc(存储旧的),然后在您处理它之前或之后委托回原始 WndProc你自己? 消息处理似乎不起作用。 使用 SetParent() hack 非常很麻烦。您需要编写一个可以使用 SetWindowsHookEx() 注入 VLC 的 DLL,以便您可以监视消息。很难做对。不要这样做,而是创建一个插件。 【参考方案1】:

你想错了。

在 VLC 窗口中捕获事件并在处理程序中设置子(浏览器)窗口的新大小。

【讨论】:

我对 vlc 没有太多控制权。它只会启动我的(子)exe。 然后继承父句柄,这会通过新的 windows 对象路由消息并在那里处理它。 (msdn.microsoft.com/en-us/library/6wt95892.aspx) @Oakdale 你不能跨进程“子类化”! @manuell 非常正确 - 我在问题中错过了这一点,看起来他对我来说很无聊。

以上是关于如何使用子窗口中的句柄获取父窗口的调整大小事件?的主要内容,如果未能解决你的问题,请参考以下文章

MFC中怎么让子窗体大小随着父窗口的大小变化而改变?

qt大小变化事件和show的先后顺序

Qt:子窗口中如何获取主窗体ui中的控件

怎样在android的service中调用Activity中的getWindow函数

MFC中怎样获取指定窗口的句柄

C# 获取窗体的句柄和获取窗体中的空间