怎么让窗口始终保持在所有最前面,就像Windows任务管理器一样?

enterprise 2003-01-07 11:21:31
怎么让窗口始终保持在所有最前面,就像Windows任务管理器一样?

有一个窗口程序(VC做的),它要通过菜单运行其它窗口程序(Delphi/PB做的)。
想要实现MDI效果:点击主窗体的时候,其它窗口程序(Delphi/PB做的)还能保持显示(变灰 InActive)?
有没有什么属性、方法可以实现窗口保持在最前面?
CWnd::SetForegroundWindow();调用一次,可以把窗口调到前面。但是会被其它窗口遮住。
...全文
1118 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lionpb 2003-01-07
  • 打赏
  • 举报
回复
光用SetWindowPos或者是在Create时设置WS_EX_TOPMOST都不起作用。我现在就有这样的问题。
zj510 2003-01-07
  • 打赏
  • 举报
回复
CaptainIII(山上人) 说的很对,
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
一个函数就可以了。
wyljery 2003-01-07
  • 打赏
  • 举报
回复
SetWindowsPos(&wndTopMost,0,0,200,200,SWP_REDRAWFRAME);
microyzy 2003-01-07
  • 打赏
  • 举报
回复
用SetWindowPos()函数
CaptainIII 2003-01-07
  • 打赏
  • 举报
回复
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
sinhighly 2003-01-07
  • 打赏
  • 举报
回复
SetWindowPos
up
eagle2000 2003-01-07
  • 打赏
  • 举报
回复
up
enterprise 2003-01-07
  • 打赏
  • 举报
回复
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);有用。
但是调用以后如果窗口被鼠标移动了位置,再调用SetWindowPos(),窗口的位置就无法恢复到原来的位置。

它和MoveWindow有什么区别?

15,979

社区成员

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

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