当前位置:  开发笔记 > 开发工具 > 正文

如何在mfc中将控件带到前面

如何解决《如何在mfc中将控件带到前面》经验,为你挑选了4个好方法。

如何在设计时更改MFC 控件的Z顺序- 即我不能使用SetWindowPos或在运行时执行此操作 - 我希望在设计器中看到更改的z顺序(即使我必须求助于 -编辑.rc代码).

我有一个MFC对话框,我正在添加控件.如果控件的边缘之间有重叠,我想将一个带到另一个的前面.在Windows窗体或WPF等我可以带到前面,发送到后面,前进,后退.我在MFC中找不到这些选项,也无法判断它如何确定前面的内容,因为刚刚添加的控件通常位于之前的控件之后.如何操作MFC中的Z顺序?即使我必须直接操作.rc文件代码(即在设计器周围运行).



1> Senthil..:

在Visual Studio 6.0中,执行以下操作.

打开对话框屏幕(在设计器视图中)

按Ctrl + D.

将显示每个控件的Tab键顺序

开始单击您希望在运行时看到的选项卡顺序中的控件(即,您首先单击的控件将Tab键顺序设置为1,依此类推......)


@Tim Erickson:在Visual Studio选项卡中索引*是*z-index.
问题涉及视觉z-index,*not*tab index.

2> ryan_s..:

我认为前面的控件将是rc文件中发生的最后一个控件.换句话说,对话框编辑器将在rc文件中从上到下遇到每个控件,并在必要时重叠它们.

您可以编辑rc文件以对它们进行重新排序,或者您可以在编辑器中更改Tab键顺序,这也是相同的,因为Tab键顺序也是根据控件在文件中出现的顺序设置的.据我所知,MFC在设计时没有提供任何其他分层重叠控件的方法.



3> Adam Pierce..:
GetDlgItem(IDC_MYCONTROL)->SetWindowPos(HWND_TOP,
                                        0, 0, 0, 0,
                                        SWP_NOMOVE | SWP_NOSIZE);


该问题在运行时指定"在设计时"*不*.

4> Adam Pierce..:

实际上,如果您想在资源编辑器中执行此操作,您只需剪切该项目,然后将其粘贴回作为快速而肮脏的解决方案.只需按Ctrl-X然后按Ctrl-V即可.

编辑RC文件也可以.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有