修改了我前几天的一个例子,另外一个程序里面我放了很多个Panel,Panel上面放了几个Button,主要是用FinWindowEx,关键是搞清楚从属关系,Panel属于Form,Button又属于Panel,所以FindWindowEx的前后参数要设置对就没有问题了<br><br><br>procedure TForm111111.Button1Click(Sender: TObject);<br>var<br> FormHandle , PanelHanlde , ButtonHandle: THandle;<br> I : Integer;<br>begin<br> FormHandle := FindWindow(nil, PChar('Form1'));// 另外一个程序的标题,我在那个程序里面放了多个Panel,并在Panel上面放了多个Button<br> I := 0;<br> if FormHandle <> 0 then begin<br> // 先找到第一个Panel控件<br> PanelHanlde := FindWindowEx(FormHandle, 0, PChar('TPanel'), nil);<br> // 循环找<br> while PanelHanlde <> 0 do begin<br> ButtonHandle := FindWindowEx(PanelHanlde, 0, PChar('TButton'), nil);<br> while ButtonHandle <> 0 do begin<br> SendMessage(ButtonHandle, WM_SETTEXT, 0, Integer(pchar(IntToStr(I))));// 设置内容,看看我们找对了没有,好像这里的Integer也比较重要<br> ButtonHandle := FindWindowEx(PanelHanlde, ButtonHandle, PChar('TPanel'), nil);// 寻找下一个Button,注意FindWindowEx的地二个参数,是ButtonHandle<br> Inc(I);<br> end;<br><br> PanelHanlde := FindWindowEx(FormHandle, PanelHanlde, PChar('TPanel'), nil);// 寻找下一个Panel,注意FindWindowEx的地二个参数,是PanelHandle<br> end;<br> end;<br>end;<br>end.