Q&A

  • Win98se와Win2000kPro에서 GetDeviceCaps값이 다른 이유??
안녕하세요.
pixe값을 mm으로 값으로 가져오기 위해서 작업을 하는 중에 이상한 부분이 있어서 올립니다.(혹시 표현이 잘못이 있는지 모르겠습니다.)
아래....
//  화면 모드 1024x768일 때
var
t:integer;
H, W : Real;
begin
  WITH ImgDot.Canvas DO  BEGIN
    WITH Memo1.Lines DO  BEGIN
      t:=GetDeviceCaps(Handle,HORZSIZE);
      Add('Width in millimeters='+IntToStr(t));
문제1)      // Windows98se:270, Windows2000k Pro:320

      t:=GetDeviceCaps(Handle,VERTSIZE);
      Add('Hight in millimeters='+IntToStr(t));
문제2)      // Windows98se:203, Windows2000k Pro:240

      t:=GetDeviceCaps(Handle,HORZRES);
      Add('Width in pixels='+IntToStr(t));

      t:=GetDeviceCaps(Handle,VERTRES);
      Add('Hight in pixels='+IntToStr(t));

      // 1픽셀당 mm
      t:=GetDeviceCaps(Handle,HORZSIZE);
      W := Screen.Width/t;
      Add('Width 1 Pixel millimeters='+FloatToStr(W));

      t:=GetDeviceCaps(Handle,VERTSIZE);
      H := Screen.Height/t;
      Add('Hight 1 Pixel millimeters='+FloatToStr(H));

    END;
  END;
end;
위 문제 1), 문제 2)에서 windows98se에서와 windows2000kPro에서
// Windows98se:270, Windows2000k Pro:320
// Windows98se:203, Windows2000k Pro:240
같은 모니터에서 실행을 했는데 왜 차이가 생기지요.
고수님들의 지도 편달을 부탁드립니다.
그럼.
0  COMMENTS