如以下代码所示可以将窗体系统控制菜单中的最大化菜单项禁止变灰:Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" ( _
ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long, _
ByVal wIDNewItem As Long, _
ByVal lpString As Any) As Long
Private Const SC_MAXIMIZE = &HF030&
Private Const MF_BYCOMMAND = &H0
Private Const MF_STRING = &H0
Private Const MF_ENABLED = &H0&
Private Const MF_GRAYED = &H1
Private Const MF_DISABLED = &H2&
Private Declare Function SetWindowPos Lib "user32" ( _
ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal wFlags As Long) As Long
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const SWP_FRAMECHANGED = &H20 'The frame changed: send WM_NCCALCSIZEPublic Sub Maximize()
Call ModifyMenu(GetSystemMenu(m_lngWinhWnd, False), SC_MAXIMIZE, MF_BYCOMMAND + MF_STRING + MF_GRAYED + MF_DISABLED, 0&, "最大化(&X)")
Call SetWindowPos(m_lngWinhWnd, 0&, 0&, 0&, 0&, 0&, SWP_NOMOVE + SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED)
End Sub
可是当我再使用以下代码将禁止变灰的菜单项恢复为可用时怎么却始终不起作用呢?
Call ModifyMenu(GetSystemMenu(m_lngWinhWnd, False), SC_MAXIMIZE, MF_BYCOMMAND + MF_STRING + MF_ENABLED, 0&, "最大化(&X)")
Call SetWindowPos(m_lngWinhWnd, 0&, 0&, 0&, 0&, 0&, SWP_NOMOVE + SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED)
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" ( _
ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long, _
ByVal wIDNewItem As Long, _
ByVal lpString As Any) As Long
Private Const SC_MAXIMIZE = &HF030&
Private Const MF_BYCOMMAND = &H0
Private Const MF_STRING = &H0
Private Const MF_ENABLED = &H0&
Private Const MF_GRAYED = &H1
Private Const MF_DISABLED = &H2&
Private Declare Function SetWindowPos Lib "user32" ( _
ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal wFlags As Long) As Long
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const SWP_FRAMECHANGED = &H20 'The frame changed: send WM_NCCALCSIZEPublic Sub Maximize()
Call ModifyMenu(GetSystemMenu(m_lngWinhWnd, False), SC_MAXIMIZE, MF_BYCOMMAND + MF_STRING + MF_GRAYED + MF_DISABLED, 0&, "最大化(&X)")
Call SetWindowPos(m_lngWinhWnd, 0&, 0&, 0&, 0&, 0&, SWP_NOMOVE + SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED)
End Sub
可是当我再使用以下代码将禁止变灰的菜单项恢复为可用时怎么却始终不起作用呢?
Call ModifyMenu(GetSystemMenu(m_lngWinhWnd, False), SC_MAXIMIZE, MF_BYCOMMAND + MF_STRING + MF_ENABLED, 0&, "最大化(&X)")
Call SetWindowPos(m_lngWinhWnd, 0&, 0&, 0&, 0&, 0&, SWP_NOMOVE + SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED)
解决方案 »
- vb6.0 提示:参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突
- 如何把file中的文件的内容输入到text中
- 谁有刻录VCD的控件
- 低级问题,能把所有的VB6。0的快捷键公布一下吗?
- 有关CELL的问题
- 我如果直接在'通用'下写 dim conn as new adodb.connection和 Dim rs As ADODB.Recordset,行吗?
- 为什么set datagrid1.datasource=rs不能绑定记录集呢?
- 在DELPHI 6中怎样在TADODatset中 锁定一条记录,使它不能移动?
- 吐血送分了!!!怎么压缩数据带密码的数据库…………………
- 多态用得多吗?用在什么地方?
- VB 语言转换为 ASP中的VBScript语言
- 求vb6用DOMDocument写XML头信息
重新画一下试试
http://www.newasp.net/code/vb/1166.html