能否让一个对话框一直处在最上层,并且隐藏起来,不可见?

jeffreyren 2001-07-03 05:05:49
我要在一个SDI程序的视窗中显示一个对话框,但是这个对话框需要有时显现有时隐藏,
当我让它显现时,程序把它当成了当前激活的窗口,使SDI视窗的 Title 栏变成灰色,
当我隐藏对话框时,SDI视窗的 Title 栏变为蓝色,为激活状态。

这样以来,对话框有时显示有时隐藏,视窗的 Title 栏也会有时变灰有时变蓝,看起来很不舒服。

能否让该对话框一直处在最上层,隐藏起来不可见,当它显示可见时,仍然保持SDI视窗的激活状态?
...全文
175 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxxbird 2001-07-04
  • 打赏
  • 举报
回复

将对话框的父窗口设置为NULL, 再使用sinx(纳兰容若)的方法。
loocc 2001-07-03
  • 打赏
  • 举报
回复
你想做屏保啊?
这和屏保的原理差不多
sinx 2001-07-03
  • 打赏
  • 举报
回复

1) ::SetWindowPos(AfxGetMainWnd()->m_hWnd,HWND_TOPMOST,-1,-1,-1,-1,SWP_NOMOVE | SWP_NOSIZE);

2) ShowWindow()
neomeng 2001-07-03
  • 打赏
  • 举报
回复
那好像只能在显示完对话框后,再用程序把,主框架设置焦点了。
jeffreyren 2001-07-03
  • 打赏
  • 举报
回复
我说的激活就是指SDI视窗的 Title 栏变成蓝色

平时,我们选种某个窗口时,它的Title栏都由灰色变成蓝色。
neomeng 2001-07-03
  • 打赏
  • 举报
回复
请问你说的激活是代表什么意思?
jeffreyren 2001-07-03
  • 打赏
  • 举报
回复
好象ShowWindow()对话框,就使对话框激活了, 我只想显示,在不点击的情况下不激活它。
neomeng 2001-07-03
  • 打赏
  • 举报
回复
对,非模式对话框,就行。不要用Domadol(),用CreateWindow函数,再ShowWindow(),就行。
jeffreyren 2001-07-03
  • 打赏
  • 举报
回复
我就是想当对话框显示的时候,后面的SDI视窗仍为激活状态,(只要鼠标不点击对话框)
视窗的 Title 栏保持蓝色。
如果对话框被鼠标点击,当然激活的就是对话框了。
ahphone 2001-07-03
  • 打赏
  • 举报
回复
作一个非模式对话框,ShowWindow()
void BringWindowToTop( );
CWnd* SetActiveWindow( );

EnableWindow?好象不行吧?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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