关于系统进程和窗口句柄![求助](50分)

  • 主题发起人 主题发起人 sammon
  • 开始时间 开始时间
S

sammon

Unregistered / Unconfirmed
GUEST, unregistred user!
我知道一个窗口的父句柄,怎么能得到窗口里面控件的句柄呢?<br>我是试着用findwindow()函数来实现的,可是只能得到button的句柄,语法是<br>findwindowex(hwnd,这里改写什么我忘啦:(,nil,'ok');可以得到button的句柄,可是<br>我想得到edit控件的句柄,我试着用findwindowex(hwnd,同上,nil,'edit')这样写对么?<br>我不知道啊,反正我没有得到想要的结果。<br><br>有谁能帮助我么?重申我的问题:我知道父窗口的句柄,想得到窗口中控件的句柄,控件包括<br>(button,edit,至少是以上两种,如果您知道更多请列举).
 
使用枚举哪!
 
具体怎么用,讲讲好么?我看win32 api 函数写findwindowex查找与其相关的窗口的句柄。<br>刚刚看了别的朋友的帖子,看样子好象用ENumChildWindows对么?然后还要对得到的窗口进<br>行判断对么?怎么判断呢?我就是这里不知道啊,比如想得到Tedit的句柄?<br>可否给出源码?
 
创建一个窗体,放一个按扭和edit 代码如下:<br>function &nbsp; CallbackPro1(Ahandle:HWND;dd:integer):boolean;stdcall;<br>var<br>&nbsp; &nbsp;i &nbsp;:integer;<br>begin<br>&nbsp; result:=true;<br>&nbsp; if &nbsp; ahandle=form1.edit1.Handle then<br>&nbsp; &nbsp; &nbsp;result:=false;<br>end;<br>procedure TForm1.Button1Click(Sender: TObject);<br><br>&nbsp; var<br>&nbsp; &nbsp; FormHandle,<br>&nbsp; &nbsp; handlenow :THandle;<br>begin<br>&nbsp; FormHandle := self.Handle;<br>&nbsp; EnumChildWindows(formHandle,@callbackPro1,1);<br>end;
 
看了这篇文章,我有一个小问题,那就是比如我在一个窗口里有两个Tedit控件,其caption <br>分别我edit1,edit2., 现在是Edit1得到焦点,那么我如何用api函数得到edit1的handle<br>呢?不过 我要得到当前的得到焦点的窗体是GetActiveWindow. &nbsp;,但是我要得到当前得到焦点<br>的组件的句柄是用什么呢?
 
'TEdit'<br><br>不过你可以枚举全部
 
后退
顶部