0

このデモを使用しています (3 つのタブがあります) 。

私の人生では、4 番目のタブを機能させることができないようです。

以下は私のサンプルコードの一部です。

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

m_tabPages[] は 3 つの [3] 要素のみで作成されたので、先に進んでヘッダー ファイル内の要素を 4 または 5 に変更します。

于 2012-07-25T18:59:51.453 に答える
1

リソース ファイル (resource.h ではなく .rc ファイル) に IDD_TAB_FOUR が定義されていないようです。resource.h でリソース ID を定義するだけでは不十分です。例えば、

#define IDD_TAB_FOUR 132

は単なる定義であり、IDD_TAB_FOUR を数値 132 に置き換えます。

リソース エディタからダイアログを作成する必要があります。

于 2012-07-25T10:49:14.080 に答える