鉴于形式
System.Windows.Forms::Form Form1;
和窗 Handlebars
HWND hWnd;
根据 Microsoft documentation of System.Windows.Forms::Form,如何将 hWnd 设置为 Form1 的 Handle 属性,该属性确实作为公共(public)属性存在,“获取控件绑定(bind)到的窗口句柄。(继承自 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”没有可以执行此转换的用户定义转换运算符,或者无法调用该运算符
最佳答案
我找到了一个解决方案,并且不在乎它是否是一个kludge。
hWnd = static_cast<HWND>(Handle.ToPointer());
作品。
关于winforms - 如何从 System.Windows.Forms.Form 中获取 HWND 句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10621437/