程序如何知道显示器一个像素点代表多少毫米 这个代表多少毫米能设吗?比如设置一个像数点代表0.001毫米
解决方案 »
- 奇怪现象:EXE调试模式下运行正常,但是一运行就崩溃,ntdll.dll 0xc00005
- vector的push_back报错c2248 (急)
- 如何通过网页向ocx传递参数,并返回参数?
- 夜深了,发一个双向指针链表,注释不多,有兴趣朋友可以看看.
- 非模态对话框与多线程相似吗?
- WindowsAPI下生成的窗体为模态窗体(新手)
- 一个菜鸟问题CreateCompatibleDC(NULL)申不申请空间阿
- 电脑死机问题
- SDI下如何隐藏菜单(Unvisible)?
- 我的程序处理大量文本,在运行一段时间后就几乎消耗120M,(无泄露,确实有大量历史文本),
- 如何设置ToolBar中Button的风格???
- 如何将一个2560*1920的JPG文件转换为100*75的BMP文件???
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);
25.4是个啥?
好像是英寸和毫米之间的转换吧,以前一直是这么用的,LOGPIXELSX好像是得到横向一英寸的像素数
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