VB中窗口置顶的问题

叫我灰太狼 2010-11-16 08:31:22
写了一个小程序,但是要求窗口置顶,就是像QQ那样,不会被其他窗口覆盖.

Public Class Form1

Private 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

Private Delegate Sub CmdYesClick(ByVal sender As Object, ByVal e As System.EventArgs)
Private Const HWND_TOPMOST& = -1
Private Const SWP_NOSIZE& = &H1
Private Const SWP_NOMOVE& = &H2

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim str As String = Now.ToString
MsgBox("Honey,欢迎使用!")
Me.TxtBox.Select()
SetWindowPos(Me.Handle.ToInt32, HWND_TOPMOST, 0, 0, 200, 100, SWP_NOMOVE Or SWP_NOSIZE)
End Sub
End Class

这是截取其中的一段代码,但是还是无法使窗口置顶啊,求解.
...全文
411 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
feile922 2010-11-22
  • 打赏
  • 举报
回复
对的 楼上正解
QQRN 2010-11-16
  • 打赏
  • 举报
回复
返回值是多少?
如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误消息,请调用GetLastError函数。
叫我灰太狼 2010-11-16
  • 打赏
  • 举报
回复
再问一下 为什么我上面的代码不能实现窗口置顶啊?
叫我灰太狼 2010-11-16
  • 打赏
  • 举报
回复
真的这么简单....
我去试试....
threenewbee 2010-11-16
  • 打赏
  • 举报
回复
TOPMOST属性封装了这个API。
鸭梨山大帝 2010-11-16
  • 打赏
  • 举报
回复
不需要,如果是VB.NET,每个Form都有一个内置属性,直接修改该属性为TOPMOST=true就OK了.
wohaorende 2010-11-16
  • 打赏
  • 举报
回复
Form属性,TOPMOST=true
AntingZ 2010-11-16
  • 打赏
  • 举报
回复
把 SetWindowPos 申明中的 long 全部改成 Integer 即可。

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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