显示附加信息 >>>
如何使ACCESS主窗体右上角的一些按钮失效(禁止),比如关闭、最大化、最小化、还原
作者:cg1 摘自:access911.net 编辑:cg1 更新日期:2005-5-12 浏览人次:
http://access911.net/?kbid;72FAB01E15DCEAF3
问题:
回答:
如何调用API函数来屏蔽窗体上的还原按钮?
Dim hMenu As Long, Success As Long hMenu = GetSystemMenu(Application.hWndAccessApp, 0) '禁止还原按钮 Success = DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND) '禁止改变大小 Success = DeleteMenu(hMenu, SC_SIZE, MF_BYCOMMAND) '禁止最大化 Success = DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND) '禁止最小化 Success = DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND) '禁止关闭 Success = DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND) '禁止移动 Success = DeleteMenu(hMenu, SC_MOVE, MF_BYCOMMAND)
如果要用 API 函数去实现上述操作应该使用 SENDMESSAGE 函数
Private Sub Command_Click(Index As Integer) Dim S As String S = String(80, Chr(0))
Select Case Index Case 0 SendMessage Application.hWndAccessApp, WM_GETTEXT, Len(S), ByVal S '读出窗体的Caption '在用户自己的窗体中加一个文本框,用于操作ACCESS主窗体标题 Text1.Text = Left(S, InStr(S, Chr(0)) - 1) Case 1 '因为Text1.text属于Variant类型,所以一定先要用CStr把它转换成字符串 SendMessage Application.hWndAccessApp, WM_SETTEXT, 0, ByVal CStr(Text1.Text) '设置窗体的Caption Case 2 SendMessage Application.hWndAccessApp, WM_SYSCOMMAND, SC_MAXIMIZE, ByVal 0&'使窗体最大化 Case 3 SendMessage Application.hWndAccessApp, WM_SYSCOMMAND, SC_MINIMIZE, ByVal 0&'使窗体最小化 Case 4 SendMessage Application.hWndAccessApp, WM_SYSCOMMAND, SC_RESTORE, ByVal 0&'使窗体恢复原来的大小 Case 5 SendMessage Application.hWndAccessApp, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&'关闭窗体 End Select End Sub
本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。
access911.net 原创文章,作者本人对文章保留一切权利。如需转载必须征得作者同意并注明本站链接