以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何去掉BaseMainForm的关闭按钮?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87537)

--  作者:Hopenight
--  发布时间:2016/7/13 11:09:00
--  如何去掉BaseMainForm的关闭按钮?

想只保留最小化按钮,去除最大化/还原按钮和关闭按钮。

 

用BaseMainForm的话,点击右上角的关闭按钮,先去执行子窗口的关闭,再去执行BeforeCloseProject。

这个过程,我真是无语了。假如是用户点错了呢?大大,你这么设计你究竟是什么想的?说说,我不怪你...

 

 

图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2016/7/13 11:20:00
--  

禁用关闭按钮,参考

 

全局代码

 

Public Const SC_CLOSE As Integer = &Hf060
Public Const MF_ENABLED As Integer = &H0
Public Const MF_GRAYED As Integer = &H1
Public Const MF_DISABLED As Integer = &H2

<DllImport("user32.dll", EntryPoint := "GetSystemMenu")> _
Public Function GetSystemMenu(hWnd As IntPtr, bRevert As Integer) As IntPtr
End Function

<DllImport("User32.dll")> _
Public Function EnableMenuItem(hMenu As IntPtr, uIDEnableItem As Integer, uEnable As Integer) As Boolean
End Function

 

调用代码

 

Dim hMenu As IntPtr = GetSystemMenu(basemainform.Handle, 0)
EnableMenuItem(hMenu, SC_CLOSE, (MF_DISABLED + MF_GRAYED) Or MF_ENABLED)


--  作者:Hopenight
--  发布时间:2016/7/13 11:27:00
--  
请问一下,调用代码要写在哪里?
--  作者:大红袍
--  发布时间:2016/7/13 11:31:00
--  
全局代码 以及 afterOpenProject
--  作者:李睿涵
--  发布时间:2016/9/22 18:56:00
--  

怎么我照做无效啊

 


--  作者:有点蓝
--  发布时间:2016/9/22 20:30:00
--  
删除项目下bin目录试试。

一些有问题的系统可能会无效

--  作者:李睿涵
--  发布时间:2016/9/30 20:18:00
--  
以下是引用有点蓝在2016/9/22 20:30:00的发言:
删除项目下bin目录试试。

一些有问题的系统可能会无效

删除了bin目录 还是无效

 

我是14版的系统


--  作者:狐狸爸爸
--  发布时间:2016/10/1 8:10:00
--  

禁用主窗口的关闭按钮很简单:

 

RemoveXButton(baseMainform.handle)


--  作者:李睿涵
--  发布时间:2016/10/1 10:04:00
--  
以下是引用狐狸爸爸在2016/10/1 8:10:00的发言:

禁用主窗口的关闭按钮很简单:

 

RemoveXButton(baseMainform.handle)

14版测试无效


--  作者:狐狸爸爸
--  发布时间:2016/10/1 10:10:00
--  
那就升级