用Delphi画图时,好像画图的单位是像素,请问能不能设置更小的值,如设置每英寸300点

解决方案 »

  1.   

    将Canvas.Font.PixelsPerInch设置一下看看是否可以
      

  2.   

    Canvas.Font.PixelsPerInch不能影响Canvas.Pixels,只是对文字有效
      

  3.   

    procedure TMainForm.Button1Click(Sender: TObject);
    var
      PrevMapMode:Integer;
    begin
      PrevMapMode:=SetMapMode(Canvas.Handle,MM_ISOTROPIC);
      try
        SetWindowExtEx(Canvas.Handle,300,300,nil);
        SetViewportExtEX(Canvas.Handle,ClientWidth,ClientHeight,nil);    SetViewportOrgEx(Canvas.Handle,0,0,nil);
        Canvas.Rectangle(0,0,100,100);
        finally
          SetMapMode(Canvas.Handle,PrevMapMode);
        end;
    end;
    不管窗体的尺寸多大,上面的代码都让你工作在客户区的宽度和高度为300×300单位(不是像素)的窗体上。