VSC++2010 windows窗体应用程序_不能将参数 1 从“HWND”转换为“System::String ^”
////获得坐标。POINTmouse;GetCursorPos(&mouse);intx=(int)mouse.x;inty=(int)mouse.y;this->te...
//
//获得坐标。
POINT mouse;
GetCursorPos(&mouse);
int x=(int)mouse.x ;
int y=(int)mouse.y ;
this->textBox1 ->Text =x.ToString() +","+y.ToString ();
//
//获得句柄。
HWND hWnd;
hWnd=WindowFromPoint(mouse);
this->textBox2 ->Text =hWnd;//代码出错。。。
请高手帮忙看下。。。。哪里错了怎么改??
……/*Form1.h(195) : error C2664: “void System::Windows::Forms::Control::Text::set(System::String ^)”: 不能将参数 1 从“HWND”转换为“System::String ^”
没有用户定义的转换运算符,或者
无法将非托管类型转换为托管类型*/ 展开
//获得坐标。
POINT mouse;
GetCursorPos(&mouse);
int x=(int)mouse.x ;
int y=(int)mouse.y ;
this->textBox1 ->Text =x.ToString() +","+y.ToString ();
//
//获得句柄。
HWND hWnd;
hWnd=WindowFromPoint(mouse);
this->textBox2 ->Text =hWnd;//代码出错。。。
请高手帮忙看下。。。。哪里错了怎么改??
……/*Form1.h(195) : error C2664: “void System::Windows::Forms::Control::Text::set(System::String ^)”: 不能将参数 1 从“HWND”转换为“System::String ^”
没有用户定义的转换运算符,或者
无法将非托管类型转换为托管类型*/ 展开
2个回答
展开全部
本人没写过托管c++程序……
但貌似你的问题很明显:
this->textBox2 ->Text应该是字符串类型,你用窗口句柄赋值当然会出错,换成字符串应该就ok了(貌似应该是Unicode字符串?)。
或者试验下this->textBox2=hWnd(本人推断这样不可以,因为控件窗口已经绑定,无法重新赋值)。
明确告诉你,强制转换不可行
你的程序实际上就是.net程序,但用c++写这种程序的及其罕见,大多为c#。如果楼主想学c++还是建立win32程序或mfc程序。
但貌似你的问题很明显:
this->textBox2 ->Text应该是字符串类型,你用窗口句柄赋值当然会出错,换成字符串应该就ok了(貌似应该是Unicode字符串?)。
或者试验下this->textBox2=hWnd(本人推断这样不可以,因为控件窗口已经绑定,无法重新赋值)。
明确告诉你,强制转换不可行
你的程序实际上就是.net程序,但用c++写这种程序的及其罕见,大多为c#。如果楼主想学c++还是建立win32程序或mfc程序。
追问
从“HWND”转换为“System::String ^”
这个不能转换???
追答
unsigned int un = hWnd;
this->textBox2 ->Text =un.ToString();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询