在CDialog中看不到CMFCTabCtrl

时间:2013-05-09 06:24:53

标签: visual-studio-2008 visual-c++ mfc

我在CDialog中添加了一个CMFCTabCtrl。但我的问题是它不可见。这是我用来创建CMFCTabCtrl的代码。

m_TabControl.Create (CMFCTabCtrl::STYLE_3D, rectTab, this, 1, CMFCTabCtrl::LOCATION_TOP , TRUE);
m_TabControl.ShowWindow(TRUE);

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

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

m_wnd3.Create (WS_CHILD | WS_VISIBLE, CRect (0, 0, 0, 0), &m_TabControl, 3);
m_wnd3.SetFont (&afxGlobalData.fontRegular);
m_wnd3.SetWindowText ("Edit 3");

m_wnd4.Create (WS_CHILD | WS_VISIBLE, CRect (0, 0, 0, 0), &m_TabControl, 4);
m_wnd4.SetFont (&afxGlobalData.fontRegular);
m_wnd4.SetWindowText ("Edit 4");


m_TabControl.AddTab (&m_wnd1, "One", 0, TRUE);
m_TabControl.AddTab (&m_wnd2, "Two", 0, FALSE);
m_TabControl.AddTab (&m_wnd3, "Three", 0, FALSE);
m_TabControl.AddTab (&m_wnd4, "Four", 0, FALSE);

我在这里做错了什么?/ ...

1 个答案:

答案 0 :(得分:1)

除了以下行之外,我看不到代码的问题:

m_TabControl.ShowWindow(TRUE);

ShowWindow()函数不是必需的,无论如何它应该取值SW_SHOW,而不是TRUE,所以:

m_TabControl.ShowWindow(SW_SHOW);

但我建议您完全删除此行,这不是必需的。

如果您在纠正此问题后仍有问题,请发布您用于在RECT电话中定义Create()的代码。

编辑

好的,有一件事要检查。我假设您有一个组框或其他东西来定义RECT。如果是这样,请确保在对话框编辑器中将该组框设置为Visible: false,否则它将显示在选项卡控件的顶部。我只是通过复制/粘贴您的代码并使用四个CEdit控件作为m_wnd1 .. m_wnd4(我不知道您将它们声明为什么)来使其工作正常。< / p>

dialog