首页 > 解决方案 > 从现有窗口创建子 HWND 句柄

问题描述

我有一个 winform 窗口,我在其中手动/以编程方式绘制,我想为一个我无法修改的进程提供一个 HWND 句柄,该进程明确等待一个 win32 HWND(然后这个进程将在我的窗口中绘制它自己的东西,使用HWND 句柄)。

重要的细节是我希望 HWND 指向我窗口中的某个位置。

有没有办法创建一个新的人工HWND 来指向我窗口的特定区域?

标签: c#winformshwnd

解决方案


您只能将 HWND 获取到窗口,并且每个控件(如按钮复选框等)也被视为窗口。因此,如果在您想要获得 HWND 的“区域”处没有控件,则这是不可能的。但是,例如,如果那个地方有一个组框,那是可能的。

您想绘制到某个区域。那么为什么不直接获取窗口句柄并使用 GetClientRect 和 GetWindowRect 并绘制到您想要的 x/y 坐标。


推荐阅读