如何让窗体总是显示在最上面?

问题:问个比较白的问题--如何让窗体总是显示在最上面? ( 积分:50, 回复:4, 阅读:24 )
分类:控件 - 使用 ( 版主:amo, cAkk )
来自:梅梅, 时间:2004-3-5 11:33:00, ID:2486067[显示:小字体 | 大字体]

 

同上  

来自: jackchin, 时间:2004-3-5 11:38:32, ID:2486070
FormStyle 设成fsStayOnTop, 如果要自己的主窗体总在最前面, 不被其他
程序覆盖, 可以用:
SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or
      SWP_NOSIZE or SWP_NOACTIVATE);

  

来自: hellorookie, 时间:2004-3-5 11:36:00, ID:2486071
  恢复用 SetWindowPos(Application.Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or
      SWP_NOSIZE or SWP_NOACTIVATE);

 
来自: 梅梅, 时间:2004-3-5 11:39:06, ID:2486086
多人接受答案了。  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如何设置让一个口总在最前(Exaware OnTop和PushPin)软件下载 Windows中打开一个新口或切换任务时,原有的活动口就会被它所覆盖。不过,像Winamp等软件,却有一个能让自己的操作口总在最前的功能,非常实用。其实,只要你安装了像ExaWare OnTop和PushPin这样的免费小软件,也一样可以让任意Windows操作口总在最前面,不让其他的口挡住它! 1.好用的ExaWare OnTop 下载并安装该软件后,双击桌面上的ExaWare OnTop 图标启动程序,我们看不到它的任何口界面,但在系统托盘上可以发现它的图标。单击该图标会弹出一个菜单,在这里列出了当前系统中所有口的标题。要想让某个口总在最前面,只要将鼠标移到相应的口标题项并点击鼠标(左右键均可)即可,如图所示。单击后该口标题前面的图标也相应地多了一个方框(如果没有图标则会显示一个对勾),表明该口已经设置成功。这时打开该口,再打开其他程序口,看看它是否一直总在其他口的前面而不被遮住?怎么样,是不是有种高高在上的感觉?要想取消 OnTop 状态,只要重复一遍上面的操作就可以了。 看到这里你是不是有一个疑问:如果同时将两个口设置为总在最前(Always OnTop)的状态,那将会发生什么事情呢?其实也很简单,如果两个(或多个)口同时处于总在最前的状态,那说明它们的地位平等,这时先激活谁谁就在最上面(和设置前一样看待)。另外还有一个问题需要注意:如果需要退出该软件,建议点击系统托盘上的软件图标并选择菜单中的“Exit and Restore”命令,这样在退出软件的同时可以恢复各个口的原始状态,以免给使用带来不便。 2.小巧的PushPin 相对于ExaWare OnTop 来说,PushPin 的体积更为小巧,只有区区的22KB 下载得到的是一个压缩包,由于它是一款绿色软件,我们只要直接将该压缩包解压缩到某个指定的目录下即可运行(主程序文件名为Pushpin.exe),同样看不到主程序口,只会发现系统托盘处多了一个图标。要想让某个操作口总在最前面,只要在其标题栏上(在任务栏按钮上也可)单击鼠标右键并从弹出的菜单中选择“Always on top”命令即可。要退出程序只需用鼠标右击系统托盘上的软件图标,并从弹出的菜单中选择“Remove”命令即可
### 回答1: 你可以使用以下代码将体置于其他口后面: ```vb 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_BOTTOM = 1 Private Const SWP_NOMOVE = &H2 Private Const SWP_NOSIZE = &H1 Private Sub Form_Load() SetWindowPos Me.hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE End Sub ``` 在体加载时,此代码将体置于其他口的后面。您可以通过更改`HWND_BOTTOM`参数来将体置于其他位置。 ### 回答2: 要使VBD体不再所有程序的上面,可以按照以下步骤进行操作: 1. 打开VBD体:打开Visual Basic for Applications(VBA)编程环境,进入体设计视图。 2. 设置体属性:在体属性中,找到"TopMost"(总在最上层)属性。将该属性设置为False(默认值为True)。 3. 保存并编译:确保做出的更改已保存,并编译应用程序以使更改生效。 4. 测试体位置:重新运行应用程序,打开相应的体并检查其显示位置。现在,该体应该不再出现在其他程序的上方。 需要注意的是,这种设置只适用于该体,并不适用于整个应用程序。如果要在整个应用程序中设置体的显示位置,可以考虑修改应用程序的主体属性或使用其他体管理方法来控制体的层级。 ### 回答3: 要让VBD体不在所有程序的上面,你可以采取以下两种方法: 1. 使用API函数:通过调用Windows API函数,可以改变体的Z序(体的显示顺序)。具体的步骤如下: - 首先,在模块中声明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”。 - 在体的Load事件中,调用此函数设置体的显示位置: "SetWindowPos Me.hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE" - 这将把体的Z序设置为最底层,其他程序将会在此体之上。 2. 使用属性设置:VBD体有TopMost属性可以设置体是否始终置顶。可以将此属性设置为False,即“TopMost = False”。这样体将不再在其他程序的上面。 - 打开体的属性口,在“TopMost”属性上选择False。 无论使用哪种方法,确保在合适的时机调用相应的函数或设置相应的属性,以确保VBD体不再在所有程序的上面。 请注意,这些方法是基于Visual Basic for Applications(VBA)的假设。如果你在使用不同的编程语言或开发环境,可能会有不同的方法来实现相同的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值