为什么一个对话框盖不住另一个对话框?

mbctb 2011-01-23 06:38:13
我建立了一个对话框A,然后又以A为父窗口建立了对话框B和对话框C。

然后我在A的对话框过程里,用ShowWindow(hWndB,SW_NORMAL)显示了B,用ShowWindow(hWndC,SW_NORMAL)显示了C,发现C可以盖住B,但是再调用ShowWindow(hWndB,SW_NORMAL)时却盖不住C了,以后不管调用函数显示哪个对话框,它一直显示的就是C。

这是为什么呢?按我的想象:用ShowWindow(hWndB,SW_NORMAL)显示某对话框以后,它就会变成当前窗口,然后就会盖住任何别的窗口。可是实际却不是这个样子。

这是为什么呢?
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mbctb 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xianglitian 的回复:]
引用 4 楼 mbctb 的回复:
引用 3 楼 tzxx 的回复:
可以用SetWindowPos()函数设置Z-Order, 但没有试过这种情况,不知道能否生效

有设Z序那么麻烦,不如直接隐藏别的窗口了,还避免了其他一些问题。

看来,ShowWindow这个函数只能显示窗口,并不能调整Z序。所以有时候并不能保证一定能显示出窗口来。

你说对了
z序只和创建顺序有关
如果……
[/Quote]
多谢!我以前以为,调用了ShowWindow以后,就象用鼠标点击这个窗口的一部分一样,我们平时点击某个窗口的时候,除了可以显示这个窗口以外,还可以把它调整到Z序的最上面。

现在看来,这个函数只能实现显示功能,与鼠标点击是不一样的。
向立天 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mbctb 的回复:]
引用 3 楼 tzxx 的回复:
可以用SetWindowPos()函数设置Z-Order, 但没有试过这种情况,不知道能否生效

有设Z序那么麻烦,不如直接隐藏别的窗口了,还避免了其他一些问题。

看来,ShowWindow这个函数只能显示窗口,并不能调整Z序。所以有时候并不能保证一定能显示出窗口来。
[/Quote]
你说对了
z序只和创建顺序有关
如果创建之后你不去特别调整z序是不会改变的
mbctb 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tzxx 的回复:]
可以用SetWindowPos()函数设置Z-Order, 但没有试过这种情况,不知道能否生效
[/Quote]
有设Z序那么麻烦,不如直接隐藏别的窗口了,还避免了其他一些问题。

看来,ShowWindow这个函数只能显示窗口,并不能调整Z序。所以有时候并不能保证一定能显示出窗口来。
tzxx 2011-01-23
  • 打赏
  • 举报
回复
可以用SetWindowPos()函数设置Z-Order, 但没有试过这种情况,不知道能否生效
mbctb 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 likang0712 的回复:]
我的思路:

试试
ShowWindow(hWndB,SW_HIDE)
ShowWindow(hWndC,SW_SHOW)


先隐藏一个 再显示另一个

希望对你有帮助
[/Quote]
是啊,隐藏了一个,再显示另一个,就没问题了。

可是我感到不解的是:不隐藏另一个不行吗?我觉得只要调用ShowWindow(hWndB,SW_NORMAL),它就会成为当前窗口,显示并盖住别的任何窗口。可是事实上好象不是这样的。

是不是说:ShowWindow(hWndB,SW_NORMAL)只能显示这个窗口,但并不能把它的Z序调整到最上面?
「已注销」 2011-01-23
  • 打赏
  • 举报
回复

我的思路:

试试
ShowWindow(hWndB,SW_HIDE)
ShowWindow(hWndC,SW_SHOW)


先隐藏一个 再显示另一个

希望对你有帮助

15,979

社区成员

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

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