VB,窗体前置的问题!

来源:百度知道 编辑:UC知道 时间:2024/06/23 11:51:31
我想用VB作出来一个窗口,让他始终保持在屏幕所有窗口的最前面。
知道API setwindowpos函数,但是不知道怎么用。
我是个菜鸟,请高手把应该写入的代码发出来,只要窗体前置的不要
其他多余的。
最好能把中文翻译写出来,。 我会把所有分数追加上。
谢谢大家了!
在线等

Private Declare Function SetWindowPos& Lib "USER32" (ByVal hWnd&, ByVal after&, ByVal x&, ByVal y&, ByVal w&, ByVal h&, ByVal wflg&)
Const HWND_TOPMOST = -1
Private Sub Form_Initialize()
SetWindowPos Me.hWnd, -1, 0, 0, 0, 0, 3
End Sub

HWND_BOTTOM 将窗口置于窗口列表底部
HWND_TOP 将窗口置于Z序列的顶部;Z序列代表在分级结构中,窗口针对一个给定级别的窗口显示的顺序
HWND_TOPMOST 将窗口置于列表顶部,并位于任何最顶部窗口的前面
HWND_NOTOPMOST 将窗口置于列表顶部,并位于任何最顶部窗口的后面

再看SetWindowPos,可以说这个API可以看成设置窗口位置,但是最终的实现效果取决于咱们传递的参数,好了,在API浏览器中找到这个API,如下:

Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (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看起来有些复杂啊?不过别担心,有我在嘛,我会帮你好好分析的,这里还请大家别光我一个人分析,必须把自己融入进来,咱们一起分析这样不更有趣?好了,废话少说,先看第一个参数:

ByVal hwnd As Long??这里我就不讲了,传入窗口句柄

ByVal hWndInsertAfter As Long 好了,看看这个