vb中如何将窗体右上角的关闭功能封闭掉

wubaiyong 2005-02-17 02:17:44
vb中如何将窗体右上角的关闭功能封闭掉
...全文
146 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wubaiyong 2005-02-17
  • 打赏
  • 举报
回复
我知道API可以,现在因为比较急,请各位大侠贴出代码
xiongchen 2005-02-17
  • 打赏
  • 举报
回复
需要借助API了,因为系统没有提供这样的类
以下是VB.NET的代码:

'API声明

Private Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As Integer, ByVal bRevert As Long) As Integer

Private Declare Function RemoveMenu Lib "User32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer

Private Declare Function DrawMenuBar Lib "User32" (ByVal hwnd As Integer) As Integer

Private Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Integer) As Integer

Private Const MF_BYPOSITION = &H400&

Private Const MF_DISABLED = &H2&



Private Sub disableX(ByVal wnd As Form)

Dim hMenu As Integer, nCount As Integer

'得到系统Menu

hMenu = GetSystemMenu(wnd.Handle.ToInt32, 0)

'得到系统Menu的个数

nCount = GetMenuItemCount(hMenu)

'去除系统Menu

Call RemoveMenu(hMenu, nCount - 1, MF_BYPOSITION Or MF_DISABLED)

'重画MenuBar

DrawMenuBar(Me.Handle.ToInt32)

End Sub



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'使用X不能用

disableX(Me)

End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'关闭窗口

Me.Close()

End Sub



'如果还要屏蔽Alt+F4,加上

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)

Dim SC_CLOSE As Integer = 61536

Dim WM_SYSCOMMAND As Integer = 274

'判断是系统消息,是不是关闭窗体,使Alt+F4无效

If m.Msg = WM_SYSCOMMAND AndAlso m.WParam.ToInt32 = SC_CLOSE Then

Exit Sub

End If

MyBase.WndProc(m)

End Sub

3tzjq 2005-02-17
  • 打赏
  • 举报
回复
上面代码也可以,如果你还想隐藏 X 按钮就可以:me.ControlBox=False
T2 2005-02-17
  • 打赏
  • 举报
回复
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
e.Cancel = True
End Sub
nga96 2005-02-17
  • 打赏
  • 举报
回复
听说API能行,好像没有直接的属性的
查一下API吧
wubaiyong 2005-02-17
  • 打赏
  • 举报
回复
并且保留最大化及最小化按钮

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧