vb 窗口置顶

来源:百度知道 编辑:UC知道 时间:2024/06/27 19:41:52
用一个API函数SetWindowPos可实现此功能。
首先添加一个公用模块,将下面的代码放到模块的声明段中。

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

Public Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H8

将下面的子程序放到模块中

Public Sub SetFormTopmost(TheForm As Form)

SetWindowPos TheForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZE

End Sub

最后,通过调用该子程序设置你想要放置的窗体。例如,你想将窗体frmMyForm放在最前面,
代码如下:

SetFormTopmost frmMyForm.
这个SetFormTopmost frmMyForm.往哪里放啊
Private Sub Form_Load()
SetFormTopmost Form.
为什么我这样打被提示错误?
1楼的我不太明白到底要怎么样。。

这个也太麻烦了吧,看我的!
代码如下;
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
Private Const a& = -1
Private Const b& = &H1
Private Const c& = &H2
Private Sub Form_Load()
SetWindowPos Me.hwnd, a, 0, 0, 0, 0, b Or c
End Sub
直接复制到窗体的代码窗口中,运行就行了!

你的Form后面多了一个点,并且Form是各类型,不是实例。估计你要的应该是:
SetFormTopmost Form1 'Form1就是你要置顶的窗口名.
这句话可以放在Form_Load过程里.
其实你的方法和满意答案里的是完全一样的.就是他的在一起,你的分开两半了.

放在开头