【发布时间】:2015-02-10 01:05:52
【问题描述】:
我有一个可视的 DotNet-Control,我在 Delphi 项目中用作 COM-Control。
现在我想获得在 DotNet 中托管这个 DotNet 组件的 delphi 表单的句柄。
当然 - 我可以使用 setParentHandle(pHandle: hwnd); 之类的东西将表单的句柄从 Delphi 传递到 DotNet;我定义的方法,但这不是我想在这里做的方式。
是否有任何 Winapi 调用可以为我提供我在 DotNet 中绘制的组件的句柄?
我想使用此句柄将 DotNetComponent 本身无法处理的消息发送到 Delphi 表单。
【问题讨论】:
-
您能否准确说明您的 .net 代码中的内容。您的 .net 组件是从哪个类派生的?这是托管在您的 Delphi 应用程序中的组件。
-
dotnet组件基本上是从UserControl派生的。我将其用作图表组件的容器。但是我无法在我的 C# 代码中访问托管的 Delphi 表单(实际上我只需要句柄)。
-
System.Windows.Forms.UserControl或System.Windows.Controls.UserControl? -
当你的这个图表组件被创建时,它可能会创建自己的窗口,对吧?那么你为什么不简单地检查哪个窗口是你的这个窗口的父窗口呢?但是,如果您的组件没有创建自己的窗口怎么办?然后必须先将现有窗口的句柄传递给它,以便它知道应该将其内容呈现到哪里。那就用那个手柄吧。
-
如果你想要的只是父级的窗口句柄,你不能用控件的窗口句柄调用GetParent吗?
标签: .net delphi winapi com sendmessage