Hallo Sirius,
nochmals vielen vielen Dank.
Ich kann nun das PDF manuell bspw. nach unten scrollen, also Messages
an das Control schicken, mit unten stehender Prozedur:
Delphi-Quellcode:
Procedure TForm1.ToolButton1Click(Sender: TObject);
var
FormHandle: HWND;
PanelHandle: HWND;
AfxOleHandle: HWND;
AfxFrameHandle: HWND;
AfxMDIFrameHandle: HWND;
Begin
FormHandle := FindWindow('
TForm1', '
Form1');
if FormHandle > 0
then
PanelHandle := FindWindowEx(FormHandle, 0, '
TPanel', '
Panel1');
if PanelHandle > 0
then
AfxOleHandle := FindWindowEx(PanelHandle, 0, '
AfxOleControl42s', 0);
if AfxOleHandle > 0
then
AfxFrameHandle := FindWindowEx(AfxOleHandle, 0, '
AfxFrameOrView42s', 0);
if AfxFrameHandle > 0
then
AfxMDIFrameHandle := FindWindowEx(AfxFrameHandle, 0, '
AfxMDIFrame42s', 0);
if AfxMDIFrameHandle > 0
then
AfxHandle := FindWindowEx(AfxMDIFrameHandle, 0, '
Afx:f30000:b:0:6:0', 0);
End;
procedure TForm1.ToolButton2Click(Sender: TObject);
begin
if AfxHandle > 0
then
SendMessage(AfxHandle, WM_VSCROLL, SB_LINEDOWN, 0)
else showmessage('
kein handle');
end;
Das funktioniert wirklich hervorragend
Was mir nur jetzt noch unklar ist, wie ich die WndProc-Prozedur genau dieses Controls überschreiben kann.
Bei einem normalen Control, welches ich auf meine Form packe, ist mir das klar; das mache ich so:
Delphi-Quellcode:
Type
TMyPDF = Class(SDK_AXLib_TLB.TFoxitReaderSDK)
Procedure WndProc(Var Msg1: TMessage); override;
public
sName: String;
End;
[.......]
Procedure TMyPDF.WndProc(Var Msg1: TMessage);
Begin
//do something
Inherited WndProc(Msg1);
End;
Das funktioniert ebenfalls ;o)
Aber wie komme ich an das Control, das ja so tief unten in der Hierarchie liegt?
Also wie kann ich Messages
von dem Control abfangen/-fragen?
Muss ich da auch erst nen Type für erstellen
und falls 'ja' - wie?
Das ist die letzte Hürde - wirst Du, oder jemand anderes helfen, sie zu überwinden?
Bisher aber schonmal =>