掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
画面全体を印刷するには? (ID:10022)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あれまっ,レスが... https://www.petitmonte.com/bbs/answers?question_id=1299 とか, http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N009.html を参考にしてみて下さい.また,以下のコードも試してみて下さい. ただし,私が勝手にデスクトップ画面のキャプチャーと解釈しています. このコードの中のplSetPrinter1.PaperWidthは用紙幅です.取得方法は なんとか自力で... //==================================================================== // デスクトップ画面を印刷 // プリンタへの印刷領域を決めるために,拙作のプリンタ設定コンポーネ // ントを使用.usesにPrintersが必要 //==================================================================== 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); {印刷領域の設定} ARect.Left :=200; ARect.Top :=200; ARect.Right :=plSetPrinter1.PaperWidth-300; 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 2020 Takeshi Okamoto All Rights Reserved.