没有标签的MFC标签控件?

时间:2013-11-26 02:46:56

标签: c++ mfc tabs controls

我想制作类似于标签控件的内容,但顶部没有可见的标签。

我更喜欢从页面左侧的列表或树中选择标签,类似这样......

exampledialog

选择左侧的列表/树项目会更改对话框右侧的所有内容。

我知道我可以通过单独显示/隐藏RHS上的所有字段来执行此操作,具体取决于所选视图,但如果至少有10种不同的设计,则设计无法管理​​。 C ++不允许我设计组并使它们一次可见/不可见。我更愿意将它们设计为完全独立的对话框资源,然后将其引入,就像选项卡控件一样。

我相信Windows Forms有一个ContentControl,它就像一个没有标签的标签控件,听起来很完美,但MFC似乎没有这个。

有没有办法很好地做到这一点?或者甚至可能是第三方控制来处理它?<​​/ p>

2 个答案:

答案 0 :(得分:2)

在MFC中,您可以通过为每个组创建子无模式对话框来完成此操作。对于每个对话框,关闭标题栏样式和边框样式,它将混合到父窗口而不是看起来像对话框。创建所有对话框,然后使用ShowWindow一次显示/隐藏一个。

次要细节:在父窗口上放置一个不可见的控件(如组框)作为地标。创建每个对话框时,使用MoveWindow在地标上定位和调整大小。

在父窗口中使用窗口样式WS_EX_CONTROLPARENT来帮助从父项到子项的Tab键导航。

答案 1 :(得分:1)

是的,您可以使用DIALOG资源。将DIALOG Style设置为Child,Border设置为None,Title Bar设置为False。然后,您可以为每个DIALOG添加实现类/文件。然后通过将包含窗口设置为对话框的父级(即,SetParent)

,将对话框作为子组件插入/移出父级。