Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Druckvorschau des TWebBrowsers maximieren

  Alt 1. Jun 2006, 07:10
Hallo

Mir ist kein Parameter bekannt, welcher das Fenster maximiert erscheinen laesst.
Muesstest das Fenster von Hand maximieren.
D.h nach dem Fensterhandle des Druckvorschau Fensters suchen und dieses maximieren.

Habe mal einen kleinen Code dafuer geschrieben:

Delphi-Quellcode:
procedure WB_PrintPreview(Webbrowser: TWebbrowser; nCmdShow: Integer);
const
 IE_PPREVIEWCLASS = 'Internet Explorer_TridentDlgFrame'; // Druckvorschau Fenster Klassenname
var
 HWND_PP, HWND_FG: HWND;
 ClassName: array[0..255] of Char;
 t1, t2: DWORD;
begin
 Webbrowser.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER); // Druckvorschau aufrufen
 HWND_PP := 0;
 t1 := GetTickCount;
 repeat
  HWND_FG := GetForegroundWindow(); // Vordergrundfenster ermitteln
  GetClassName(HWND_FG, ClassName, SizeOf(ClassName));
  if lstrcmp(@ClassName[0], @IE_PPREVIEWCLASS[1]) = 0 then // überprüfen, ob Druckvorschau Fenster
    HWND_PP := HWND_FG;
  Application.ProcessMessages;
  t2 := GetTickCount;
 until (HWND_PP <> 0) or (t2 - t1 > 6000); // Falls gefunden oder Timeout erreicht
 if HWND_PP <> 0 then
   ShowWindow(HWND_PP, nCmdShow); // Druckvorschau Fenster maximieren
end;
Aufzurufen so:

 WB_PrintPreview(Webbrowser1, SW_MAXIMIZE);
Thomas
  Mit Zitat antworten Zitat