在vb中大小窗口的设置问题,怎么样在大窗口上面设置小窗口,而且小窗口还一直浮动,在大窗口之前

在vb中大小窗口的设置问题,怎么样在大窗口上面设置小窗口,而且小窗口还一直浮动,在大窗口之前,第1张

只能 *** 作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怎么让窗口改变大小时控件也按比例改变大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9468918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存