只能 *** 作form2 其他窗体无法 *** 作: form2show 1
也可以通过API来控制:
Option Explicit
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)
Private Sub Command1_Click()
' 窗口置前
Dim myval
myval = SetWindowPos(form1hwnd, -1, 0, 0, 0, 0, 3)
End Sub
Private Sub Command2_Click()
'窗口正常
Dim myval
myval = SetWindowPos(form1hwnd, -2, 0, 0, 0, 0, 3)
End Sub
Private Sub Command3_Click()
'窗口置后
Dim myval
myval = SetWindowPos(form1hwnd, 1, 0, 0, 0, 0, 3)
End Sub
还有一些:
Option Explicit
''使指定窗口总在最前
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
Const HWND_TOPMOST = -1
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const SWP_NOZORDER = &H8
Sub SetFormTopmost(TheForm As Form)
SetWindowPos TheFormhwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZE
End Sub
Sub Form_Load()
SetFormTopmost Me ''只需要改动这里,ME换成你想放在最前的窗体名
End Sub
WM_SIZE和WM_SETTINGCHANGE消息
如果窗口大小改变,窗口收到
WM_SIZE
通知。WM_SIZE
消息的
lParam
参数的低位字指定了客户端区域的新宽度,高位字指定了客户端区域的新高度。应用程序应识别窗口大小的改变,并相应地更新窗口布局。此外,也应重新确定所包含任何子窗口的布局。WM_SIZE和WM_SETTINGCHANGE有什么区别呢如果应用程序没有全屏窗口,它收不到
WM_SIZE
通知。相反,它应在
wParam
参数设置为SETTINGCHANGE_RESET时监听
WM_SETTINGCHANGE消息。如果应用程序有顶层窗口,或使用
SHHandleWMSettingChange、SHInitDialog
和
SHFullScreen
方法创建了窗口,它会同时收到
WM_SIZE
和
WM_SETTINGCHANGE
消息。但是,如果应用程序创建了子窗口,子窗口收不到
WM_SIZE
消息,即使子窗口是全屏窗口。
可以用窗体的Resize事件来实现,改变窗体大小时,控件大小跟窗体成比例,不过如果最小化的时候就会出错,所以还得把最小化的事件给去了,代码如下:
Private Sub Form_Resize()
If MeWindowState <> 1 Then '如果不是最小化
Command1Width = MeWidth / 5 '按钮宽度是窗体的1/5
Command1Height = MeHeight / 5 '按钮高度是窗体的1/5
End If
End Sub
参数可以自己设定,其它的也是如此,细节还得自己弄了,如果想让控件居中可以这样:
Private Sub Form_Resize()
If MeWindowState <> 1 Then '如果不是最小化
Command1Width = MeWidth / 5 '按钮宽度是窗体的1/5
Command1Height = MeHeight / 5 '按钮高度是窗体的1/5
Command1Left = (MeWidth - Command1Width) / 2 '按钮左边
Command1Top = (MeHeight - Command1Height) / 2 '按钮顶边
End If
End Sub
这样就可以随窗体改变而改变了。
以上就是关于在vb中大小窗口的设置问题,怎么样在大窗口上面设置小窗口,而且小窗口还一直浮动,在大窗口之前全部的内容,包括:在vb中大小窗口的设置问题,怎么样在大窗口上面设置小窗口,而且小窗口还一直浮动,在大窗口之前、用VB编写的windows mobile软件,如何设置软件窗口大小、VB怎么让窗口改变大小时控件也按比例改变大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)