用这个算法:
GetDeviceCaps(Canvas.Handle, HORZSIZE)/GetDeviceCaps(Canvas.handle, HorzRes);
GetDeviceCaps(Canvas.handle, VERTSIZE)/GetDeviceCaps(Canvas.handle, VERTRes);
可以求出每一个象素多少毫米(分为X和Y两个方向),然后乘以像素就可以了。
如果Canvas是屏幕的Canvas那么求出来的就是屏幕的单位了,如果是打印机的那么就是打印的单位了。
GetDeviceCaps(Canvas.Handle, HORZSIZE)/GetDeviceCaps(Canvas.handle, HorzRes);
GetDeviceCaps(Canvas.handle, VERTSIZE)/GetDeviceCaps(Canvas.handle, VERTRes);
可以求出每一个象素多少毫米(分为X和Y两个方向),然后乘以像素就可以了。
如果Canvas是屏幕的Canvas那么求出来的就是屏幕的单位了,如果是打印机的那么就是打印的单位了。
解决方案 »
- 用 odac or sdac 的朋友进来帮忙帮忙
- 执行vbs文件, WinExec('hygl.vbs',SW_SHOW),怎么不能用?
- 如何动态的实现取数据库的记录添加到memo中显示?
- 大家看看这段操作adoquery的代码错在哪里?
- 难道就没有人能告诉我delphi 7.0中的 pagesetup component 怎么用吗
- bde 怎么配 sql server?
- 我的dbcombobox的style属性是dropdown,readonly=false,但为什么不能编辑呢?
- 想念你 我心中的那个工程师
- 哪位大侠提供一段简单的自定义组件代码给我?继承TLabel,点击可以打开他caption上的网页。
- 如何使一个应用程序有多个MDI父窗体???(我是不是有病啊...)
- 问:在程序里怎么判断ORACLE里已经建立了某个数据库?
- 哪儿有Thinking in Java和Thinking in C++的电子书,谢谢
不知道colacoca(可口可乐)是如何得出这个
搞笑的结论的: 同样的一个像素,在17"和14"
显示器上的毫米数都不同,又何来1像素=1/3.79毫米 所以Wingsun(孙春阳)的答案基本是对的: 适用于
打印机等输出设备.