1 怎么去掉mdi窗体的最大化按纽
2 在mdi窗体上加了一个"状态栏",在右下角出来一个能够改变[窗体大小的图标,怎样禁止掉
3 我的目的是除了最小化以外,不能改变mdi窗体的大小希望大家帮帮我!
2 在mdi窗体上加了一个"状态栏",在右下角出来一个能够改变[窗体大小的图标,怎样禁止掉
3 我的目的是除了最小化以外,不能改变mdi窗体的大小希望大家帮帮我!
解决方案 »
- 请大家帮帮忙注册邮箱~我需要很多投票马甲-感谢感谢
- VB如何通过串口给单片机发送数据
- 字符串问题转成代码?
- 救命!怎么用vb实现串口通信
- 关于串口通讯!不能够接到大于127的数据!500分!
- ado recordset addnew语法怎么使用,主要是带的参数不太明白.求助!!
- 请问高手如何把单独的数据包在installshield里面与应用程序一起打包进安装文件?
- 做了两个控件,好不容易上传了,却又不能下载!
- 用VB 控制数码相机,或读取其中的相片?请给点资料!
- 请问怎样找到指定的正在运行的应用程序窗体,并将该窗体关闭.
- VSFLEXGRID的中文输入的问题,解决问题马上给分.
- 怎么固定Listview中每行的位置
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Const MF_BYPOSITION = &H400&
Const MF_REMOVE = &H1000&
Private Sub Form_Load()
Dim hSysMenu As Long, nCnt As Long, i As Long
hSysMenu = GetSystemMenu(Me.hwnd, False)
If hSysMenu Then
nCnt = GetMenuItemCount(hSysMenu)
For i = nCnt To 0 Step -1
RemoveMenu hSysMenu, i, MF_BYPOSITION Or MF_REMOVE ' Remove the seperator
DrawMenuBar Me.hwnd
Me.Caption = "Try to close me!"
Next
End If
End Sub
Option ExplicitPrivate Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Const MF_BYPOSITION = &H400&
Private ReadyToClose As BooleanPrivate Sub RemoveMenus(frm As Form, _
remove_restore As Boolean, _
remove_move As Boolean, _
remove_size As Boolean, _
remove_minimize As Boolean, _
remove_maximize As Boolean, _
remove_seperator As Boolean, _
remove_close As Boolean)
Dim hMenu As Long
hMenu = GetSystemMenu(hwnd, False)
If remove_close Then DeleteMenu hMenu, 6, MF_BYPOSITION
If remove_seperator Then DeleteMenu hMenu, 5, MF_BYPOSITION
If remove_maximize Then DeleteMenu hMenu, 4, MF_BYPOSITION
If remove_minimize Then DeleteMenu hMenu, 3, MF_BYPOSITION
If remove_size Then DeleteMenu hMenu, 2, MF_BYPOSITION
If remove_move Then DeleteMenu hMenu, 1, MF_BYPOSITION
If remove_restore Then DeleteMenu hMenu, 0, MF_BYPOSITION
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = Not ReadyToClose
End SubPrivate Sub MDIForm_Load()
RemoveMenus Me, False, False, False, False, False, True, True
End Sub
不是windows状态栏
谢谢你们了,你们的代码功能上都实现了,但是
那怎么去掉或灰掉"最大化"的按纽和本程序"状态栏"右下角那个小图标呢?
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
#Else
Private Declare Function SetWindowLong Lib "User" (ByVal hwnd As Integer, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "User" (ByVal hwnd As Integer, ByVal nIndex As Integer) As Long
#End IfConst WS_MINIMIZEBOX = &H20000 '最小化
Const WS_MAXIMIZEBOX = &H10000 '最大化
Const GWL_STYLE = (-16)'在 MDIForm 的 MDIForm_Load 事件中加入以下程序码Sub MDIForm_Load()
Dim lWnd As Long
lWnd = GetWindowLong(Me.hwnd, GWL_STYLE)
lWnd = lWnd And Not (WS_MINIMIZEBOX) '最小化
lWnd = lWnd And Not (WS_MAXIMIZEBOX) '最大化
lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd)
End Sub