モニターの解像度を取得したい

解決


のり  2004-03-03 01:29:06  No: 7490

現在、印刷処理のプログラムを組んでいるのですが
  印刷時に画面の解像度と指定されたプリンターの解像度を合せ
  印刷をしようと思い解像度の取得を考えています。
  現在、プリンターの解像度は取得できるようになったのですが、

  //プリンターの解像度を得る
  iPrinterResX := GetDeviceCaps(Printer.Handle,LOGPIXELSX);
  iPrinterResY := GetDeviceCaps(Printer.Handle,LOGPIXELSY);
  
  モニターの解像度の取得方法が分かりません、どなたかご教授願います。


LupinⅢ  URL  2004-03-03 02:01:53  No: 7491

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;


にしの  2004-03-03 02:03:11  No: 7492

こんな感じです。

var
  DC: HDC;
begin
  DC := GetDC(0);
  iPrinterResX := GetDeviceCaps(DC,LOGPIXELSX);
  iPrinterResY := GetDeviceCaps(DC,LOGPIXELSY);
  ReleaseDC(0, DC);


LupinⅢ  URL  2004-03-03 02:07:13  No: 7493

LOGPIXELSX/LOGPIXELSYの方でしたね。
失礼しました。にしのさんので正しいです。


のり  2004-03-03 02:11:52  No: 7494

できましたぁ〜!!

  LupinⅢさん、にしのさん  ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加