所以我有一个Access应用程序,我想要一些表单在打开时最大化,而其他表单在打开时要中等大小。但是,如果我尝试这样的事情:
Private Sub Form_Activate()
DoCmd.Maximize
End Sub
或
Private Sub Form_Activate()
DoCmd.Restore
End Sub
它具有最大化或恢复每个打开的窗口的效果,这不是我正在寻找的。 p>
有什么方法吗?
我正在使用Access 2003。
答案 0 :(得分:2)
Access是一个MDI(多文档界面)应用程序,这就是它们的工作方式:所有子窗口都被最大化,或者没有。
您需要做的是找到一种方法来发现Access应用程序窗口的维度,然后以编程方式设置表单的.InsideWidth和.InsideHeight属性。 Application
对象有hwndAccessApp
,可能可以与某些Windows API调用一起使用来查找其宽度和高度。
感谢Philippe Grondier找到相关的代码示例,code sample的一般想法是:
struct Rect
(VBA中为Type Rect…
)const SW_SHOWNORMAL = 1
(适用于ShowWindow)GetParent
(给予一个hwnd,得到它的父母的hwnd)GetClientRect
(从hwnd检索位置和大小)IsZoomed
(布尔值;如果窗口最大化,则为true)ShowWindow
(更改窗口状态)MoveWindow
(更改窗口的位置和大小)IsZoomed(frm.hWnd) = True
),则将其还原(ShowWindow frm.hWnd, SW_SHOWNORMAL
)GetClientRect GetParent(frm.hWnd, rect)
)MoveWindow frm.hWnd, 0, 0, rect.x2-rect.x1, rect.y2-rect.y1
)(以上基本上是对代码示例的解释;我没有复制粘贴代码,因为我不确定作者是否允许它。)
答案 1 :(得分:2)
ΤΖΩΤΖΙΟΥ在说全部最大化或没有最大化时是100%正确的。如果你真的想要管理这个问题,你将需要阅读一点here(查看建议的代码和调用它的方法),了解做了什么,并最终构建自己的解决方案取决于您的需求。
答案 2 :(得分:0)
您可以使用MoveSize:
DoCmd.MoveSize 100,100
更多信息:http://msdn.microsoft.com/en-us/library/aa141514(office.10).aspx
答案 3 :(得分:0)
这里有几个选项:http://www.jamiessoftware.tk/articles/resolution.html
我过去使用ADHResize并完成了工作。