vc中怎样得到电脑屏幕的宽和高

vc中怎样得到电脑屏幕的宽和高,第1张

Visual C++中获取屏幕宽和高的函数为GetSystemMetrics(int nIndex),其结果为像素值。其中索引值nIndex在获取屏幕宽时为SM—CXSCREEN,在获取屏幕高时为SM—CYSCREEN。举例如下:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)

{ // 设置窗口风格

//

// 设置窗口位置

csx=GetSystemMetrics(SM—CXSCREEN) /2;

csy=GetSystemMetrics(SM—CYSCREEN) /2;

//设置窗口的宽和高(屏幕宽和高的一半)

cscx=GetSystemMetrics(SM—CXSCREEN)/2;

cscy=GetSystemMetrics(SM—CYSCREEN)/2;

return CFrameWnd::PreCreateWindow(cs);}

在第一次运行出来的位置在自己想要的位置

用MoveWindow 和SetWindowPos

SetWindowPos可以完成MoveWindow的功能,也能完成MoveWindow不能完成的功能

MoveWindow只是移动窗口的位置和大小

SetWindowPos还可以设置窗口的Z-ORDER、显示隐藏窗口等等

width_screen=screenwidth; // 获取宽度

height_screen=screenheight; 高度

availWidth_screen=screenavailWidth;

availHeight_screen=screenavailHeight;

colorDepth_screen=screencolorDepth;

如果是动态获取的话,就自己写一个方法什么的给封装一下,然后加载。

最大化的语句

thisWindowState = FormWindowStateMaximized;

然后就可以

thisWidth

thisHeight

用下面的这个语句可以得到主屏幕的宽

int wid= ScreenPrimaryScreenWorkingAreaWidth;

高:

int hei = ScreenPrimaryScreenWorkingAreaHeight;

一般来说在移动浏览器上是拿不到屏幕真实分辨率的,因为页面渲染是在一个叫viewport的页面绘制区域内(说的通俗点就是手机浏览器是用一个虚拟的屏幕来显示网页的)。viewport和屏幕的真实尺寸并不是对应的,如在Safari Mobile中viewport默认宽度(320px)是屏幕真实尺寸(640px)的一半,这里不管是用windowinnerHeight还是windowscreenwidth拿到的都是320px。当然我们可以通过meta设置改变viewport的比例,如initial-scale=5就可以让viewport和屏幕一致的尺寸,但这个比例在不同的手机上并不一定是2倍关系,特别是Android手机,在大屏手机(5寸以上)上这个值是3倍甚至4倍。而且改变viewport比例后可能会导致后续制作中出现一系列问题。所以我认为不要纠结一定要拿到屏幕真实尺寸,就把viewport的尺寸当成屏幕的尺寸进行页面设计和制作肯定是没有问题的。

有一个非常曲线的解决办法,就是:css的媒体查询(@media)是能够检测屏幕尺寸(其实是浏览器窗体的真实尺寸,并不是屏幕的真实物理尺寸,介意的朋友就不要看了)的,通过它来给网页内的某个元素设置一个特殊的属性,然后再用JavaScript来获取这个属性值。当然这样只能获得一个阶梯值(比如480px到540px之间、540px到600px之间等等),不是精确值,所以可能得不偿失,因此我是不推荐的。

本篇主要介绍Web环境中屏幕、浏览器及页面的高度、宽度信息。

1介绍:介绍页面的容器(屏幕、浏览器及页面)、物理尺寸与分辨率、展示等内容。

2屏幕信息:介绍屏幕尺寸信息;如:屏幕、软件可用以及任务栏的高度和宽度。

3浏览器信息:介绍浏览器尺寸信息;如:浏览器、内部页面以及工具栏的高度和宽度。

4页面信息:介绍HTML页面尺寸信息;如:body总的、展示的高度和宽度。

一个页面的展示,从外到内的容器为:屏幕、浏览器以及页面本身。

HTML元素展现在页面内,页面展现在浏览器内,而浏览器展现在屏幕内。

通过Js的一些对象可以获取这些容器的高度、宽度。

容器的尺寸是指当前分辨率下的高度、宽度,而不是物理高度、宽度。

如:一个22寸的显示器,屏幕分辨率为1366 768,那么获取到的屏幕高度为1366px,宽度为768px。

screenheight : 屏幕高度。

screenwidth : 屏幕宽度。

screenavailHeight : 屏幕可用高度。即屏幕高度减去上下任务栏后的高度,可表示为软件最大化时的高度。

screenavailWidth : 屏幕可用宽度。即屏幕宽度减去左右任务栏后的宽度,可表示为软件最大化时的宽度。

任务栏高/宽度 : 可通过屏幕高/宽度 减去 屏幕可用高/宽度得出。如:任务栏高度 = screenheight - screenavailHeight 。

windowouterHeight : 浏览器高度。

windowouterWidth : 浏览器宽度。

windowinnerHeight : 浏览器内页面可用高度;此高度包含了水平滚动条的高度(若存在)。可表示为浏览器当前高度去除浏览器边框、工具条后的高度。

windowinnerWidth : 浏览器内页面可用宽度;此宽度包含了垂直滚动条的宽度(若存在)。可表示为浏览器当前宽度去除浏览器边框后的宽度。

工具栏高/宽度 : 包含了地址栏、书签栏、浏览器边框等范围。如:高度,可通过浏览器高度 - 页面可用高度得出,即:windowouterHeight - windowinnerHeight。

bodyoffsetHeight : body总高度。

bodyoffsetWidth : body总宽度。

bodyclientHeight : body展示的高度;表示body在浏览器内显示的区域高度。

bodyclientWidth : body展示的宽度;表示body在浏览器内显示的区域宽度。

滚动条高度/宽度 : 如高度,可通过浏览器内页面可用高度 - body展示高度得出,即windowinnerHeight - bodyclientHeight。

以上就是关于vc中怎样得到电脑屏幕的宽和高全部的内容,包括:vc中怎样得到电脑屏幕的宽和高、html怎么获取屏幕高度和宽度、C# WinForm如何获取窗口最大可实际显示的宽高 比如1600*900的屏幕,最大化时窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9701334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存