Admin не совсем так... просто мы тогда не все элементы найдем.
Вот код который ищет, в указанном окне, PageControl-ы:| Код | procedure TForm1.Button1Click(Sender: TObject); procedure RegisterWindow(hWin:THandle); const TCM_GETITEMCOUNT=$1304; var h:THandle; Buffer:array [0..255] of Char; begin GetClassName(hWin,Buffer,SizeOf(Buffer)); //просто так... для вывода класса Memo1.Lines.Add(Buffer); //Просто вывод имени класса найденного окна if SendMessage(hWin,TCM_GETITEMCOUNT,0,0)<>0 then //Тупо проверяем на PageControl memo1.Lines.Add('Нашел: $'+IntToHex(hWin,8)); //выводим дескриптор найденного PageControl-а h:=GetWindow(hWin,gw_Child); if h<>0 then RegisterWindow(h); h:=GetWindow(hWin,gw_hWndNext); if h<>0 then RegisterWindow(h); end; begin RegisterWindow(GetWindow(Form1.Handle,gw_Child)); //где Form1.Handle нужно заменить на дескриптор окна, где необходимо найти PageControl-ы (а все остальное в ентой строке... оставить как есть! end; |
Удачи. |