在VB中让FORM1总在最前,我试过别人的代码,刚开始是总前,可是点一下任务栏,任务栏就出来了,窗体被盖住了,我的窗体是从右下角上来的,会被任务栏给盖了,请教高手了
VB如何让窗体总是最前,要盖过任务栏
- 提问者网友:半生酒醒
- 2021-04-23 16:08
- 五星知识达人网友:夜余生
- 2021-04-23 17:16
你 可以 将 任务栏上
的 这个 选项去掉 ..
- 1楼网友:拾荒鲤
- 2021-04-23 20:40
一个timer1,一个按钮
代码:
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 Command1_Click() Timer1.Enabled = False SetWindowPos Form1.hwnd, -2, 0, 0, 0, 0, 3 '取消窗口置顶 End Sub
Private Sub Form_Load() Timer1.Interval = 50 Timer1.Enabled = True End Sub
Private Sub Timer1_Timer() SetWindowPos Form1.hwnd, -1, 0, 0, 0, 0, 3 '窗口置顶 End Sub
还有一个方法就是置顶后 不响应键盘就可以了
- 2楼网友:洒脱疯子
- 2021-04-23 19:18
让窗口一直在前
置顶就行了
用到了一个API 就是SetWindowPos 用法很简单 也很常用
相信你能看懂源码 不多说了
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 Const HWND_TOPMOST& = -1 ' 将窗口置于顶部,并位于任何窗口的前面 Private Const SWP_NOSIZE& = &H1 ' 保持窗口大小 Private Const SWP_NOMOVE& = &H2 ' 保持窗口位置 Private Sub Form_Load() SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE ' 将窗口设为总在最前 End Sub
- 3楼网友:轮獄道
- 2021-04-23 18:37