VC 获取屏幕及打印机的像素,DPI,英寸数,毫米数,缇数(twips)
void GetPixelsPermm(double& iPixelPermX, double& iPixelPermY)
{
//获得屏幕的宽(像素值)
double fx=GetSystemMetrics (SM_CXSCREEN);
//获得屏幕的高(像素值)
double fy=GetSystemMetrics (SM_CYSCREEN);
//获取屏幕的HDC
HDC hdcScreen = GetDC(NULL);
// Pixel per inch
double fDPIX = (double)GetDeviceCaps(hdcScreen, LOGPIXELSX);
double fDPIY = (double)GetDeviceCaps(hdcScreen, LOGPIXELSY);
//象素数 / DPI = 英寸数
double fWidthI = fx / fDPIX;
double fHeightI = fy / fDPIY;
//英寸数 * 25.4 = 毫米数
double fWidthM = fWidthI*25.4;
double fHeightM = fHeightI*25.4;
// 每个毫米的像素
iPixelPermX = fx/fWidthM;
iPixelPermY = fy/fHeightM;
double dTwipsX = fWidthI*1440;// 1 缇就是 1/1440 英寸、、X屏幕总缇数
double dTwipsY = fHeightI*1440;// 1 缇就是 1/1440 英寸、、Y屏幕总缇数
double dPixelsX= dTwipsX/fx; // 每个像素的缇数
double dPixelsY= dTwipsY/fy;
double dTwipsPermm = dTwipsX/fWidthM; // 屏幕上每毫米的缇数
// 获取打印机相关参数
CString csPrinter;
OpenDefaultPrinter(csPrinter);
HDC hdc = NULL;
if((hdc = CreateDC(_T("Printer"), csPrinter, NULL,NULL)) != 0)
{
// 打印机分辨率
double fpx = GetDeviceCaps(hdc,HORZRES);
double fpy = GetDeviceCaps(hdc,VERTRES);
// 打印机DPI Pixel per inch
double fPDPIX = GetDeviceCaps(hdc, LOGPIXELSX);
double fPDPIY = GetDeviceCaps(hdc, LOGPIXELSY); // Pixel per inch
//象素数 / DPI = 英寸数
double fPWidthI = fpx / fPDPIX;
double fPHeightI = fpy / fPDPIY;
//英寸数 * 25.4 = 毫米数
double fPWidthM = fPWidthI*25.4;
double fPHeightM = fPHeightI*25.4;
// 打印机总缇数,// 1 缇就是 1/1440 英寸、、X
double dPTwipsX = fPWidthI*1440;
double dPTwipsY = fPHeightI*1440;
// 每个像素的缇数
double dPixelsX= dPTwipsX/fpx;
double dPixelsY= dPTwipsY/fpy;
// 打印机上每毫米的缇数
double dPTwipsPermmX = dPTwipsX/fPWidthM;
double dPTwipsPermmY = dPTwipsY/fPHeightM;
}
}
打印机添加元素/
//#include <WinSpool.h>
//#pragma comment(lib, "Winspool.lib")
/
void OpenDefaultPrinter(CString& csPrinter)
{
HANDLE hPrinter = NULL;
DWORD dwSize = 0;
if((!GetDefaultPrinter(NULL, &dwSize)) && GetLastError()==ERROR_INSUFFICIENT_BUFFER)
{
TCHAR *szPrinter = new TCHAR[dwSize+1];
if(GetDefaultPrinter(szPrinter, &dwSize))
{ /* 这一段可以注解
if(SHInvokePrinterCommand(
NULL, //GetSafeHwnd(),
PRINTACTION_PROPERTIES,
szPrinter,
NULL,
FALSE))
{
//OpenPrinter(szPrinter, &hPrinter, NULL);
csPrinter = szPrinter;
} */
}
delete []szPrinter;
}
VC 获取屏幕及打印机的像素,DPI,英寸数,毫米数,缇数(twips)相关推荐
- VC获取屏幕dpi,win32绘图适配高dpi模式,windows屏幕缩放图像拉伸失真问题
VC获取屏幕dpi,win32绘图适配高dpi模式 默认MFC支持高dpi模式 通过winapi提供接口获取屏幕dpi 使用==StretchBlt==代替==BitBlt==进行图像绘制 注意==M ...
- VC++获取屏幕大小第二篇 物理大小GetDeviceCaps 上
上一篇< VC++获取屏幕大小第一篇像素大小GetSystemMetrics >中介绍了使用GetSystemMetrics函数来获取屏幕的像素大小,本篇将介绍使用GetDeviceCap ...
- VC++获取屏幕大小第一篇 像素大小GetSystemMetrics
< VC++获取屏幕大小第一篇 像素大小 GetSystemMetrics >和< VC++获取屏幕大小第二篇物理大小GetDeviceCaps 上 >和< VC++获取 ...
- VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下
本篇文章(MoreWindows)将获取屏幕的物理大小后计算屏幕对角线长度并换算成英寸.这样可以方便大家查看自己电脑屏幕是多少英寸的.为了更方便大家使用,本文将提供电脑屏幕大小查看器下载(配源码)下载 ...
- android 获取图片像素密度,android 获取屏幕的密度和像素 点
经过测试发现屏幕的像素点 如果 density =1 那么 1dp = 1px density =2 那么 1dp = 2px density =3 那么 1dp = 3px 在字体设置的时候用dp比 ...
- Android 获取屏幕尺寸(设备对角线的英寸数)
使用屏幕的实际的宽高,根据勾股定理来计算设备的尺寸. 由于Android系统版本的不同和有的设备具有虚拟按键,需要根据不同的SDK的版本使用不同的方法来获取屏幕的实际宽高. 计算方法: Math.sq ...
- mfc获取别的计算机是否在线,VC获取并修改计算机屏幕分辨率(MFC)
//检测当前分辨率 int Width = GetSystemMetrics(SM_CXSCREEN); int Height = GetSystemMetrics(SM_CYSCREEN); DEV ...
- mfc改计算机名称,VC获取并修改计算机屏幕分辨率(MFC)
//检测当前分辨率 int Width = GetSystemMetrics(SM_CXSCREEN); int Height = GetSystemMetrics(SM_CYSCREEN); DEV ...
- vc得到屏幕的当前分辨率方法
vc得到屏幕的当前分辨率方法: 1.Windows API调用 int width = GetSystemMetrics ( SM_CXSCREEN ); int height= GetSystemM ...
最新文章
- java-方法。(新手)
- 树形dp ---- gym101667 A(贪心 + 树形dp + 两个dp方程组维护)
- 《流畅的Python》一副扑克牌中的难点
- 优点 spark_spark(一)
- golang 位操作
- linux mint php mysql_linux mint 下mysql中文支持问题
- 21年计算机网络原理综合测评,(年对口升学计算机综合测评卷.doc
- 计算机考研考833的院校,太原理工大学
- [4.14校内训练赛by hzwer]
- raspberry ubuntu 修改源为清华_在Windows7基础上安装Ubuntu系统,实现双系统操作
- 十天学会单片机(2)点亮一个发光管
- 在windows server 2008 r2上安装nokia pc 套件
- 计算机开机错误怎么办,电脑开机蓝屏错误代码0X0000007E怎么办?
- 人脸识别翼闸使用规范_介绍市场上最常用的通道翼门和人脸识别的使用
- 什么是EMC?什么是EMI?什么是EMS?电磁兼容详解(一)
- UOS安装 MySQL5.7
- Java手机号校验、短信验证码、验证码工具类
- 趣味选择题.html
- Java工具使用(导读)
- 855 AIMA学习笔记(by菜菜子)
热门文章
- 水库湖泊水雨情监测系统 小型水库雨水情自动测报
- zblog php wordpress,zblogphp好用吗?个人站长使用zblog和wordpress对比后我的选择
- mysql 增加合计行_SQL:给查询添加一个合计行
- cam350菜单怎么切换成中文_电子设计软件CAM350各菜单使用说明(二)
- 【学习笔记】Property Testing(性质检验)
- 【JAVASE系列】11_酒店订房系统
- IT求职经验总结——面试和准备策略
- canva怎么组合_canvas图形组合
- fiddler手机抓包完整教程
- CAS:1353016-71-3,DBCO-NHS ester,二苯并环辛烯-活性酯,一种胺反应化学试剂