如何在设计时更改MFC 中控件的Z顺序- 即我不能使用SetWindowPos或在运行时执行此操作 - 我希望在设计器中看到更改的z顺序(即使我必须求助于 -编辑.rc代码).
我有一个MFC对话框,我正在添加控件.如果控件的边缘之间有重叠,我想将一个带到另一个的前面.在Windows窗体或WPF等我可以带到前面,发送到后面,前进,后退.我在MFC中找不到这些选项,也无法判断它如何确定前面的内容,因为刚刚添加的控件通常位于之前的控件之后.如何操作MFC中的Z顺序?即使我必须直接操作.rc文件代码(即在设计器周围运行).
在Visual Studio 6.0中,执行以下操作.
打开对话框屏幕(在设计器视图中)
按Ctrl + D.
将显示每个控件的Tab键顺序
开始单击您希望在运行时看到的选项卡顺序中的控件(即,您首先单击的控件将Tab键顺序设置为1,依此类推......)
我认为前面的控件将是rc文件中发生的最后一个控件.换句话说,对话框编辑器将在rc文件中从上到下遇到每个控件,并在必要时重叠它们.
您可以编辑rc文件以对它们进行重新排序,或者您可以在编辑器中更改Tab键顺序,这也是相同的,因为Tab键顺序也是根据控件在文件中出现的顺序设置的.据我所知,MFC在设计时没有提供任何其他分层重叠控件的方法.
GetDlgItem(IDC_MYCONTROL)->SetWindowPos(HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
实际上,如果您想在资源编辑器中执行此操作,您只需剪切该项目,然后将其粘贴回作为快速而肮脏的解决方案.只需按Ctrl-X然后按Ctrl-V即可.
编辑RC文件也可以.