| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2647 人关注过本帖
标题:mdi子窗体体如何实现只能最大化,不能还原呀?
只看楼主 加入收藏
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
结帖率:86.25%
收藏
 问题点数:0 回复次数:17 
mdi子窗体体如何实现只能最大化,不能还原呀?

mdi子窗体体如何实现只能最大化,不能还原呀?
因为用户总是会点一下还原按钮,这样所有已经打开的mdi子窗体都会变小,非常难看,所以我想限制一下,让mdi子窗体只能最大化,不能还原.禁止最小化可以,可是禁止还原如何实现呀?



经网友提示,我已找到答案,就是设置mdi子窗体的controlbox属性为false即可。

[此贴子已经被multiple1902于2007-8-31 11:54:46编辑过]

搜索更多相关主题的帖子: mdi子 窗体 最大化 属性 false 
2007-08-30 10:33
multiple19O2
Rank: 1
等 级:新手上路
帖 子:326
专家分:0
注 册:2007-8-29
收藏
得分:0 
BEN你来看一下 这个问题不值得探讨。
2007-08-30 10:37
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
BEN你来看一下 这个问题不值得探讨。

ben是谁呀?为什么不值得探讨,太简单吗?可是我不会呀,再说这也是关系到用户体验呀!

2007-08-30 10:58
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 

''''新建一个模块,COPY 下面的代码:
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const GWL_WNDPROC = (-4)
Public Const WM_NCLBUTTONDBLCLK = &HA3

Public prevWndProc As Long

Public Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error GoTo ShowErr

If Msg = WM_NCLBUTTONDBLCLK Then
Exit Function
End If
WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
Exit Function
ShowErr:
WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
Exit Function
End Function


'在窗体里加如下代码
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Const MF_BYPOSITION = &H400&
Const MF_REMOVE = &H1000&


Private Sub form_Load()
Me.WindowState = 2
Dim hSysMenu As Long, nCnt As Long
hSysMenu = GetSystemMenu(Me.hwnd, False)
If hSysMenu Then
nCnt = GetMenuItemCount(hSysMenu)
If nCnt Then
RemoveMenu hSysMenu, 0, MF_BYPOSITION Or MF_REMOVE
DrawMenuBar Me.hwnd
End If
End If

prevWndProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
SetWindowLong Me.hwnd, GWL_WNDPROC, AddressOf WndProc
End Sub

Private Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hwnd, GWL_WNDPROC, prevWndProc
End Sub


2007-08-30 10:58
BEARBEN
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2007-7-7
收藏
得分:0 
只需要在MDI子窗体的MinButton这个选项从True改为False即可。

2007-08-30 10:59
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 
不是,如果简单只实现, 用resize里面写

if WindowState = 1 then
else
WindowState = 2
end if

就可以了,不过这样比较闪 而且有的时候 双击标题栏还会变的

2007-08-30 11:01
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 
以下是引用BEARBEN在2007-8-30 10:59:35的发言:
只需要在MDI子窗体的MinButton这个选项从True改为False即可。

是maxbutton吧


2007-08-30 11:04
BEARBEN
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2007-7-7
收藏
得分:0 
不过发现MAXButton也不能很好的解决LZ的问题,multiple1902先生特别请我来回答的

[此贴子已经被multiple1902于2007-8-30 13:12:15编辑过]



2007-08-30 11:09
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
不想用api,太麻烦,没有别的好办法吗?

2007-08-30 13:11
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
以下是引用ggyy66在2007-8-30 13:11:04的发言:
不想用api,太麻烦,没有别的好办法吗?

那貌似没有了。
不用API的代码上面也有了

2007-08-30 13:12
快速回复:mdi子窗体体如何实现只能最大化,不能还原呀?
数据加载中...
 
   



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

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