窗体显示问题

ZAP 2003-08-24 10:37:06
请问如何将窗体置于所有窗体的最上边(即使是在停用状态下)
我知道.net中有topmost这一属性,可在vb6中没有,应该怎么写,请给出具体表达式
...全文
44 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liul17 2003-08-25
  • 打赏
  • 举报
回复
'这个函数能为窗口指定一个新位置和状态。它也可改变窗口在内部窗口列表中的位置
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


Public Function 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

SetWindowPos = wmAPI.SetWindowPos(hWnd, hWndInsertAfter, X, Y, cx, cy, wFlags)

End Function
lzj34 2003-08-25
  • 打赏
  • 举报
回复
UP
jsxyhelu 2003-08-25
  • 打赏
  • 举报
回复
Option Explicit

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

setwindowpos .cwnd,-1,0,0,0,0,3
最好买本书,学习要系统!
射天狼 2003-08-25
  • 打赏
  • 举报
回复
Option Explicit

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 Sub Form_Load()
SetWindowPos Me.hwnd, -1, ScaleX(Me.Left, vbTwips, vbPixels), ScaleY(Me.Top, vbTwips, vbPixels), _
ScaleX(Me.Width, vbTwips, vbPixels), ScaleY(Me.Height, vbTwips, vbPixels), &H10 Or &H40
End Sub
pigpag 2003-08-24
  • 打赏
  • 举报
回复
回复人: pigpag(噼里啪啦) ( ) 信誉:111 2003-08-24 22:55:00 得分:0
回复人: Kyle_Chen() ( ) 信誉:100 2003-08-24 22:55:00 得分:0

※时间竟然一模一样。
Kyle_Chen 2003-08-24
  • 打赏
  • 举报
回复
调用Windows API,代码如下:
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

Public Sub SetWindowTopMost(ByRef frm As Form, Optional ByVal blnTopMost As Boolean = True)
' PURPOSE: Set Window to be Topmost or not topmost
' INPUT:
' frm - a form to be set to (non)topmost
' blnTopMost - TRUE if set to topmost
' NOTE: This function calls an API "SetWindowPos"
'
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const HWND_NOTOPMOST = -2
Const HWND_TOPMOST = -1

Dim lInsertAfter As Long
lInsertAfter = IIf(blnTopMost, HWND_TOPMOST, HWND_NOTOPMOST)
SetWindowPos frm.hWnd, lInsertAfter, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
End Sub
pigpag 2003-08-24
  • 打赏
  • 举报
回复
SetWindowPos

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

Const HWND_TOPMOST = -1
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1

SetWindowPos Me.Hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

7,762

社区成员

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

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