2012-07-25 122 views
0

我一直在與this demo(它有3個標籤)如何將第四個選項卡添加到此3選項卡示例GUI?

對於我的生活,我似乎無法得到第四個標籤的工作。

下面是我的示例代碼的一部分。

CMyTabCtrl::CMyTabCtrl() 
{ 
m_tabPages[0]=new CTabOne; 
m_tabPages[1]=new CTabTwo; 
m_tabPages[2]=new CTabThree; 
m_tabPages[3]=new CTabFour; 

m_nNumberOfPages=4; 
} 

CMyTabCtrl::~CMyTabCtrl() 
{ 
for(int nCount=0; nCount < m_nNumberOfPages; nCount++){ 
delete m_tabPages[nCount]; 
} 
} 

void CMyTabCtrl::Init() 
{ 
m_tabCurrent=0; 

m_tabPages[0]->Create(IDD_TAB_ONE, this); 
m_tabPages[1]->Create(IDD_TAB_TWO, this); 
m_tabPages[2]->Create(IDD_TAB_THREE, this); 
m_tabPages[3]->Create(IDD_TAB_FOUR, this); /* Error occurs here */ 

m_tabPages[0]->ShowWindow(SW_SHOW); 
m_tabPages[1]->ShowWindow(SW_HIDE); 
m_tabPages[2]->ShowWindow(SW_HIDE); 
m_tabPages[3]->ShowWindow(SW_HIDE); 

這是錯誤,當我嘗試運行我的程序顯示:

Error: m_tabPages[3] 0x00000000 {CDialog hWnd=???} CDialog 

演示的偉大工程,具有3個標籤,但我似乎無法再添加它。有任何想法嗎?

+2

您是否製作的資源IDD_TAB_FOUR產生的? – Jeeva 2012-07-25 04:05:29

+0

@Jeeva是,資源文件具有以下設置: 「#定義IDD_TAB_ONE 129 的#define IDD_TAB_TWO 130 的#define IDD_TAB_THREE 131 的#define IDD_TAB_FOUR 132」 – darkAsPitch 2012-07-25 06:21:47

+3

什麼,我問的是有你創建對話框IDD_TAB_FOUR – Jeeva 2012-07-25 06:24:39

回答

1

看來你的資源文件(即.rc文件,而不是resource.h)中沒有定義IDD_TAB_FOUR。僅僅在resource.h中定義一個資源ID是不夠的。例如,

#define IDD_TAB_FOUR 132 

只是一個定義,它替換IDD_TAB_FOUR編號爲132

您需要創建從資源編輯器的對話框。

+0

對不起,我應該提到...上面的代碼只是一個示例。我對C++非常熟悉。是的,我從資源編輯器創建了一個對話框。我希望有人使用了相同的標籤演示,並知道添加第四個(和第五個)選項卡的一些技巧。由於我重複了我能想到的所有內容,無法重新創建另一個選項卡。 – darkAsPitch 2012-07-25 16:28:08

1

m_tabPages []與只有3 [3]元素,以便繼續前進,並更改爲4或5或任何在頭文件,它在不在。

相關問題