日期:2014-05-20  浏览次数:20772 次

为什么同时取得同一个窗体的句柄不一样???
在C#中用平台调用使用win32函数GetFocus()函数取得的句柄为什么和调用窗体的Handle属性取得的值不一样?

同样使用平台调用,使用win32函数SetForegroundWindow()设置可见窗体,用GetFocus()函数取得的句柄得不到效果,用Handel取得的就可以.

糊涂了,为什么回出现这样的效果,请高手指点.

------解决方案--------------------
up
------解决方案--------------------
恩,在win32平台中,每一个 "控件 "都有一个句柄,比如说button,Textbox等等,都有自己的句柄.他们的句柄和这个主界面 "窗体 "的句柄是不同的.

GetFocus()你很可能取到的只是某个控件的句柄,比如说取到界面上某个button的句柄,并不是这个form的句柄.
------解决方案--------------------
控件句柄和船体句柄当然不一样了 父子关系