0

我一直在使用这个演示(它有 3 个选项卡)

对于我的生活,我似乎无法让第四个标签工作。

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

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 个选项卡,但我似乎无法再添加任何内容。有任何想法吗?

4

2 回答 2

1

似乎您没有在资源文件中定义 IDD_TAB_FOUR(即 .rc 文件,而不是 resource.h)。仅在 resource.h 中定义资源 ID 是不够的。例如,

#define IDD_TAB_FOUR 132

只是一个定义,它将 IDD_TAB_FOUR 替换为数字 132。

您需要从资源编辑器创建一个对话框。

于 2012-07-25T10:49:14.080 回答
1

m_tabPages[] 仅使用 3 [3] 个元素创建,因此请继续将其更改为 4 或 5 或它所在的头文件中的任何内容。

于 2012-07-25T18:59:51.453 回答