标题:请问办法让MDI窗体按固定大小显示吗?
只看楼主
hsbwp1314
Rank: 2
来 自:湖南长沙
等 级:论坛游民
帖 子:88
专家分:25
注 册:2008-12-1
结帖率:53.85%
 问题点数:0 回复次数:9 
请问办法让MDI窗体按固定大小显示吗?



请问有办法让MDI窗体按设置时的大小显示,而不被随意拉动大小吗
搜索更多相关主题的帖子: 窗体 MDI 办法 
2010-10-20 23:11
hsbwp1314
Rank: 2
来 自:湖南长沙
等 级:论坛游民
帖 子:88
专家分:25
注 册:2008-12-1
得分:0 
班主,没有知道吗,可以还是不可以
2010-10-21 20:50
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
得分:0 
程序代码:
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const WS_THICKFRAME As Long = &H40000
Private Const WS_MINIMIZEBOX = &H20000
Private Const GWL_STYLE = (-16)
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

Private Sub MDIForm_Load()
        Dim lStyle     As Long

        lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
        lStyle = lStyle And Not WS_MAXIMIZEBOX             '最大化
        lStyle = lStyle And Not WS_MINIMIZEBOX             '最小化
        lStyle = lStyle And Not WS_THICKFRAME             '可改变大小的边框
        SetWindowLong Me.hwnd, GWL_STYLE, lStyle
End Sub


[ 本帖最后由 jiashie 于 2010-10-21 22:23 编辑 ]
2010-10-21 22:21
hsbwp1314
Rank: 2
来 自:湖南长沙
等 级:论坛游民
帖 子:88
专家分:25
注 册:2008-12-1
得分:0 

加载时出现上面提示,请问要怎么样使用?
2010-10-24 18:57
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
得分:0 
无语。

Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const WS_THICKFRAME As Long = &H40000
Private Const WS_MINIMIZEBOX = &H20000
Private Const GWL_STYLE = (-16)
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

一定要放到一个模块的所有代码之前(option explicit之后,如果有option explicit的话)
2010-10-24 19:10
hsbwp1314
Rank: 2
来 自:湖南长沙
等 级:论坛游民
帖 子:88
专家分:25
注 册:2008-12-1
得分:0 

结果是这样的
2010-11-09 08:46
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
重复 5 楼的回复.

Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const WS_THICKFRAME As Long = &H40000
Private Const WS_MINIMIZEBOX = &H20000
Private Const GWL_STYLE = (-16)
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


这些语句, 放在窗体 代码的最前面. 所有的
Private Sub XXX  之前.

如果你代码 第一句是
option explicit
那么就放在这句之后.
还是在 Private Sub XXX  之前.

--------------
你四楼提示,说明位置放错了.
你 6 楼错误,说明 你没放,或者该窗体里没放.
--------------
如果你有多少窗体需要使用,那么你把这些代码的
Private  改成 Public ,然后放在 模块 (.bas ) 文件中.


授人于鱼,不如授人于渔
早已停用QQ了
2010-11-09 10:05
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
得分:0 
嗯,版主、辛苦了。
2010-11-09 13:23
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
得分:0 
没那么复杂,窗体有一个resize事件,对它处理就行了,比如需要窗体大小为8000,6000
响应resize事件的代码为
Private Sub Form_Resize()
  If Me.WindowState <> 1 Then
    '窗体不是最小化时执行固定窗口大小的操作
    Me.Height = 6000
    Me.Width = 8000
  End If
End Sub
2010-11-09 19:20
hsbwp1314
Rank: 2
来 自:湖南长沙
等 级:论坛游民
帖 子:88
专家分:25
注 册:2008-12-1
得分:0 
谢谢班主
2010-11-23 21:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-323503-1-1.html




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

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