各位网友:
1:
Dim hMenu As Long
hMenu = GetSystemMenu(hwnd, False)
DeleteMenu hMenu, 6, &H400 'delete Close
DeleteMenu hMenu, 5, &H400 'delete -
2:dim f as form
for each f in forms
if f.MDIChild then Unload f
next
1:
Dim hMenu As Long
hMenu = GetSystemMenu(hwnd, False)
DeleteMenu hMenu, 6, &H400 'delete Close
DeleteMenu hMenu, 5, &H400 'delete -
2:dim f as form
for each f in forms
if f.MDIChild then Unload f
next
多谢大家的关心。由于公司网络系统瘫痪,故没能即时回复和公布源程序,请大家见晾。TopHead 提供的源程序可以将关闭按钮功能屏蔽掉。但不能去掉最大化和最小化按钮和我的想法相反。但他提供了大家一个方法,大家可以自己琢磨一下如何能去掉最大化和最小化按钮,有消息和我联系。在次深表感谢!!!
TopHead的源程序
1:
Dim hMenu As Long
hMenu = GetSystemMenu(hwnd, False)
DeleteMenu hMenu, 6, &H400 'delete Close
DeleteMenu hMenu, 5, &H400 'delete -
2:dim f as form
for each f in forms
if f.MDIChild then Unload f
next
Option Explicit
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Const MF_BYPOSITION = &H400&
Private Const GWL_STYLE = (-16)
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongPrivate Sub m1_Click()
Dim a As Form
For Each a In Forms
If Not a Is MDIForm1 Then Unload a
Next
End SubPrivate Sub MDIForm_Load()
Dim l1 As Long, l2 As Long
l1 = GetWindowLong(Me.hwnd, GWL_STYLE)
Call SetWindowLong(Me.hwnd, GWL_STYLE, l1 And Not WS_MAXIMIZEBOX And Not WS_MINIMIZEBOX)
l2 = GetSystemMenu(Me.hwnd, 0)
Call RemoveMenu(l2, 3, MF_BYPOSITION)
Call RemoveMenu(l2, 3, MF_BYPOSITION)
Form1.Show
Form2.Show
End Sub
你好!
上回我收到的源程序确实和这次的不同,这次和我的问题完全符合。多谢你热心的帮助。各位网友如有这方面的需要可从这次的源代码获得解决的办法。
再次感谢TopHead.
sunny 2000.5.25