怎样使窗口处于桌面的最上端?

Mittermeyer 2005-12-12 07:13:51
DotNET的Form有一个Topmost的属性,设置为True之后,可以将窗口设定为屏幕的最顶端。但是在整个Windows中Topmost的窗口只有一个也就是最后设定了Topmost风格的那一个。
有什么办法能让我的窗口始终处于窗口最上端,而与其它窗口或者其他应用程序使用的窗口是否设置Topmost风格无关。

希望能够获得好的建议,谢谢大家!
...全文
329 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mittermeyer 2005-12-14
  • 打赏
  • 举报
回复
To viena(维也纳nn-实心木头人)
如果有两个这样的窗口,自然可以通过自己的程序逻辑去解决。
我也举一个比较常见的例子,WINAMP大家都用过的,我装的是2.9,当设置成为TOPMOST之后,WINAMP的窗口就是最顶层窗口了,但是大家都知道,WINAMP的播放器是由3-4个窗口组成的,每一个窗口都是独立的,当设置成为TOPMOST之后,所有的窗口是最顶端的。看看窗口风格每一个窗口都有WS_EX_TOPMOST的,当然可能还有一些其它的机制处理,我想和大家讨论的,也正是用什么具体的方法去实现。
ac669 2005-12-13
  • 打赏
  • 举报
回复
关注。

以前我是用定时器。
Mittermeyer 2005-12-13
  • 打赏
  • 举报
回复
oyljerry兄说的没错,差不多就是这样的效果,只是我希望这个窗口始终处于最顶端,除非我把它销毁。
pgy8288 2005-12-13
  • 打赏
  • 举报
回复
关注~~
spiderman111 2005-12-13
  • 打赏
  • 举报
回复
location
viena 2005-12-13
  • 打赏
  • 举报
回复
逻辑上就有问题,自相矛盾了,以你的矛戳你的盾,会怎样呢?
假设真的有始终最顶窗口,你有两个这样的窗口,这两个哪个优先?
如果你只是要比普通Topmost的窗口优先级高,那只有去找M$去解决了,至少目前没有这种逻辑
Tenner 2005-12-13
  • 打赏
  • 举报
回复
定时器吧,不断BringWindowToTop
rainharder 2005-12-12
  • 打赏
  • 举报
回复
嗯,有道理,我玩游戏的时候,即使是全屏,还是会有上线提示的
aSalt 2005-12-12
  • 打赏
  • 举报
回复
站个位置,关注一下
oyljerry 2005-12-12
  • 打赏
  • 举报
回复
播放器没有吧? 看qq,msn等什么的上线通知,还不是在播放器上面
madoldman 2005-12-12
  • 打赏
  • 举报
回复
肯定是做得到的,要不那些播放器的始终在最前面功能是怎么做的阿??不过不知道怎么做,关注ing
chenyuming2004 2005-12-12
  • 打赏
  • 举报
回复
一个笨方法,用定时器,定时调用SetWindowPos函数,把窗体设为最顶端。
速马 2005-12-12
  • 打赏
  • 举报
回复
这个应该是最不到DI
据说98/ME下可以hack gui内核搞定,直接修改z order,2K/XP能做这个的可能性非常小
搬运工木木 2005-12-12
  • 打赏
  • 举报
回复
在2000以上操作系统好像做了设置,不可能永远占有TOP的吧,可能出路在其他窗口MOSTTOP后,你的窗口再MOSTTOP一下..
Mittermeyer 2005-12-12
  • 打赏
  • 举报
回复
To ChengKing:
这样做有什么帮助么?我说的是Z-Order的最上端。
ChengKing 2005-12-12
  • 打赏
  • 举报
回复
试一下将所有窗体固定位置:
this.Location = new Point(0,y);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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