mri*_*ing 16 handle visual-studio visual-c++ winforms
鉴于形式
System.Windows.Forms::Form Form1;
Run Code Online (Sandbox Code Playgroud)
和窗口句柄
HWND hWnd;
Run Code Online (Sandbox Code Playgroud)
我如何将hWnd设置为Form1的Handle属性,该属性确实作为公共属性存在"获取控件绑定的窗口句柄.(继承自Control.)"根据System.Windows.Forms的Microsoft文档::表格?在Form Form1的构造函数中,我试过了
hWnd = this.Handle;
Run Code Online (Sandbox Code Playgroud)
但编译器抱怨:
错误C2228:'.Handle'的左边必须有class/struct/union类型是'MyNamespace :: Form1 ^ const'你打算用' - >代替吗?
所以我试试
hWnd = this->Handle;
Run Code Online (Sandbox Code Playgroud)
只是
hWnd = Handle; // Since I'm in the Form
Run Code Online (Sandbox Code Playgroud)
然后编译器说:
错误C2440:'=':无法从'System :: IntPtr'转换为'HWND'没有可用于执行此转换的用户定义转换运算符,或者无法调用运算符
mri*_*ing 21
我找到了一个解决方案,并不关心它是否是一个kludge.
hWnd = static_cast<HWND>(Handle.ToPointer());
Run Code Online (Sandbox Code Playgroud)
作品.
归档时间: |
|
查看次数: |
17938 次 |
最近记录: |