钢轨压板:VB 函数问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 04:52:25
请问在VB里怎样将一个窗体"总在前面"?
需要什么函数呢,请说详细一些,明白一些,如果能举几个例子那就更好了
谢谢

悬挂窗体(使窗体保持最前)
1、在窗体上建立一个复选框,名称:Check1,属性Caption改为“启用悬挂式窗体”写入下面代码
Private Sub Check1_Click()
Dim res As Long
If Check1.Value = 1 Then
res = SetWindowPos(Me.hwnd, HWND_TOPMOST, _
0, 0, 0, 0, Flags)
Else
res = SetWindowPos(Me.hwnd, HWND_NOTOPMOST, _
0, 0, 0, 0, Flags)

End If
End Sub
2、加入一个模块文件,写入下面代码
Public 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
'以上为API函数声明
Public Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_FRAMECHANGED = &H20
'The frame changed: send WM_NCCALCSIZE
Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
'以上为程序中用到的常量

Public Const HWND_BOTTOM = 1
Public Const HWND_BROADCAST = &HFFFF&
Public Const HWND_DESKTOP = 0
Public Const HWND_NOTOPMOST = -2
Public Const HWND_TOP = 0
Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOCOPYBITS = &H100
Public Const SWP_NOOWNERZORDER = &H200
'Don't do owner Z ordering
Public Const SWP_NOREDRAW = &H8
Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
Public Const SWP_NOZORDER = &H4
Public Const SWP_SHOWWINDOW = &H40
'以上常量声明在程序中没有使用
'可以试着在调用SetWindowPos函数时使用这些常量或它们的组合
'得到其他效果
Public Const Flags = SWP_DRAWFRAME Or SWP_NOMOVE Or SWP_NOSIZE