Я расширяю CTabCtrl, но не могу вставить какие-либо вкладки

Я расширяю 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 вместо.

Другие вопросы по тегам