怎样让窗体form总在最前端显示?

lanchat 2004-06-28 10:53:59
怎样让窗体form总在最前端显示?
...全文
372 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
一事無成 2004-06-28
  • 打赏
  • 举报
回复
form1.show 1
幻影时空 2004-06-28
  • 打赏
  • 举报
回复
让窗体在所有程序的最前面用:

模块文件!
-----------
Option Explicit
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
Declare Function ChildWindowFromPoint Lib "user32" (ByVal hwnd As Long, ByVal xPoint As Long, ByVal yPoint As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_COMMAND = &H111
Public Const GWL_ID = (-12)
Public Declare Function ReleaseCapture Lib "user32" () As Long
Public Const HTCAPTION = 2
Public Const WM_NCLBUTTONDOWN = &HA1
Public cai As String
Public Const WM_SETTEXT = &HC
Public i As Integer

-------

设定:
Private Sub Command2_Click()
SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3
Label1(0).Caption = "已设定窗体总在最上面!"
Label1(1).Caption = "已设定窗体总在最上面!"
End Sub

取消:
SetWindowPos Me.hwnd, -2, 0, 0, 0, 0, 3
Label1(0).Caption = "已取消窗体总在最上面!"
Label1(1).Caption = "已取消窗体总在最上面!"


只是在当前程序里用:

窗体名.show 1
如:form1.show 1
AKillGodKillBuddha 2004-06-28
  • 打赏
  • 举报
回复
frm.show 1
lanchat 2004-06-28
  • 打赏
  • 举报
回复
FLAGS怎么用呢?
huangjianyou 2004-06-28
  • 打赏
  • 举报
回复
晕!慢了!
huangjianyou 2004-06-28
  • 打赏
  • 举报
回复
Option Explicit

Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub 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 Form_Activate()
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
csdnHelp 2004-06-28
  • 打赏
  • 举报
回复

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 HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2


Public Sub SetFormTop(frm As Form, blnTop As Boolean)
'窗体放在最前面
Dim lngTemp As Long

If blnTop Then
lngTemp = SetWindowPos(frm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
Else
lngTemp = SetWindowPos(frm.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
End If
End Sub
饮水需思源 2004-06-28
  • 打赏
  • 举报
回复
form1.show
from1.zorder 0
venursa 2004-06-28
  • 打赏
  • 举报
回复
一楼的有特点....

"from1.zorder 0"

zorder 是什么意思啊?
yas 2004-06-28
  • 打赏
  • 举报
回复
setwindowpos函数

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧