我正在扩展 CTabCtrl 但无法插入任何选项卡

Posted

技术标签:

【中文标题】我正在扩展 CTabCtrl 但无法插入任何选项卡【英文标题】:I am extending CTabCtrl but but cant insert any tabs 【发布时间】:2016-04-09 07:46:14 【问题描述】:

我正在扩展CTabCtrl,但是当我在扩展对象上调用InsertItem 时,没有插入任何选项卡。谁知道这是为什么。我做错了什么?

class MyTabControl : public CTabCtrl

public:
    MyListControl       m_listCtrl;
    void                switchInterface(IDataProvider *provider);
public:
    MyTabControl();
    ~MyTabControl();
    afx_msg void OnGetDispInfo(NMHDR *pNMHDR, LRESULT *pResult);
protected:
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    DECLARE_MESSAGE_MAP()
;

如果我从消息映射中删除 ON_WM_CREATE() 宏,那么我可以添加选项卡。 OnCreate 函数的实现包含 m_listCtrl.Create() 函数调用,如果列表控件创建成功则返回 0。这有什么问题?

【问题讨论】:

显示更多代码。如果没有看到实现,就不可能说出什么是错误的。 【参考方案1】:

CTabCtrl 类非常陈旧,功能很差;当用户通过您自己的手从一个选项卡切换到另一个选项卡时,您将不得不执行控件的所有显示/隐藏逻辑。我建议您改为从CMFCTabCtrl 扩展。

【讨论】:

以上是关于我正在扩展 CTabCtrl 但无法插入任何选项卡的主要内容,如果未能解决你的问题,请参考以下文章

如何更改CTabCtrl选项卡颜色?

MFC CTabCtrl如何为选项卡添加关闭按钮

在 MFC 中将选项卡添加到 CTabCtrl

C++ MFC 为 CTabCtrl 中的每个选项卡附加不同的对话框

在 CTabCtrl 中,我可以在运行时更改选项卡的图标吗

使 MFC CTabCtrl 不使用绘图选项卡的完整控件宽度