VB 窗体能不能只显示“最小化”和“关闭”图标,不显示“最大化”那个图标

1.最好不用API

2.如果必须用API我想知道API稳定吗?在XP下编写的能不能在WIN2000/VISTA/WIN7/WIN8下使用呢?
麻烦解答,谢谢。
另外也不能使用鼠标拖动改变窗体大小
-------------------------
我这样做的目的是:因为我的程序没法适应桌面分辨率,我干脆就做成1024*768的,不让用户改变大小(以免露出多余边缘不好看)。
VB自带的那个功能连“最小化到状态栏”也去掉了,这显然是不合适的。

第1个回答  2013-05-08
不知道你用的什么开发软件,如果是vb.net呢,在窗口加载路径里面加入这样一行代码就OK了,最大化就会灰了,不让点:
form1.MaximizeBox=false
或者直接在主窗口属性里面找到这项,将ture改为false就OK了追问

我是VB6.0

追答

应该也差不多的吧,你在右边的属性窗口里面找一下,看有没有MaximizeBox这一项?有的话,他默认是true的,你直接改成false再编译下,就好了
要不你就在代码区里面尝试下写入这个:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
form1.MaximizeBox=false
‘或者输入 me.MaximizeBox=false
End Sub

追问

切,你这玩意不好使。VB6.0没有maximizebox

第2个回答  2013-05-08
不用API你还能用什么实现呢。
可以的,没有问题。追问

能给我个源代码吗?保证在其他WIN系统下也好使的,谢谢。我是VB6.0

追答

看了上面的回答,你到底是想不显示还是灰化不让点?这两个不一样,灰化的话直接在form的maxbutton=false就ok了。

追问

当然是不显示了,只显示“-”(最小化到任务栏)和“x”(关闭),不显示哪个“口”(放大或缩小)。当然如果显示“口”但不让点也可以。

追答

如果是不让点的话,按我上面说的设置一下就ok了。手头没有直接删除最大化按钮的api,现成的是'Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
'Const WS_MINIMIZEBOX = &H20000
'Const WS_MAXIMIZEBOX = &H10000
'Const GWL_STYLE = (-16)
'
'Private Sub Form_Load()
'Dim lWnd As Long
'lWnd = GetWindowLong(Me.hwnd, GWL_STYLE)
'lWnd = lWnd And Not (WS_MINIMIZEBOX)
'lWnd = lWnd And Not (WS_MAXIMIZEBOX)
'lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd)
'End Sub
可以参考一下

本回答被提问者采纳
相似回答