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 ^”
没有用户定义的转换运算符,或者
无法将非托管类型转换为托管类型*/
展开
 我来答
何处淬吴钩
2011-08-13 · TA获得超过5044个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2405万
展开全部
本人没写过托管c++程序……
但貌似你的问题很明显:
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();
linjinxing1987
2011-08-13 · TA获得超过911个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:263万
展开全部
你那错误里面看,你用的好像是c#吧?你确定你没建错工程?
更多追问追答
追问
c++ windows窗体程序      应该没建错 。。。不知道是不是少了强制转化。。
追答
void System::Windows::Forms::Control::Text::set(System::String ^)
----------------------
c++的错误是不会这么提示的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式