0

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

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);

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

衷心欢迎任何帮助...

4

1 回答 1

0

如果我正确理解了您的问题,您想在 CMFCTabCtrl 的不同选项卡上添加控件吗?如果是这样,我相信您可以通过以下任一方式静态创建控件:

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

或者

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

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

于 2013-09-27T19:29:14.597 回答