求VB窗口置顶如何制作
- 提问者网友:火车头
- 2021-02-11 11:02
- 五星知识达人网友:行雁书
- 2021-02-11 11:20
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)Form_Load事件里写入如下代码:Private Sub Form_Load()
Dim rtn
rtn = SetWindowPos(hwnd, -1, 0, 0, 0, 0, 3)
End Sub 窗口总是在最前面显示
- 1楼网友:酒安江南
- 2021-02-11 12:42
如果采纳,采纳时选能解决,谢谢!
api函数setwindowpos '这个函数能为窗口指定一个新位置和状态。它也可改变窗口在内部窗口列表中的位置。该函数与deferwindowpos函数相似,只是它的作用是立即表现出来的(在vb里使用:针对vb窗体,如它们在win32下屏蔽或最小化,则需重设最顶部状态。如有必要,请用一个子类处理模块来重设最顶部状态) 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 'hwnd ----------- long,欲定位的窗口 'hwndinsertafter - long,窗口句柄。在窗口列表中,窗口hwnd会置于这个窗口句柄的后面。也可能选用下述值之一: public const hwnd_bottom = 1 '将窗口置于窗口列表底部 public const hwnd_top = 0 '将窗口置于z序列的顶部;z序列代表在分级结构中,窗口针对一个给定级别的窗口显示的顺序 public const hwnd_topmost = -1 '将窗口置于列表顶部,并位于任何最顶部窗口的前面 public const hwnd_notopmost = -2 '将窗口置于列表顶部,并位于任何最顶部窗口的后面 'x -------------- long,窗口新的x坐标。如hwnd是一个子窗口,则x用父窗口的客户区坐标表示 'y -------------- long,窗口新的y坐标。如hwnd是一个子窗口,则y用父窗口的客户区坐标表示 'cx ------------- long,指定新的窗口宽度 'cy ------------- long,指定新的窗口高度 'wflags --------- long,包含了旗标的一个整数 public const swp_framechanged = &h20 '强迫一条wm_nccalcsize消息进入窗口,即使窗口的大小没有改变 public const swp_drawframe = swp_framechanged '围绕窗口画一个框 public const swp_hidewindow = &h80 '隐藏窗口 public const swp_noactivate = &h10 '不激活窗口 public const swp_nomove = &h2 '保持当前位置 (x和y设定将被忽略) public const swp_noredraw = &h8 '窗口不自动重画 public const swp_nosize = &h1 '保持当前大小 (cx和cy会被忽略) public const swp_nozorder = &h4 '保持窗口在列表的当前位置 (hwndinsertafter将被忽略) public const swp_showwindow = &h40 '显示窗口 '用法示例 setwindowpos form1.hwnd, hwnd_topmost, 0, 0, 0, 0, swp_nomove or swp_nosize