Office中国论坛/Access中国论坛

标题: [求助]如何用代码调整窗体大小 [打印本页]

作者: wang1999    时间: 2004-9-5 19:08
标题: [求助]如何用代码调整窗体大小
我试过用窗体的WindowHeight和WindowWidth这两个属性,但都不能更改窗体(窗口)的大小,显示为只读,但我查看帮助文档却说这个属性是可读写的,有没有方法可以动态的改变窗体大小。其实我希望实现的效果就像Sygate软件一样,点一下命令按钮后就隐藏一部分窗体,再点就出现。
作者: wang1999    时间: 2004-9-5 21:11
没办法,只好想到用API了,代码如下,大家参考。如还更简单的方法,还请大家贴出来,谢谢Private Declare Function SetWindowPos Lib "user32" _

        (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _

        ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Const SWP_SHOWWINDOW = &H40

Private Const HWND_TOP = 0              '将窗口置于窗口列表顶部

Private Const SWP_NOMOVE = &H2          '保持当前位置(x和y设定被忽略)

Private Const SWP_NOZORDER = &H4        '保持窗口在列表的当前位置(hWndInsertAfter将被忽略)Private Sub Command0_Click()

    SetWindowPos Me.hwnd, HWND_TOP, 0, 0, 400, 100, SWP_NOMOVE Or SWP_NOZORDER

End Sub


作者: wang1999    时间: 2004-9-5 21:13
哦!对了SetWindowPos 中单位应该是象素值,VB中是缇,这一点不同
作者: 方漠    时间: 2004-9-6 04:29
Me.height=your wantsizeme.width=your wantsizeme.repaint
作者: wu8313    时间: 2004-9-6 05:24
看看我写这个例子可以吗?分成简约和完整两个显示模式。[attach]6488[/attach]



[此贴子已经被作者于2004-9-5 21:24:24编辑过]


作者: wang1999    时间: 2004-9-6 05:31
方漠:可惜上述方法我已试过无用,它只能调整窗体内区域的宽度,但不能调整窗口宽度,所以用me.repaint也无效
作者: mrl    时间: 2004-9-6 06:16
Pravite Sub FORM_Load()

DoCmd.MoveSize 500,500,3500,2000

End Sub

这样就能让窗体在启动的时候将其定位在距离屏幕顶端500踶,屏幕左边距离为500踶,同时,窗体的大小为3500×2000踶。


作者: wang1999    时间: 2004-9-6 06:47
用了这么久Access,"movesize"方法一直没注意到谢谢mrl!movesize应该是简单的方法了,直接可以调用实现动态改变窗体大小,不用API那么麻烦(不过API还是要稍微灵活一点)[em08]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3