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 LongPublic Function TopMost(ByVal oForm As Form, Optional ByVal fTop As Boolean = True) As Boolean
Dim lReturn As Long
Dim lpx As Long
Dim lPY As Long
Dim lTop As Long
Dim lLeft As Long
Dim lWidth As Long
Dim lHeight As Long
Dim lShow As Long
lShow = IIf(fTop = True, HWND_TOPMOST, HWND_NOTOPMOST)
With Screen
lpx = .TwipsPerPixelX
lPY = .TwipsPerPixelY
End With
With oForm
lLeft = .Left / lpx
lTop = .Top / lPY
lWidth = .Width / lpx
lHeight = .Height / lPY
End With
lReturn = SetWindowPos(oForm.hWnd, lShow, lLeft, lTop, lWidth, lHeight, SWP_SHOWWINDOW)
TopMost = (lReturn <> 0)
End Function
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 LongPublic Function TopMost(ByVal oForm As Form, Optional ByVal fTop As Boolean = True) As Boolean
Dim lReturn As Long
Dim lpx As Long
Dim lPY As Long
Dim lTop As Long
Dim lLeft As Long
Dim lWidth As Long
Dim lHeight As Long
Dim lShow As Long
lShow = IIf(fTop = True, HWND_TOPMOST, HWND_NOTOPMOST)
With Screen
lpx = .TwipsPerPixelX
lPY = .TwipsPerPixelY
End With
With oForm
lLeft = .Left / lpx
lTop = .Top / lPY
lWidth = .Width / lpx
lHeight = .Height / lPY
End With
lReturn = SetWindowPos(oForm.hWnd, lShow, lLeft, lTop, lWidth, lHeight, SWP_SHOWWINDOW)
TopMost = (lReturn <> 0)
End Function
解决方案 »
- 新人初到 请教下vbs下怎么获取当前和好友qq聊天的窗口title
- VB如何调用C的静态库?
- 怎样清楚文本框中的内容?在线等!多谢!
- 一个有关远程无线传送数据的问题
- 我如果直接在'通用'下写 dim conn as new adodb.connection和 Dim rs As ADODB.Recordset,行吗?
- 各位大侠帮忙呀!读照片的问题!
- 请问在vb中如何安排各form的显示次序?
- 高分请教算法问题
- 关于浏览器的问题
- 我的DCom/ActiveX EXE在中间层(控件)服务器上手工注册并手工配置DComcnfg后能成功运行,我能否写代码让ActiveX ExE自动注册,并自动配置DComcnfg(因为让客户做这两步比较麻烦!)
- 请大家试试,google是不是不能用了??郁闷ing....
- 纪录中的变量能用保留字吗
Private Const HWND_DESKTOP = 0
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOP = 0
Private Const HWND_TOPMOST = -1
Private Const SWP_HIDEWINDOW = &H80
Private Const SWP_SHOWWINDOW = &H40
常量忘了写了这个函数封装的很简单了
还要怎样说明?你就 TopMost frmname ,True/False 就可以了
' 将窗口置于列表顶部,并位于任何最顶部窗口的前面
Private Const SWP_NOSIZE& = &H1
' 保持窗口大小
Private Const SWP_NOMOVE& = &H2
' 保持窗口位置
Private Sub Form_Load()SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
' 将窗口设为总在最前End Sub