| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1231 人关注过本帖
标题:[求助]怎么能不让窗体右上角的X使用!
只看楼主 加入收藏
yani001
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2004-12-10
收藏
 问题点数:0 回复次数:11 
[求助]怎么能不让窗体右上角的X使用!
就是把右上角的X取消或者不可用!能用编程来实现吗?
如果能话请给出代码!先谢谢了
搜索更多相关主题的帖子: 窗体 右上角 
2005-05-11 11:06
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
Delphi 中是这样处理的:

在close 事件中添加:Action:=CaNone;

OK了!

VB中可能和这差不多吧!

2005-05-11 11:09
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 

Private Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Private Declare Function DeleteMenu Lib "User32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Private 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 Private 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 Private 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 = &HA3 Const WM_NCLBUTTONDOWN = &HA1 Const HTCAPTION = 2 Const MF_STRING = &H0& Const MF_BYCOMMAND = &H0& Const SC_CLOSE = &HF060

Private hMenu As Long Private CloseStr As String '记录Close MenuItem的字串

'将"关闭"的那一个MenuItem 加回来 Private Sub Command1_Click() Call AppendMenu(hMenu, MF_STRING, SC_CLOSE, CloseStr)

'令"X"能出现Enable的颜色 Call SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&) End Sub

Private Sub Form_Load() hMenu = GetSystemMenu(Me.hwnd, 0) CloseStr = String(255, 0)

'SC_CLOSE指的便是"关闭"的那一个MenuItem ID Call GetMenuString(hMenu, SC_CLOSE, CloseStr, 256, MF_BYCOMMAND) CloseStr = Left(CloseStr, InStr(1, CloseStr, Chr(0)) - 1)

Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND) End Sub


天津网站建设 http://www./
2005-05-11 11:13
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
斑主太厉害了,俺看不懂E文!

2005-05-11 11:17
yani001
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2004-12-10
收藏
得分:0 
多谢!已经在试中
遇到问题还会来问的
2005-05-11 11:41
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
不知道我说的那种能不能用?

2005-05-11 12:50
loveve
Rank: 4
等 级:业余侠客
威 望:1
帖 子:452
专家分:213
注 册:2005-4-11
收藏
得分:0 
这里是vb ,你说的能用吗

五月的雪
2005-05-11 16:39
天际流星
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2005-3-18
收藏
得分:0 
窗体右上角的X是什么?

2005-05-15 12:07
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
"X"就是关闭按钮!

2005-05-18 17:14
酒干倘卖无
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-5-1
收藏
得分:0 
使用 Form_QueryUnload:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode < 2 Then
Cancel = True
End If
End Sub

详细请搜索 Form_QueryUnload 的用法
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode < 2 Then
'Tishi = MsgBox("是否关闭?", vbYesNo + vbQuestion, "提示信息")
'If Tishi = vbYes Then
'Unload Me
'Else:
Cancel = True
'End If
End If
End Sub

2005-05-18 23:51
快速回复:[求助]怎么能不让窗体右上角的X使用!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017714 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved