掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
画面全体を印刷するには? (ID:10023)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
おっといけない,印刷の向きが横でしたね.以下の様にして下さい. あとは適当に調整して下さい. procedure TForm1.Button1Click(Sender: TObject); var DesktopDC: HDc; DesktopCanvas: TCanvas; DesktopRect: TRect; ARect: TRect; AWidth : Integer; begin {自分自身を印刷しないために最小化} Application.Minimize; {デスクトップのデバイスコンテキストハンドルを取得} DesktopDC := GetWindowDC(GetDeskTopWindow); try {デスクトップ用のTCanvasを生成} DesktopCanvas := TCanvas.Create; {Canvasのハンドルにデバイスコンテキストハンドルをアサイン} DesktopCanvas.Handle := DesktopDC; {サイズを取得} DesktopRect := Rect(0, 0, Screen.Width, Screen.Height); {印刷方向を横に} plSetPrinter1.Orientation:=poLandscape; {印刷領域の設定} ARect.Left :=600; ARect.Top :=150; ARect.Right :=plSetPrinter1.PaperWidth-700; AWidth :=(ARect.Right-ARect.Left); ARect.Bottom:=Trunc(AWidth*(Screen.Height/Screen.Width))+ARect.Top; {印刷} Printer.BeginDoc; try Printer.Canvas.CopyRect(ARect, DesktopCanvas, DesktopRect); finally Printer.EndDoc; end; finally {デバイスコンテキストハンドルを開放} ReleaseDC(GetDesktopWindow, DesktopDC); {このFormのサイズを元に戻す} Application.Restore; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.