掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
画面テキスト拡大率を150%でMetafileをStretchDrawしたい (ID:45755)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Metafileで作った描画データを,StretchDrawでPaintboxに描画していますが,win7やwin8の画面の個人設定でテキスト拡大率を150%(125%超)にすると,小さく表示されてしまいます。 正しく表示されるようにするには,どうすればよいでしょうか。 以下のコードで再現します。 画面の対角線いっぱいに表示されるはずですが,小さく表示されます。 procedure Tform1.Paintbox1Paint(Sender: TObject); var metaFile1 : Tmetafile; Mcanvas : Tmetafilecanvas; begin //以下,テキストの拡大率が125%を超えると,小さく表示される metafile1 := Tmetafile.create; Metafile1.Height := Paintbox1.Height; Metafile1.Width := Paintbox1.width; MCanvas := TMetafileCanvas.Create(Metafile1,0); with mcanvas do begin pen.Width := 10; pen.Color := clred; moveto(0,Paintbox1.height); lineto(Paintbox1.width,0) end; Mcanvas.free; Paintbox1.canvas.stretchdraw(rect(0,0,Paintbox1.width,Paintbox1.Height),Metafile1); Metafile1.free; //Paintbox1.canvas.Draw(0,0,Metafile1); //StretchDrawではなくDrawを使うと正しく表示される end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.