Hallo,
ich habe, da ich mit den Pointern und den gesamten Zusammenhängen noch nicht ganz durchsehe mal etwas gegoogelt und folgendes gefunden.
Delphi-Quellcode:
function EnumProc(wnd: HWND; Lines: TStrings): BOOL; stdcall;
var
buf, Caption: array[0..255] of char;
begin
Result := True;
GetClassName(wnd, buf, SizeOf(buf) - 1);
SendMessage(wnd, WM_GETTEXT, 256, Integer(@Caption));
Lines.Add(Format('ID: %d, ClassName: %s, Caption: %s',
[GetDlgCtrlID(wnd), buf, Caption]));
end;
procedure TForm1.PrintDialog1Show(Sender: TObject);
begin
Memo1.Clear;
EnumChildWindows(printdialog1.Handle, @EnumProc, Integer(memo1.Lines));
end;
In dem Memo wird das SubForm, welches ich suche, definitiv gelistet. Da ich aber die SubForms nicht listen will, sondern nur auf das eine zugreifen will, frage ich mich nun, wie ich das so umschreiben kann, dass ich das
Handle des SubForms erhalte und es dann über die GetDC() schicken kann.
Ich habe versucht die EnumProc umzuschreiben, aber leider verlief das ohne Erfolg, da ich die Caption wohl nicht in der EnumProc direkt erfragen kann...Was mach ich da nur falsch?