現在、印刷処理のプログラムを組んでいるのですが
印刷時に画面の解像度と指定されたプリンターの解像度を合せ
印刷をしようと思い解像度の取得を考えています。
現在、プリンターの解像度は取得できるようになったのですが、
//プリンターの解像度を得る
iPrinterResX := GetDeviceCaps(Printer.Handle,LOGPIXELSX);
iPrinterResY := GetDeviceCaps(Printer.Handle,LOGPIXELSY);
モニターの解像度の取得方法が分かりません、どなたかご教授願います。
GetDeviceCapsで可能ですよ。GetDeviceCapsのヘルプをみると載ってます。
こんな感じ?
procedure TForm1.Button1Click(Sender: TObject);
var
X:integer;
Y:integer;
Xmm:integer;
Ymm:integer;
DC : HDC;
begin
DC := GetDC(0);
X := GetDeviceCaps(DC, HORZRES);
Y := GetDeviceCaps(DC, VERTRES);
Xmm := GetDeviceCaps(DC, HORZSIZE);
Ymm := GetDeviceCaps(DC, VERTSIZE);
Releasedc(0,DC);
ShowMessage(IntToStr(X) +':'+ IntToStr(Y) + ' ' +IntToStr(Xmm)+':'+IntToStr(Ymm) );
end;
こんな感じです。
var
DC: HDC;
begin
DC := GetDC(0);
iPrinterResX := GetDeviceCaps(DC,LOGPIXELSX);
iPrinterResY := GetDeviceCaps(DC,LOGPIXELSY);
ReleaseDC(0, DC);
LOGPIXELSX/LOGPIXELSYの方でしたね。
失礼しました。にしのさんので正しいです。
できましたぁ〜!!
LupinⅢさん、にしのさん ありがとうございました。
ツイート | ![]() |