Если вы используете ActiveX из версии 9 Acrobat Reader, попробуйте этот код в событии OnResize TPanel:
procedure TForm.PanelResize(Sender: TObject);
var
rc: TRect;
h: THandle;
begin
if Assigned(AcroPdf) then
begin
if (Windows.GetClientRect(AcroPdf.Handle, rc)) then
begin
h := Windows.FindWindowEx(AcroPdf.Handle, 0, PChar('Static'), nil);
if (h <> 0) then
Windows.MoveWindow(h, 0, 0, rc.Right - rc.Left, rc.Bottom - rc.Top, True);
end;
end;
end;
Проблема в том, что дочернее окно основного окна AcroPdf не изменяется. Таким образом, мы нашли его по имени класса «Static» и вручную переместили, чтобы заполнить все родительское окно. Этот код не может работать в других версиях Acrobat Reader, поскольку иерархия окон и имена классов могут различаться.