VB获得任务栏高度
发布网友
发布时间:2024-09-27 01:40
我来回答
共1个回答
热心网友
时间:2024-11-03 08:58
Screen.Height / Screen.TwipsPerPixelX --->这是把屏幕的绝对高度单位由缇转为像素
(Screen.Height / Screen.TwipsPerPixelX) - rectVal.Bottom --->这是把屏幕高度减去工作区高度(计算结果就是任务栏的高度了,单位为像素)
((Screen.Height / Screen.TwipsPerPixelX) - rectVal.Bottom) * Screen.TwipsPerPixelX --->这是把上述计算结果的单位由像素转为VB默认的缇
补充说明:此语句存在下属错误或缺陷:
1、任务栏并不是固定在屏幕下方的,也可以是上边、左边或右边的(尽管很少有人这么做),如果出现后面这些情况,那么程序的计算结果就是不准确的;
2、计算工作区的高度(或宽度)时,要把Bottom-Top(或Right-Left),因为Top(或Left)是不一定为0的(见上述1);
3、Screen.TwipsPerPixelX用错了,应该是Screen.TwipsPerPixelY,前者是屏幕横向每像素多少缇,是用来转换屏幕宽度单位的,后者则是屏幕纵向每像素多少缇,这才是用来转换屏幕高度单位的。不过在绝大部分情况下,这两个值是相等的(都是15),所以程序运行结果不会出错,但是作为程序必须严谨,因为说不定你的程序要运行在一些特殊的屏幕上呢(这时候两个值就不一定相等了)?