我正在为我的 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 类包含有关标签页实际内容的附加信息。我不确定该怎么做。