查看完整版本: 如何使窗体右上角的“X”无效?

jjxq 2007-12-4 09:23

如何使窗体右上角的“X”无效?

  要Disable Form "X" -->Close的功能(便暗灰色),事实上便是从Form左上方的SystemMenu将关闭的MenuItem去除掉便可以了,去除后,又该如何,那便是在将关闭(Close)的MenuItem加回去
  但这里有个小问题,加回去之后"X"仍是暗灰色,要等到我们做了某些固定的动作之后(如TittleBar上Click一下,或选一下SystemMenu等),
我不知道让TittleBar上的这些东西Refresh要送什么消息,所以现在我暂且Send一个在TittleBar上按下Mouse左键的消息给窗体,令"X"能出现的Enable颜色

在窗体上放置一个Command Button,输入以下代码,运行,点击一下Command Button 就可使"X" Enable.

** Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As Long, ByVal
bRevert As Long) As Long
** Declare Function DeleteMenu Lib "User32" (ByVal hMenu As Long, ByVal
nPosition As Long, ByVal wFlags As Long) As Long
** Declare Function AppendMenu Lib "User32" Alias "AppendMenuA"
(ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As
Any) As Long
** Declare Function GetMenuString Lib "User32" Alias
"GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As
String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
** Declare Function SendMessage Lib "User32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Const WM_NCLBUTTONDBLCLK =
页: [1]

查看完整版本: 如何使窗体右上角的“X”无效?