1、GetSystemMetrics函数
要获取屏幕的像素大小要使用GetSystemMetrics函数,该函数用于得到被定义的系统数据或者系统配置信息。支持多个参数,以SM_CXSCREEN和SM_CYSCREEN得到屏幕的宽和高为例:
int nScreenWidth, nScreenHeight; nScreenWidth = GetSystemMetrics(SM_CXSCREEN); nScreenHeight = GetSystemMetrics(SM_CYSCREEN); printf("屏幕大小(像素) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight);
使用GetDeviceCaps函数来获取屏幕的物理大小。以常用的HORZSIZE和VERTSIZE为例,获取屏幕的物理大小,代码如下:
int nScreenWidth, nScreenHeight; HDC hdcScreen = GetDC(NULL); //获取屏幕的HDC nScreenWidth = GetDeviceCaps(hdcScreen, HORZSIZE); nScreenHeight = GetDeviceCaps(hdcScreen, VERTSIZE); printf("屏幕大小(毫米) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight);
3、计算屏幕尺寸
下面将介绍获取屏幕的物理大小后计算屏幕对角线长度,再换算成英寸。这样可以方便大家查看自己电脑屏幕是多少英寸的。
通常大家在表示电脑、电视、手机等电子产品的屏幕大小时会使用英寸这一长度单位来描述。要注意的一点时,英寸在描述电脑、电视、手机等电子产品的屏幕大小时是指屏幕的对角线长度。根据这一换算公式,可以直接计算出屏幕是多少英寸的,代码如下:
int nScreenWidth, nScreenHeight; HDC hdcScreen = GetDC(NULL); //获取屏幕的HDC nScreenWidth = GetDeviceCaps(hdcScreen, HORZSIZE); nScreenHeight = GetDeviceCaps(hdcScreen, VERTSIZE); printf("屏幕大小(毫米) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight); printf(" 下面将屏幕大小由毫米换算到英寸\n"); const double MILLIMETRE_TO_INCH = 0.03937; double fDiagonalLen = sqrt(nScreenHeight * nScreenHeight + nScreenWidth * nScreenWidth); printf("屏幕对角线长为:%.2lf毫米 约 %.2lf英寸\n", fDiagonalLen, fDiagonalLen * MILLIMETRE_TO_INCH);