递归获得窗体下所有子窗体信息

function  TForm1.GetChildWindows(h:HWND) :HWND;
var
  buf: array[0..255] of Char;  {这个缓冲区是获取类名用的, 如果不需要可以删除}
  begin
  h := GetWindow(h, GW_CHILD); {第一个子窗口}
  while h <> 0 do
  begin
    {下面两行是要执行的操作, 并假定只处理 TEdit}
    GetClassName(h, buf, Length(buf));
    //if buf = 'TSyntaxMemo' then
    ShowMessageFmt('%s:%d', [buf, h]);
    GetChildWindows(h);             {递归}
    h := GetWindow(h, GW_HWNDNEXT); {下一个子窗口}
  end;
end;

你可能感兴趣的:(delphi)