0

GUI に Win32 を使用しています。

私は TabControl と TabItem クラスを持っています。TabItem クラスは単純に TCITEM 構造体を保持し、TabControl->AddTab メソッドは引数として TabItem を取り、その構造体にアクセスします。

class TabItem {
public:
    TabItem(LPWSTR lpszText);
    ~TabItem();
public:
    TCITEM* GetItem();
private: (... there is more data here, related to the actual page contents)
    TCITEM* m_pItem;
};

class TabControl {
public:
    TabControl(HWND hWnd, INT iX, INT iY, DWORD dwWidth, DWORD dwHeight);
    ~TabControl();
public:
    VOID AddTab(TabItem* tiTab);
    VOID RemoveTab(INT nIndex);
    VOID ClearTabs();
    VOID SetSelectedItem(INT nIndex);
    INT GetSelectedItem();
    INT GetFocusedItem();
    VOID SetPadding(INT iPaddingX, INT iPaddingY);
private:
    HWND m_hWnd;
};

タブ ページを追加するには:

TCITEM* TabItem::GetItem()
{
    return this->m_pItem;
}

...

TabCtrl_InsertItem(this->m_hWnd, TabCtrl_GetItemCount(this->m_hWnd), tiTab->GetItem());

タブが追加された後、再配置したり、左右に移動したりできます。問題は、タブ インデックス (TabCtrl_GetSelected によって返されるもの) に基づいて TabItem クラスのハンドルを取得する必要があることです。 TabItem クラスは、タブ ページの実際のコンテンツに関する追加情報を保持します。これを行う方法がわかりません。

4

0 に答える 0