2013-05-09 63 views
1

我在CDialog中添加了一個CMFCTabCtrl。但我的問題是它不可見。這是我用來創建CMFCTabCtrl的代碼。CMialTabCtrl在CDialog中不可見

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

我在做什麼錯在這裏/ ...

+0

你做錯的第一件事是,你的代碼中有**絕對沒有錯誤檢查**。當它不像你期望的那樣工作時,這變得很重要。它會精確地告訴你它發生故障的位置,以及指示問題根源的錯誤代碼。 – 2013-05-09 08:06:33

回答

1

我看不出有問題,除了下面一行代碼:

m_TabControl.ShowWindow(TRUE); 

ShowWindow()功能不應該必要的,無論如何,它應該取值爲SW_SHOW,而不是TRUE,所以:

m_TabControl.ShowWindow(SW_SHOW); 

但我建議您完全刪除此行,這不是必需的。

如果在糾正此問題後仍然存在問題,請發佈用於在Create()調用中定義RECT的代碼。

編輯

好了,一兩件事來檢查。我假設你有一個組框或什麼來定義RECT。如果是這樣,請確保在對話框編輯器中將該組框設置爲Visible: false,否則它將顯示在選項卡控件的頂部。我只是通過複製/粘貼你的代碼並使用四個CEdit控件作爲m_wnd1 .. m_wnd4(我不知道你聲明瞭它們是什麼)而正常工作。

dialog

+0

CRect rectTab; \t GetDlgItem(IDC_HOLDER) - > GetWindowRect(&rectTab); ScreenToClient(&rectTab); 仍然有問題... – 2013-05-09 07:16:34

+0

@Zeus - ok - 請參閱編輯。 – 2013-05-09 08:08:18

+0

這就是我所缺少的。謝謝您的幫助.. – 2013-05-09 08:24:14