重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
哈哈,我还以为楼主要调整窗体,看错了啊!
成都创新互联公司从2013年成立,公司以成都网站设计、网站制作、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户上1000家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。
一,设置你的窗体为总在最前
二,设置任务栏为次最前
再最大化你的窗体试下
设置窗体模式为无边框的,然后最大化
或者用ShowWindow
实在不行就:
在任务栏上点鼠标右键,把锁定任务栏上的勾去掉。把鼠标往任务栏的上边缘移动,发现有上下的箭头时,按住鼠标左键随意拉。
能,几个API函数的事情
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal Hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Sub Command1_Click()
Dim Hwnd As Long
Dim WinRECT As RECT
Hwnd = FindWindow("Shell_TrayWnd", vbNullString)
GetWindowRect Hwnd, WinRECT
MsgBox "任务栏长度: " WinRECT.Right - WinRECT.Left vbCrLf "任务栏宽度: " WinRECT.Bottom - WinRECT.Top, , "单位:Pixel"
End Sub
得出的宽度,长度单位是Pixel,根据你的需要换算一下,如果你的窗体是Twip模式的那么就把原值乘以15就好了。
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),所以程序运行结果不会出错,但是作为程序必须严谨,因为说不定你的程序要运行在一些特殊的屏幕上呢(这时候两个值就不一定相等了)?