你如何调整您的形式,VB6,这样的形式下边框是在任务栏的顶部表大小,以填补屏幕尺寸减去任务栏
回答
是否有一个原因,你不能只是最大化的形式?那将是我的第一印象。
如果这不是一个运动员,你可以尝试让任务栏的高度以下列方式:
Private Const ABM_GETTASKBARPOS = &H5
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
rc As RECT
lParam As Long
End Type
Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Function GetTaskBarSize()
Dim ABD As APPBARDATA
SHAppBarMessage ABM_GETTASKBARPOS, ABD
MsgBox "Width:" & ABD.rc.Right - ABD.rc.Left
MsgBox " Height:" & ABD.rc.Bottom - ABD.rc.Top
End Sub
,然后你的窗体的高度设置为屏幕的高度少任务栏的高度。
将rhe窗口设置为vbmaximized,就像你所建议的那样做了......我无知的广度! – kjack 2009-01-05 23:04:09
减号只有任务栏?这可能不是你想要的。屏幕边缘可能有其他窗口用于“切出”桌面区域。另外,请注意,有时任务栏的高度是无关紧要的,例如当它停靠在屏幕的左侧或右侧时。
Galwegian显示了如何获得任务栏的高度,但是如果您真的在寻找桌面的可用区域,请使用SystemParametersInfo
函数,而使用spi_GetWorkArea
标志。它会告诉你桌面区域不包括所有的桌面工具栏。 MSDN建议如果您对主显示器以外的其他空间感兴趣,则应该拨打GetMonitorInfo
;它填补了一个记录,其中一个领域是监视器的工作区域。
我打算第二个想法,你可能真的只是想最大化你的窗口。如果你已经这样做了,并且你想知道你占用了多少空间,那么获取当前窗口的大小,然后减去窗口框架的尺寸(将其“缩小到”边缘下方)当窗口最大化时桌面)。您可以使用GetSystemMetrics
以及sm_CXFrame
和sm_CYFrame
标志。
感谢您的帮助我不需要任何其他的工作,只是为了最大限度地提高表格的质量 – kjack 2009-01-05 23:09:38
我会同意你可能想最大化你的窗口。
但是,如果您确实想知道桌面上的所有桌面工具栏(任务栏,Microsoft Office工具栏等)的区域,则下面是SystemParametersInfo调用的一些VB6声明以及屏幕中心窗体的示例函数,考虑到工具栏。这是从旧的Visual Basic程序员日志中借用的101 tech tips (PDF)。
Private Const SPI_GETWORKAREA = 48
Private Declare Function SystemParametersInfo& Lib "User32" Alias "SystemParametersInfoA" (_
ByVal uAction As Long, _
ByVal uParam As Long, lpvParam As Any, _
ByVal fuWinIni As Long)
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Function CenterForm32 (frm As Form)
Dim ScreenWidth&, ScreenHeight&, ScreenLeft&, ScreenTop&
Dim DesktopArea As RECT
Call SystemParametersInfo (SPI_GETWORKAREA, 0, DesktopArea, 0)
ScreenHeight = (DesktopArea.Bottom - DesktopArea.Top) * Screen.TwipsPerPixelY
ScreenWidth = (DesktopArea.Right - DesktopArea.Left) * Screen.TwipsPerPixelX
ScreenLeft = DesktopArea.Left * Screen.TwipsPerPixelX
ScreenTop = DesktopArea.Top * Screen.TwipsPerPixelY
frm.Move (ScreenWidth - frm.Width)/2 + ScreenLeft, _
(ScreenHeight - frm.Height)/2 + ScreenTop
End Function
- 1. 当屏幕尺寸减小时自动调整图像尺寸
- 2. QWebView:拉伸以填充屏幕尺寸?
- 3. Android仪表板以英寸为单位认为小尺寸,普通,大尺寸和xlarge屏幕尺寸?
- 4. 根据屏幕尺寸缩小字体大小/边距大小?
- 5. 什么是iPad的屏幕尺寸减去浏览器中的地址栏?
- 6. 屏幕尺寸
- 7. 屏幕尺寸
- 8. 调整图像大小以适应多种屏幕尺寸
- 9. iOS调整TextView大小以适应不同尺寸的屏幕
- 10. 大屏幕尺寸更大的ImageView
- 11. 如何重新调整标签的大小以适合任何屏幕尺寸
- 12. UITableView的尺寸表现不同的屏幕上大小怪
- 13. CSS屏幕尺寸
- 14. Android屏幕尺寸
- 15. Android屏幕尺寸
- 16. 为较小尺寸的屏幕调整图像大小
- 17. 保持GWT小部件大小的比例与屏幕尺寸
- 18. iphone应用尺寸小于屏幕
- 19. 在较小的屏幕尺寸上移除菜单栏
- 20. 扩大div超出屏幕尺寸
- 21. 宽度100%大于屏幕尺寸
- 22. 屏幕尺寸的最大等距砖?
- 23. 在缩小屏幕尺寸时更改填充或边距
- 24. java swing jframe尺寸返回尺寸更大屏幕
- 25. JFrame最大化屏幕尺寸与尺寸
- 26. 如何为不同的屏幕尺寸使用不同的操作栏大小?
- 27. NSRect大小填充屏幕
- 28. 适合更大屏幕尺寸的Android伸缩屏幕
- 29. 自定义布局是谁的大小是屏幕尺寸
- 30. 文字大小和不同的android屏幕尺寸
当它被最大化时锁定是否正确? – 2009-01-05 18:02:53
我不明白你的意思吗? – kjack 2009-01-05 23:16:52