如何让窗口永远沉底?

allenhiman 2017-03-28 02:18:23
其实这个问题我提过,但没有得到很好的回答,我到目前为止也没找到很好的办法去实现这个特性。
简单来说 就是我想让我的某个窗口一直位于其它窗口的下面,当然 不管这些窗口是不是本程序的窗口,那么有人可能会说,把你的这个沉底窗口当做桌面窗口的子窗口就可以了,也许你说的对, 但不符合要求,实际中这样做也会遇到一些问题,就不描述了。。。 现在期待大家的讨论,任何意见都是欢迎的。 该死的windows 弄了个WS_EX_TOMOST 就没有WS_EX_BOTTOM_MOST吗, 怒!!!!
...全文
362 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
allenhiman 2017-06-05
  • 打赏
  • 举报
回复
结帖吧 这种诡异的问题 可能本来就无解。 想想 无论你用什么办法 如果别人和你用一样的办法, 那么谁在最底下呢?
Yofoo 2017-04-07
  • 打赏
  • 举报
回复
可以试试绑到桌面去

	pDesk = GetDesktopWindow();
	SetParent(pDesk);
	ModifyStyle(WS_POPUP, WS_CHILDWINDOW, SWP_FRAMECHANGED);
allenhiman 2017-04-07
  • 打赏
  • 举报
回复
对 我就是新建了一个desktop 就是虚拟桌面吗 并不是修改现在的桌面 并且用switchdesktop 切换到我新建的desktop中, 此时我要创建一个窗口充当桌面 就是这么回事
赵4老师 2017-04-01
  • 打赏
  • 举报
回复
CreateDesktop ?
xiaoyilong19 2017-04-01
  • 打赏
  • 举报
回复
我看看学习下
allenhiman 2017-03-28
  • 打赏
  • 举报
回复
就是考证考证,看看有没有好的办法啊 实际上这段代码 我是在一个比较知名的杀毒软件的虚拟桌面中挖出来的,但后来发现了一些不太好的反应,本身这么做总感觉 不干不净的
allenhiman 2017-03-28
  • 打赏
  • 举报
回复
这种方法看起来是工作的,实际中 在大多数情况下也没有问题, 但会产生一些奇怪的事情,比如程序启动时 如果弹出一个tooltip 会导致tooltip无法置顶, 当然了 如果有人恰好也写了同样的代码和我的程序一起运行的话 ,就完蛋了!!! 互相抢!!!
allenhiman 2017-03-28
  • 打赏
  • 举报
回复
感谢版主的回复, 实际上我在做的是一个虚拟桌面, 我这个沉底窗口是要始终显示的 不能最小化, 现在已经是产品级的 我目前使用的办法 并不好 所以想看看大家有什么好的办法, 我使用的办法是响应WM_POSITIONCHANGE事件, 原理就是发现我的窗口要改变zorder了 我就把它的zoder设定为HWND_BOTTOM 局部代码如下 void CVirtualKioskDlg::OnWindowPosChanging(WINDOWPOS* lpwndpos) { //#ifndef _DEBUG if( theApp.m_iRunMode == RUN_AS_DESKTOP && lpwndpos->hwnd == this->m_hWnd ) { lpwndpos->hwndInsertAfter = HWND_BOTTOM; lpwndpos->flags |= SWP_NOACTIVATE; lpwndpos->flags &= ~SWP_NOZORDER; } //#endif CHtmlWidget::OnWindowPosChanging(lpwndpos); }
lx624909677 2017-03-28
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/270087782 或者你的问题是不是和这个有点像呢
lx624909677 2017-03-28
  • 打赏
  • 举报
回复
获取当前顶层窗口,看是不是桌面,如果不是的话,那么就最小化你的窗口,如果是的话,就不最小化你的窗口,这样可以不?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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