winforms – 如何从System.Windows.Forms.Form获取HWND句柄

给定形式

System.Windows.Forms::Form Form1;

和窗口把手

HWND hWnd;

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

hWnd = this.Handle;

但编译器抱怨:

错误C2228:’.Handle’的左边必须有类/ struct / union类型是’MyNamespace :: Form1 ^ const’你打算使用’ – >’代替?

所以我试试

hWnd = this->Handle;

只是

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

然后编译器说:

错误C2440:’=’:无法从“System :: IntPtr”转换为“HWND”没有用户定义的转换操作符可用于执行此转换,或者不能调用操作符

最佳答案
我找到一个解决方案,而不在乎它是否是一个污泥.

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

作品.

转载注明原文:winforms – 如何从System.Windows.Forms.Form获取HWND句柄 - 代码日志