已经屏蔽了windows任务栏
此时窗体最大化后,任务栏区域覆盖不了
如何在最大化时让其铺满全屏?
谢谢各位
此时窗体最大化后,任务栏区域覆盖不了
如何在最大化时让其铺满全屏?
谢谢各位
解决方案 »
- treeview如何显示sqlserver表中的数据
- 在TDBGrid中设置了一列显示为:CHECKBOX 如何可以实现让他可以点击修改?
- 菜问题一个:VB 字符串里的回车怎样表示啊,谢谢
- 两个ado根据对应关系放到一个datagrid?(关联)?
- 请问如何知道某个字属于那个字符集 如汉字日文韩文应该分辨属于其不同的字符集中
- 一个简单的问题
- 东芝笔记本(TOSHIBA 2210CDT, MODEL:PS221Q-49008)开机密码丢失,兄弟们如能帮忙解决,本人可用分1810,全部相送(请版主手下留情,勿
- 请指教,关于Forms集合
- MSHFlexGrid的问题
- 哈哈哈!
- VB COMBOBOX问题
- 求教在MSFlexGrid上划曲线的方法,谢谢!!!
在模块里 Option Explicit
Public OldWindowProc As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const WM_GETMINMAXINFO = &H24
Type POINTAPI
x As Long
y As Long
End Type
Type MINMAXINFO
ptReserved As POINTAPI
ptMaxSize As POINTAPI
ptMaxPosition As POINTAPI
ptMinTrackSize As POINTAPI
ptMaxTrackSize As POINTAPI
End Type Public Function SubClass1_WndMessage(ByVal hwnd As Long, ByVal Msg As Long, ByVal wp As Long, ByVal lp As Long) As Long
If Msg = WM_GETMINMAXINFO Then
Dim MinMax As MINMAXINFO
CopyMemory MinMax, ByVal lp, Len(MinMax)
MinMax.ptMinTrackSize.x = Screen.Width / Screen.TwipsPerPixelX '最小X 你自己改去吧
MinMax.ptMinTrackSize.y = Screen.Height / Screen.TwipsPerPixelY - 25 '最小Y
MinMax.ptMaxTrackSize.x = Screen.Width / Screen.TwipsPerPixelX + 8 '最大X
MinMax.ptMaxTrackSize.y = Screen.Height / Screen.TwipsPerPixelY - 24 '最大Y
CopyMemory ByVal lp, MinMax, Len(MinMax)
SubClass1_WndMessage = 1
Exit Function
End If
SubClass1_WndMessage = CallWindowProc(OldWindowProc, hwnd, Msg, wp, lp)
End Function
在窗体里
Option Explicit Const WS_MAXIMIZEBOX = &H10000 '最大化按纽
Const GWL_STYLE = (-16)
Const GWL_WNDPROC = (-4)
Private Sub MDIForm_Load()
Dim lWnd As Long
Me.WindowState = 2 '窗口状态是最大化
lWnd = GetWindowLong(Me.hwnd, GWL_STYLE)
lWnd = lWnd And Not (WS_MAXIMIZEBOX) '样式里去掉最大化按纽
lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd)
OldWindowProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
Call SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf SubClass1_WndMessage)
End Sub Private Sub MDIForm_Unload(Cancel As Integer)
Call SetWindowLong(Me.hwnd, GWL_WNDPROC, OldWindowProc)
End Sub
我试了一下可以铺满全屏
我试了一下可以铺满全屏
minimizedFocus处于最小化
MaximizedFocus处于最大化
NormalFocus处于 正常化
minimizedFocus处于最小化
MaximizedFocus处于最大化
NormalFocus处于 正常化
不过还是要谢谢各位 散分~~呵呵Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Private Const ABS_ALWAYSONTOP = &H2
Private Const ABS_AUTOHIDE = &H1
Private Const ABM_SETSTATE = &HA
Private Type APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
rc As RECT
lParam As Long
End TypePrivate Sub HideTask()
Dim mBar As APPBARDATA
mBar.hwnd = hTaskBar
mBar.lParam = ABS_AUTOHIDE
SHAppBarMessage ABM_SETSTATE, mBar
End Sub
Public Sub ShowTask()
Dim mBar As APPBARDATA
mBar.hwnd = hTaskBar
mBar.lParam = ABS_ALWAYSONTOP
SHAppBarMessage ABM_SETSTATE, mBar
End SubPrivate sub Command1_Click()'屏蔽Windows
HideTask
Shell "taskkill.exe /im explorer.exe /f", vbHide
Form1.WindowState = 2
End sub