将属性页附加到CMFCTabCtrl

时间:2013-09-27 10:19:13

标签: visual-studio-2010 mfc

我在基于对话框的应用程序中使用CMFCTabCtrl。 我需要将CPropertyPages添加到每个选项卡或向每个选项卡页面添加控件。 我从microsoft示例中了解到,我们可以动态添加控件,如下所示

m_wnd1.Create (WS_CHILD | WS_VISIBLE, CRect (0, 0, 0, 0), &m_wndTabConfiguration, 1);
m_wnd1.SetFont (&afxGlobalData.fontRegular);
m_wnd1.SetWindowText (_T("Edit 1"));

m_wnd2.Create (WS_CHILD | WS_VISIBLE, CRect (0, 0, 0, 0), &m_wndTabConfiguration, 2);
m_wnd2.SetFont (&afxGlobalData.fontRegular);
m_wnd2.SetWindowText (_T("Edit 2"));


m_wndTabConfiguration.AddTab (&m_wnd1, _T("One"), 0, FALSE);
m_wndTabConfiguration.AddTab (&m_wnd2, _T("Two"), 1, FALSE);

哪个工作正常。 但我想静态设计控件布局并在标签页中显示。

欢迎任何帮助......

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你想在CMFCTabCtrl的不同标签上添加控件吗?如果是这样,我相信您可以通过以下方式静态创建控件:

(1)使用visual studio 2010附带的可视化编辑器,可视化编辑器将相应地修改项目的.rc文件(可在资源过滤器下找到)。

(2)您可以通过在对话框中添加新控件的条目来直接编辑项目的.rc文件。

无论您选择哪种方法,都必须将这些控件放在标签控件顶部的正确位置!然后,您可以映射与用户更改选项卡相关的Windows消息(检查MSDN以获取有关消息ID的正确信息等)并将其映射到对话框类中的函数(例如OnTabChange),然后在其中确定要对哪些控件执行隐藏和显示(control.ShowWindow(SW_HIDE)或control.ShowWindow(SW_SHOW))基于当前活动/选择的选项卡。映射的执行方式类似于捕获按钮单击事件等。