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屏幕总缇数

该代码段展示了如何获取屏幕和打印机的像素密度,包括DPI、英寸、毫米和缇数。通过GetSystemMetrics和GetDeviceCaps函数,计算屏幕的像素/英寸值,进而转换为毫米和缇数。同时,也提供了获取默认打印机相同参数的方法。
最低0.47元/天 解锁文章
983

被折叠的 条评论
为什么被折叠?



