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

时间:2012-05-16 15:10:13

标签: winforms visual-studio visual-c++ handle

给出表格

System.Windows.Forms::Form Form1;

和窗口句柄

HWND hWnd;

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

hWnd = this.Handle;

但是编译器抱怨:

错误C2228:'。Handle'的左边必须有class / struct / union类型是'MyNamespace :: Form1 ^ const'你打算使用' - >'吗?代替?

所以我试试

hWnd = this->Handle;

只是

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

然后编译器说:

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

1 个答案:

答案 0 :(得分:21)

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

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

作品。