【问题标题】:How to add a fourth tab to this 3 tab example GUI?如何在这个 3 标签示例 GUI 中添加第四个标签?
【发布时间】:2012-07-25 04:02:59
【问题描述】:

我一直在使用this demo(它有 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 个选项卡,但我似乎无法再添加任何内容。有什么想法吗?

【问题讨论】:

  • 您是否在资源中创建了 IDD_TAB_FOUR?
  • @Jeeva 是的,资源文件有以下设置:“#define IDD_TAB_ONE 129 #define IDD_TAB_TWO 130 #define IDD_TAB_THREE 131 #define IDD_TAB_FOUR 132”
  • 我要问的是你是否创建了对话框 IDD_TAB_FOUR
  • @Jeeva,请在下面的问题部分查看我对 satuon 的评论。它与此评论有关。

标签: c++ visual-studio-2010 user-interface mfc tabs


【解决方案1】:

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

#define IDD_TAB_FOUR 132

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

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

【讨论】:

  • 对不起,我应该提到...上面的代码只是一个示例。我相当精通C++。是的,我从资源编辑器创建了一个对话框。我希望有人使用过相同的选项卡演示并且知道添加第四个(和第五个)选项卡的一些技巧。因为我已经复制了我能想到的所有内容并且无法重新创建另一个选项卡。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 2020-01-21
    • 2017-06-14
    相关资源
    最近更新 更多