rein朋友:您要的子窗口的句柄,除了我上面回复了您的方法之外,您还可以用回调函数EnumChildWindows和FindWindow的强力组合来枚举出父窗口中所有的子窗口的句柄.<br>具体的代码是(我为您写了个例子,例子非常简单,没什么实用价值,只是个基本的原理):<br>先在TForm上放一个TMemo和一个TButton<br>然后进入代码编辑区.<br>注意:这里的回调函数是不需要在private或是public区声明的,如果声明了就会出错,因为回调函数不是对象方法.一定要注意<br>implementation<br><br>{$R *.dfm}<br><br>function EnumProc(wnd: HWND; Lines: TStrings): BOOL; stdcall;<br>var<br> buf, Caption: array[0..255] of char;<br>begin<br> Result := True;<br> GetClassName(wnd, buf, SizeOf(buf) - 1);<br> SendMessage(wnd, WM_GETTEXT, 256, Integer(@Caption));<br> Lines.Add(Format('ID: %d, ClassName: %s, Caption: %s',[GetDlgCtrlID(wnd), buf, Caption]));<br>end;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br> Handle:THandle;<br>begin<br> Handle:=FindWindow('TfrmMain',nil);//首先获得父窗口的句柄<br> Memo1.Clear;<br> EnumChildWindows(Handle, @EnumProc, Integer(memo1.Lines));//枚举出所有的子窗口的句柄<br>end;<br>您的问题就可以解决.