你如何調整您的形式,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. 點擊後有小屏幕尺寸一個功能和屏幕尺寸大了
- 4. Android儀表板以英寸爲單位認爲小尺寸,普通,大尺寸和xlarge屏幕尺寸?
- 5. 根據屏幕尺寸縮小字體大小/邊距大小?
- 6. 什麼是iPad的屏幕尺寸減去瀏覽器中的地址欄?
- 7. 屏幕尺寸
- 8. 屏幕尺寸
- 9. 屏幕尺寸
- 10. 減小尺寸
- 11. iOS調整TextView大小以適應不同尺寸的屏幕
- 12. 調整圖像大小以適應多種屏幕尺寸
- 13. 大屏幕尺寸更大的ImageView
- 14. 如何重新調整標籤的大小以適合任何屏幕尺寸
- 15. 調整大小的UIScrollView 3.5和4英寸的屏幕尺寸
- 16. 當屏幕尺寸正在減小時遇到導航欄問題
- 17. UITableView的尺寸表現不同的屏幕上大小怪
- 18. 與屏幕尺寸
- 19. Android屏幕尺寸
- 20. CSS屏幕尺寸
- 21. Monodroid屏幕尺寸
- 22. 屏幕尺寸5
- 23. Android屏幕尺寸
- 24. 刪除元素時屏幕尺寸減小的wordpress
- 25. 從netCDF尺寸減去值
- 26. 爲較小尺寸的屏幕調整圖像大小
- 27. 根據屏幕尺寸更改小部件的大小?
- 28. 保持GWT小部件大小的比例與屏幕尺寸
- 29. 屏幕尺寸到圖像尺寸
- 30. iphone應用尺寸小於屏幕
當它被最大化時鎖定是否正確? – 2009-01-05 18:02:53
我不明白你的意思嗎? – kjack 2009-01-05 23:16:52