程序如何知道显示器一个像素点代表多少毫米 这个代表多少毫米能设吗?比如设置一个像数点代表0.001毫米

解决方案 »

  1.   

    你试一下这两种转换哪种是你需要的
    1:
    double pLogHeighty=(double)pDC->GetDeviceCaps(LOGPIXELSY);
    double pLogHeightx=(double)pDC->GetDeviceCaps(LOGPIXELSX); mPageHeight=(int)((mPhysicalHeight/pLogHeighty)*25.4+0.5);
    mPageWidth =(int)((mPhysicalWidth/pLogHeightx)*25.4+0.5);
    也好像是这个,忘了哪个了
    2:
    dc.LineTo(0,(g_iCustomClipHeight-1)*::GetDeviceCaps(hDC,LOGPIXELSY)/25.4);
      

  2.   

    复人: qiling1979(大笨鸟) ( ) 信誉:100  2003-11-21 16:31:00  得分:0 
     
     
      25.4是个啥?
     
     
    好像是英寸和毫米之间的转换吧,以前一直是这么用的,LOGPIXELSX好像是得到横向一英寸的像素数
      

  3.   

    不用这么麻烦
    HDC hdc;
    hdc = CreatDC("Display",NULL,NULL,NULL);
    int ixPixcel=GetDeviceCaps(hdc,HORZRES);            //例:得到1024pix
    int iyPixcel=GetDeviceCaps(hdc,VERTRES);            //例:得到768pix
    int ixMilliMeter=GetDeviceCaps(hdc,HORZSIZE);       //例:得到320mm
    int iyMilliMeter=GetDeviceCaps(hdc,VERTSIZE);       //例:得到240mm