16

鉴于形式

System.Windows.Forms::Form Form1;

和窗把手

HWND hWnd;

根据Microsoft 的 System.Windows.Forms 文档,如何将 hWnd 设置为 Form1 的 Handle 属性,该属性确实作为“获取控件绑定到的窗口句柄。(继承自 Control。)”的公共属性存在::表格?在我的 Form Form1 的构造函数中,我尝试过

hWnd = this.Handle;

但编译器抱怨:

错误 C2228:'.Handle' 的左侧必须有类/结构/联合类型是 'MyNamespace::Form1 ^const' 你打算改用 '->' 吗?

所以我尝试

hWnd = this->Handle;

并且只是

hWnd = Handle; // Since I'm in the Form

然后编译器说:

错误 C2440:“=”:无法从“System::IntPtr”转换为“HWND”没有可以执行此转换的用户定义转换运算符,或者无法调用该运算符

4

1 回答 1

21

我找到了一个解决方案,并且不在乎它是否是一个kludge。

hWnd = static_cast<HWND>(Handle.ToPointer());

作品。

于 2012-05-16T15:25:27.907 回答