新手学c++,用GetWindowLong语句出错,请大富翁们帮帮忙(100分)

  • 主题发起人 主题发起人 wzm163
  • 开始时间 开始时间
W

wzm163

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟刚学c++
我用的是vc 2005,用Window 窗体应用程序 创建一个项目
当使用下面语句时出错
GetWindowLong(this->handle,GWL_STYLE);
出错原因
error C2664: “GetWindowLongW”: 不能将参数 1 从“System::IntPtr”转换为“HWND”
在BCB这个语句都能通过,为什么在这里就通不过了呢
handle应该就是HWND类型了吧,vc怎么变成System::IntPtr
 
大富翁请顺便告诉我怎么给分
 
GetWindowLong(handle,GWL_STYLE);
handle是窗体句柄,如果是mfc的就是this->getSafeHwnd();
 
那在window 窗体应用程序中 handle该怎么得到,我不是用mfc
 
如果是api创建的,就是hwnd=createwindow(....);
那个hwnd就是。
 
比如说
我用 Window窗体应用程序创建了一个项目。
项目开始就自动创建了一个Form1,从工具箱里拉了一个Button放到Form1上,Button的Name是button1,button1有个属性是Handle,我用GetWindowLong(button1->Handle,GWL_STYLE);这个语句,然后编译就出现了error C2664: “GetWindowLongW”: 不能将参数 1 从“System::IntPtr”转换为“HWND”。那我该怎么才能得到button1的HWND
 
是winform的程序,可能已经没有这么用的了,我也不熟悉。
 
好惨,都不会用
 
还是谢谢你kgm
 
不明白,c#里写winform就可以用这个函数,只要申明就行了,c++里就没找到怎么用的,可能是用其他方法,你看看这里http://www.microsoft.com/china/msdn/archives/technic/library/techart/netwinforms.asp
微软说的。
 
接受答案了.
 
我得到答案了
HWND hwnd =(HWND) button1->Handle.ToPointer();
 
后退
顶部