GetWindowlong(Handle,GWL_HWNDPARENT) 与GetParent(Handle)的问题 ( 积分: 50 )

  • 主题发起人 主题发起人 ysp娃娃
  • 开始时间 开始时间
Y

ysp娃娃

Unregistered / Unconfirmed
GUEST, unregistred user!
GetWindowlong(Handle,GWL_HWNDPARENT)&nbsp;与GetParent(Handle)的问题<br><br>如果检索的是一些子窗口控件如Button1&nbsp;则GetWindowlong(Button1.Handle,GWL_HWNDPARENT)与GetParent相同.&nbsp;<br><br>但如果检索的是form&nbsp;如From1<br>则&nbsp;GetParent(Form1.Handle)&nbsp;返回0&nbsp;,我以为GetWindowlong(Form1.Handle,GWL_HWNDPARENT)也返回0,但是&nbsp;GetWindowlong(Form1.Handle,GWL_HWNDPARENT)返回的是Application.Handle.<br>不知道为什么?&nbsp;&nbsp;<br><br>况且GetWindowlong(Handle,GWL_HWNDPARENT)&nbsp;这个函数是检索Handle的父窗口,&nbsp;&nbsp;<br>Application&nbsp;是Form1的Owner,而不是parent.&nbsp;为什么GetWindowlong(Form1.Handle,GWL_HWNDPARENT)返回的是Application.Handle.?
 
没有人会的吗
 
先说明一点,Windows操作系统中的Parent跟Delphi&nbsp;VCL中的Parent不是同一个概念。<br>GetParent是检测*包含指定窗口*的上一级窗口的句柄的;而GetWindowlong(Handle,GWL_HWNDPARENT)&nbsp;检测的则是上一级窗口(未必包含本子窗口)。
 
楼上正解
 
多人接受答案了。
 
后退
顶部